re PR testsuite/61137 (FAIL: gcc.target/ia64/small-addr-1.c (test for excess errors))
[gcc.git] / gcc / ChangeLog
1 2014-11-21 Jakub Jelinek <jakub@redhat.com>
2
3 PR target/61137
4 * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
5 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
6
7 2014-11-21 James Greenhalgh <james.greenhalgh@arm.com>
8
9 * config/aarch64/aarch64-simd.md
10 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
11 output mnemonic and operands.
12 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
13 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
14
15 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com>
16
17 * config/i386/i386.c (ix86_option_override_internal): Increase
18 PARAM_MAX_COMPLETELY_PEELED_INSNS.
19
20 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com>
21
22 PR target/60451
23 * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
24 (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
25 replace for V16QI, V16HI and V32QI modes.
26 (ix86_expand_vec_perm_const_1): Add new expand.
27
28 2014-11-21 Nick Clifton <nickc@redhat.com>
29
30 * config/rl78/rl78-real.md (movqi_from_es): New pattern.
31 * config/rl78/rl78.c (struct machine_function): Add uses_es field.
32 (rl78_expand_prologue): Save the ES register in interrupt handlers
33 that use it.
34 (rl78_expand_epilogue): Restore the ES register if necessary.
35 (rl78_start_function): Mention if the function uses the ES
36 register.
37 (rl78_lo16): Record the use of the ES register.
38 (transcode_memory_rtx): Likewise.
39
40 2014-11-21 Jakub Jelinek <jakub@redhat.com>
41
42 PR tree-optimization/61773
43 * tree-ssa-strlen.c (get_string_length): Don't assert
44 stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
45
46 PR target/63910
47 * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
48 modes wider than MAX_BITSIZE_MODE_ANY_INT. If not using
49 CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
50
51 2014-11-21 Markus Trippelsdorf <markus@trippelsdorf.de>
52
53 * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
54 HOST_WIDE_INT_M1U instead of ~0.
55 (includes_rldicr_lshift_p): Likewise.
56
57 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
58
59 * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
60 we need to look into its operand to determine if it is a valid
61 address.
62
63 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
64
65 * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
66 vaarg_p argument and create correct CFI info.
67 (nds32_expand_prologue): Pass true or false to
68 nds32_emit_stack_push_multiple function.
69
70 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
71
72 * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
73 as RTX_FRAME_RELATED_P rtx.
74
75 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
76
77 * config/nds32/nds32.opt (march): Add help message.
78
79 2014-11-20 Patrick Palka <ppalka@gcc.gnu.org>
80
81 * tree-vrp.c (test_for_singularity): New parameter
82 strict_overflow_p. Set *strict_overflow_p to true if signed
83 overflow must be undefined for the return value to satisfy the
84 conditional.
85 (simplify_cond_using_ranges): Don't perform the simplification
86 if it violates overflow rules.
87
88 2014-11-20 Marek Polacek <polacek@redhat.com>
89
90 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
91
92 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
93
94 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
95 condition would be removed due to undefined behaviour.
96
97 2014-11-20 Andrew Pinski <apinski@cavium.com>
98
99 PR ipa/63981
100 PR ipa/63982
101 * ipa-polymorphic-call.c (possible_placement_new):
102 Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
103 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
104 (extr_type_from_vtbl_ptr_store): Likewise.
105
106 2014-11-20 Markus Trippelsdorf <markus@trippelsdorf.de>
107
108 * config/rs6000/constraints.md: Avoid signed integer overflows.
109 * config/rs6000/predicates.md: Likewise.
110 * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
111 (includes_rldic_lshift_p): Likewise.
112 (includes_rldicr_lshift_p): Likewise.
113 * emit-rtl.c (const_wide_int_htab_hash): Likewise.
114 * loop-iv.c (determine_max_iter): Likewise.
115 (iv_number_of_iterations): Likewise.
116 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
117 * varasm.c (get_section_anchor): Likewise.
118
119 2014-11-20 Charles Baylis <charles.baylis@linaro.org>
120
121 PR target/63870
122 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
123 expression to aarch64_simd_lane_bounds.
124 * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
125 prototype.
126 * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
127 call to aarch64_simd_lane_bounds.
128 (aarch64_get_lanedi): Likewise.
129 (aarch64_ld2_lane<mode>): Likewise.
130 (aarch64_ld3_lane<mode>): Likewise.
131 (aarch64_ld4_lane<mode>): Likewise.
132 (aarch64_im_lane_boundsi): Likewise.
133 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
134 parameter. Report calling function in error message if exp is non-NULL.
135
136 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
137
138 PR target/60111
139 * config/sh/sh.c: Use signed char for signed field.
140
141 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
142
143 * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
144 hash_table.
145
146 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
147
148 * ipa-utils.c, lto-section-in.c, lto-streamer.h,
149 tree-scalar-evolution.c: Replace htab with hash_table.
150
151 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
152
153 * lto-section-in.c (lto_delete_in_decl_state): Adjust.
154 (lto_free_function_in_decl_state): Likewise.
155 * lto-streamer-out.c (copy_function_or_variable): Likewise.
156 * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
157 (lto_file_decl_data_num_ ## name ## s): Likewise.
158 (struct lto_tree_ref_table): Remove.
159 (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
160
161 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
162
163 * hash-map.h (hash_map::iterator): New class.
164 (hash_map::begin): New method.
165 (hash_map::end): Likewise.
166 * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
167 replace splay_tree with hash_map.
168
169 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
170
171 * hash-table.h (hash_table::hash_table): Call alloc_entries.
172 (hash_table::alloc_entries): new method.
173 (hash_table::expand): Call alloc_entries.
174 (hash_table::empty): Likewise.
175
176 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
177
178 * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
179 tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
180
181 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
182
183 * doc/gty.texi: Document the new cache gty attribute.
184 * gengtype.c (finish_cache_funcs): New function.
185 (write_roots): Call gt_clear_cache on global variables with the cache
186 gty attribute.
187 * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
188 * ggc.h (gt_clear_caches): New declaration.
189 * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
190 memory.
191 (gt_cleare_cache): New function.
192 * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
193
194 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
195
196 * combine.c (try_combine): Prefer to delete dead SETs inside
197 a PARALLEL over keeping them.
198
199 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
200
201 * combine.c (combine_validate_cost): Always print the insn costs
202 to the dump file.
203
204 2014-11-20 Richard Henderson <rth@redhat.com>
205
206 PR target/63977
207 * config/i386/i386.c (ix86_static_chain): Reinstate the check
208 for DECL_STATIC_CHAIN.
209
210 2014-11-20 Tejas Belagod <tejas.belagod@arm.com>
211
212 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
213 Fixup prototype.
214 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
215 aarch64_cannot_force_const_mem, aarch64_classify_address,
216 aarch64_classify_symbolic_expression): Fixup call to
217 aarch64_classify_symbol.
218 (aarch64_classify_symbol): Add range-checking for
219 symbol + offset addressing for tiny and small models.
220
221 2014-11-20 Richard Biener <rguenther@suse.de>
222
223 PR middle-end/63962
224 * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
225 Guard with single-use operand 0.
226
227 2014-11-20 Richard Biener <rguenther@suse.de>
228
229 PR tree-optimization/63677
230 * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
231 (avail_exprs_stack): Make a vector of pairs.
232 (struct hash_expr_elt): Replace stmt member with vop member.
233 (expr_elt_hasher::equal): Simplify.
234 (initialize_hash_element): Adjust.
235 (initialize_hash_element_from_expr): Likewise.
236 (dom_opt_dom_walker::thread_across_edge): Likewise.
237 (record_cond): Likewise.
238 (dom_opt_dom_walker::before_dom_children): Likewise.
239 (print_expr_hash_elt): Likewise.
240 (remove_local_expressions_from_table): Restore previous state
241 if requested.
242 (record_equivalences_from_stmt): Record &x + CST as constant
243 &MEM[&x, CST] for further propagation.
244 (vuse_eq): New function.
245 (lookup_avail_expr): For loads use the alias oracle to see
246 whether a candidate from the expr hash is usable.
247 (avail_expr_hash): Do not hash VUSEs.
248
249 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
250
251 PR target/59593
252 * config/arm/arm.md (*movhi_insn): Use right formatting
253 for immediate.
254
255 2014-11-20 Igor Zamyatin <igor.zamyatin@intel.com>
256
257 PR sanitizer/63845
258 * function.c (assign_parms): Move init of pic_offset_table_rtx
259 from here to...
260 * cfgexpand.c (expand_used_vars): ...here.
261
262 2014-11-19 Jan Hubicka <hubicka@ucw.cz>
263
264 * tree.c (free_lang_data_in_type): If BINFO has no important
265 information in it, set it to NULL.
266 (get_binfo_at_offset): Do not walk fields, only bases.
267 * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
268 to be NULL.
269 * ipa-polymorphic-call.c (record_known_type): Likewise.
270
271 2014-11-19 David Malcolm <dmalcolm@redhat.com>
272
273 PR jit/63854
274 * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
275 congruence_class_group *.
276
277 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
278
279 PR target/63947
280 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
281 Output "b" and "nb" suffix for FP mode.
282
283 2014-11-19 Jan Hubicka <hubicka@ucw.cz>
284
285 PR bootstrap/63963
286 * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
287 DECL_FUNCTION_SPECIFIC_TARGET
288 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
289 DECL_FUNCTION_SPECIFIC_TARGET.
290
291 2014-11-19 David Malcolm <dmalcolm@redhat.com>
292
293 PR jit/63854
294 * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
295
296 2014-11-19 David Malcolm <dmalcolm@redhat.com>
297
298 PR jit/63854
299 * lra.c (lra): After creating live ranges in preparation for call
300 to lra_inheritance, set live_p to true.
301
302 2014-11-19 David Malcolm <dmalcolm@redhat.com>
303
304 PR jit/63854
305 * tree-ssa-threadedge.c (thread_across_edge): Don't just release
306 "path", delete it.
307 * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
308
309 2014-11-19 David Malcolm <dmalcolm@redhat.com>
310
311 PR jit/63854
312 * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
313 vec<> to auto_vec<> to fix a leak.
314
315 2014-11-19 David Malcolm <dmalcolm@redhat.com>
316
317 PR jit/63854
318 * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
319
320 2014-11-19 David Malcolm <dmalcolm@redhat.com>
321
322 PR jit/63854
323 * ira-costs.c (ira_costs_c_finalize): New function.
324 * ira.h (ira_costs_c_finalize): New prototype.
325 * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
326
327 2014-11-19 David Malcolm <dmalcolm@redhat.com>
328
329 PR jit/63854
330 * ipa-reference.c (ipa_reference_c_finalize): Release
331 optimization_summary_obstack.
332
333 2014-11-19 David Malcolm <dmalcolm@redhat.com>
334
335 PR jit/63854
336 * toplev.c (toplev::finalize): Free opts_obstack.
337
338 2014-11-19 David Malcolm <dmalcolm@redhat.com>
339
340 PR jit/63854
341 * toplev.c (toplev::finalize): Clean up save_decoded_options.
342
343 2014-11-19 David Malcolm <dmalcolm@redhat.com>
344
345 PR jit/63854
346 * bb-reorder.c
347 (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
348 local bbs_in_hot_partition from vec<> to auto_vec<>.
349
350 2014-11-19 David Malcolm <dmalcolm@redhat.com>
351
352 PR jit/63854
353 * config/alpha/alpha.c (alpha_option_override): Remove static from
354 "handle_trap_shadows_info" and "align_insns_info".
355 * config/i386/i386.c (ix86_option_override): Likewise for
356 "insert_vzeroupper_info".
357 * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
358 "rl78_devirt_info" and "rl78_move_elim_info".
359 * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
360 "analyze_swaps_info".
361 * context.c (gcc::context::~context): New.
362 * context.h (gcc::context::~context): New.
363 * dumpfile.c (dump_files): Add "false" initializers for new field
364 "owns_strings".
365 (gcc::dump_manager::~dump_manager): New.
366 (gcc::dump_manager::dump_register): Add param "take_ownership".
367 * dumpfile.h (struct dump_file_info): Add field "owns_strings".
368 (gcc::dump_manager::~dump_manager): New.
369 (gcc::dump_manager::dump_register): Add param "take_ownership".
370 * pass_manager.h (gcc::pass_manager::operator delete): New.
371 (gcc::pass_manager::~pass_manager): New.
372 * passes.c (pass_manager::register_one_dump_file): Pass "true" to
373 new "owns_strings" argument to dump_register.
374 (pass_manager::operator delete): New.
375 (delete_pass_tree): New function.
376 (pass_manager::~pass_manager): New.
377 * statistics.c (statistics_early_init): Pass "false" to
378 new "owns_strings" argument to dump_register.
379 * toplev.c (toplev::finalize): Clean up the context and thus the
380 things it owns.
381
382 2014-11-19 David Malcolm <dmalcolm@redhat.com>
383
384 PR jit/63854
385 * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
386 obstack_free when cleaning up valid_mode_changes_obstack.
387
388 2014-11-19 David Malcolm <dmalcolm@redhat.com>
389
390 PR jit/63854
391 * opts.c (finalize_options_struct): New.
392 * opts.h (finalize_options_struct): New.
393 * toplev.c (toplev::finalize): Call finalize_options_struct
394 on global_options and global_options_set.
395
396 2014-11-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
397 Jakub Jelinek <jakub@redhat.com>
398
399 PR driver/36312
400 PR driver/63837
401 * gcc.c (process_command): Don't check for input/output
402 filename equality if output is HOST_BIT_BUCKET.
403 * toplev.c (init_asm_output): Likewise.
404
405 2014-11-19 David Malcolm <dmalcolm@redhat.com>
406
407 Merger of git branch "gimple-classes-v2-option-3".
408
409 * ChangeLog.gimple-classes: New.
410
411 * coretypes.h (struct gcond): Add forward decl.
412 (struct gdebug): Likewise.
413 (struct ggoto): Likewise.
414 (struct glabel): Likewise.
415 (struct gswitch): Likewise.
416 (struct gassign): Likewise.
417 (struct gasm): Likewise.
418 (struct gcall): Likewise.
419 (struct gtransaction): Likewise.
420 (struct greturn): Likewise.
421 (struct gbind): Likewise.
422 (struct gcatch): Likewise.
423 (struct geh_filter): Likewise.
424 (struct geh_mnt): Likewise.
425 (struct geh_else): Likewise.
426 (struct gresx): Likewise.
427 (struct geh_dispatch): Likewise.
428 (struct gphi): Likewise.
429 (struct gtry): Likewise.
430 (struct gomp_atomic_load): Likewise.
431 (struct gomp_atomic_store): Likewise.
432 (struct gomp_continue): Likewise.
433 (struct gomp_critical): Likewise.
434 (struct gomp_for): Likewise.
435 (struct gomp_parallel): Likewise.
436 (struct gomp_task): Likewise.
437 (struct gomp_sections): Likewise.
438 (struct gomp_single): Likewise.
439 (struct gomp_target): Likewise.
440 (struct gomp_teams): Likewise.
441
442 * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
443 for renaming of gimple subclasses.
444
445 * gdbhooks.py: Update.
446
447 * gimple-iterator.c (gsi_for_phi): New.
448 (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
449 to gphi_iterator.
450 * gimple-iterator.h (struct gphi_iterator): New subclass of
451 gimple_stmt_iterator.
452 (gsi_for_phi): New prototype.
453 (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
454 to gphi_iterator.
455 (gsi_next_nonvirtual_phi): Strengthen param from
456 gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
457 gimple to gphi *.
458
459 * gsstruct.def: Update for renamings of classes.
460
461 * gimple.c (gimple_build_return): Strengthen return type from
462 gimple to greturn *.
463 (gimple_call_reset_alias_info): Strengthen param to gcall *.
464 (gimple_build_call_1): Strengthen return type from gimple to
465 gcall *.
466 (gimple_build_call_vec): Likewise.
467 (gimple_build_call): Likewise.
468 (gimple_build_call_valist): Likewise.
469 (gimple_build_call_internal_1): Likewise.
470 (gimple_build_call_internal): Likewise.
471 (gimple_build_call_internal_vec): Likewise.
472 (gimple_build_call_from_tree): Likewise.
473 (gimple_build_assign_stat): Strengthen return type from gimple to
474 gassign *.
475 (gimple_build_assign_with_ops): Likewise.
476 (gimple_build_assign_with_ops): Likewise.
477 (gimple_build_cond): Strengthen return type from gimple to
478 gcond *.
479 (gimple_build_cond_from_tree): Likewise.
480 (gimple_cond_set_condition_from_tree): Require a gcond *.
481 (gimple_build_label): Strengthen return type from gimple to
482 glabel *.
483 (gimple_build_goto): Strengthen return type from gimple to
484 ggoto *.
485 (gimple_build_bind): Strengthen return type from gimple to
486 gbind *.
487 (gimple_build_asm_1): Strengthen return type from gimple to
488 gasm *.
489 (gimple_build_asm_vec): Likewise.
490 (gimple_build_catch): Strengthen return type from gimple to
491 gcatch *.
492 (gimple_build_eh_filter): Strengthen return type from gimple to
493 geh_filter *.
494 (gimple_build_eh_must_not_throw): Strengthen return type from
495 gimple to geh_mnt *.
496 (gimple_build_eh_else): Strengthen return type from gimple to
497 geh_else *.
498 (gimple_build_try): Update for renaming of gimple_statement_try to
499 gtry.
500 (gimple_build_resx): Strengthen return type from gimple to
501 gresx *.
502 (gimple_build_switch_nlabels): Strengthen return type from gimple
503 to gswitch *.
504 (gimple_build_switch): Likewise.
505 (gimple_build_eh_dispatch): Strengthen return type from gimple to
506 geh_dispatch *.
507 (gimple_build_debug_bind_stat): Strengthen return type from gimple
508 to gdebug *.
509 (gimple_build_debug_source_bind_stat): Strengthen return type from
510 gimple to gdebug *.
511 (gimple_build_omp_critical): Strengthen return type from gimple to
512 gomp_critical *.
513 (gimple_build_omp_for): Strengthen return type from gimple to
514 gomp_for *.
515 (gimple_build_omp_parallel): Strengthen return type from gimple to
516 gomp_parallel *.
517 (gimple_build_omp_task): Strengthen return type from gimple to
518 gomp_task *.
519 (gimple_build_omp_continue): Strengthen return type from gimple to
520 gomp_continue *.
521 (gimple_build_omp_sections): Strengthen return type from gimple to
522 gomp_sections *.
523 (gimple_build_omp_single): Strengthen return type from gimple to
524 gomp_single *.
525 (gimple_build_omp_target): Strengthen return type from gimple to
526 gomp_target *.
527 (gimple_build_omp_teams): Strengthen return type from gimple to
528 gomp_teams *.
529 (gimple_build_omp_atomic_load): Strengthen return type from gimple
530 to gomp_atomic_load *.
531 (gimple_build_omp_atomic_store): Strengthen return type from gimple
532 to gomp_atomic_store *.
533 (gimple_build_transaction): Strengthen return type from gimple
534 to gtransaction *.
535 (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
536 (gimple_call_fnspec): Require a const gcall *.
537 (gimple_call_arg_flags): Likewise.
538 (gimple_call_return_flags): Likewise.
539 (gimple_set_bb): Add a checked cast.
540 (gimple_copy): Within the cases, add locals of the appropriate
541 subclass and use in place of "stmt" and "copy" for typesafety.
542 (gimple_has_side_effects): Add a checked cast.
543 (gimple_could_trap_p_1): Likewise.
544 (gimple_call_copy_skip_args): Require a gcall *, and return one.
545 (gimple_asm_clobbers_memory_p): Require a const gasm *.
546 (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
547 dyn_cast, introducing local "return_stmt" and using ti in place
548 of "stmt".
549
550 * gimple.h (gimple_vec): Eliminate this typedef.
551 (struct gimple_statement_call): Rename to...
552 (struct gcall): ...this.
553 (struct gimple_statement_bind): Rename to...
554 (struct gbind): ...this.
555 (struct gimple_statement_catch): Rename to...
556 (struct gcatch): ...this.
557 (struct gimple_statement_eh_filter): Rename to...
558 (struct geh_filter): ...this.
559 (struct gimple_statement_eh_else): Rename to...
560 (struct geh_else): ...this.
561 (struct gimple_statement_eh_mnt): Rename to...
562 (struct geh_mnt): ...this.
563 (struct gimple_statement_phi): Rename to...
564 (struct gphi): ...this.
565 (struct gimple_statement_resx): Rename to...
566 (struct gresx): ...this.
567 (struct gimple_statement_eh_dispatch): Rename to...
568 (struct geh_dispatch): ...this.
569 (struct gimple_statement_try): Rename to...
570 (struct gtry): ...this.
571 (struct gimple_statement_asm): Rename to...
572 (struct gasm): ...this.
573 (struct gimple_statement_omp_critical): Rename to...
574 (struct gomp_critical): ...this.
575 (struct gimple_statement_omp_for): Rename to...
576 (struct gomp_for): ...this.
577 (struct gimple_statement_omp_parallel): Rename to...
578 (struct gomp_parallel): ...this.
579 (struct gimple_statement_omp_target): Rename to...
580 (struct gomp_target): ...this.
581 (struct gimple_statement_omp_task): Rename to...
582 (struct gomp_task): ...this.
583 (struct gimple_statement_omp_sections): Rename to...
584 (struct gomp_sections): ...this.
585 (struct gimple_statement_omp_continue): Rename to...
586 (struct gomp_continue): ...this.
587 (struct gimple_statement_omp_single): Rename to...
588 (struct gomp_single): ...this.
589 (struct gimple_statement_omp_teams): Rename to...
590 (struct gomp_teams): ...this.
591 (struct gimple_statement_omp_atomic_load): Rename to...
592 (struct gomp_atomic_load): ...this.
593 (struct gimple_statement_omp_atomic_store :): Rename to...
594 (struct gomp_atomic_store :): ...this.
595 (struct gimple_statement_transaction): Rename to...
596 (struct gtransaction): ...this.
597 (struct gcond): New subclass.
598 (struct gdebug): New subclass.
599 (struct ggoto): New subclass.
600 (struct glabel): New subclass.
601 (struct gswitch): New subclass.
602 (struct gassign): New subclass.
603 (struct greturn): New subclass.
604 (is_a_helper <gimple_statement_asm *>::test): Rename to...
605 (is_a_helper <gasm *>::test): ...this.
606 (is_a_helper <gimple_statement_bind *>::test): Rename to...
607 (is_a_helper <gbind *>::test): ...this.
608 (is_a_helper <gassign *>::test): New.
609 (is_a_helper <gimple_statement_call *>::test): Rename to...
610 (is_a_helper <gcall *>::test): ...this.
611 (is_a_helper <gimple_statement_catch *>::test): Rename to...
612 (is_a_helper <gcatch *>::test): ...this.
613 (is_a_helper <gimple_statement_resx *>::test): Rename to...
614 (is_a_helper <gresx *>::test): ...this.
615 (is_a_helper <gcond *>::test): New.
616 (is_a_helper <gdebug *>::test): New.
617 (is_a_helper <ggoto *>::test): New.
618 (is_a_helper <glabel *>::test): New.
619 (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
620 (is_a_helper <geh_dispatch *>::test): ...this.
621 (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
622 (is_a_helper <geh_else *>::test): ...this.
623 (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
624 (is_a_helper <geh_filter *>::test): ...this.
625 (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
626 (is_a_helper <geh_mnt *>::test): ...this.
627 (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
628 (is_a_helper <gomp_atomic_load *>::test): ...this.
629 (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
630 (is_a_helper <gomp_atomic_store *>::test): ...this.
631 (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
632 (is_a_helper <gomp_continue *>::test): ...this.
633 (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
634 (is_a_helper <gomp_critical *>::test): ...this.
635 (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
636 (is_a_helper <gomp_for *>::test): ...this.
637 (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
638 (is_a_helper <gomp_parallel *>::test): ...this.
639 (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
640 (is_a_helper <gomp_target *>::test): ...this.
641 (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
642 (is_a_helper <gomp_sections *>::test): ...this.
643 (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
644 (is_a_helper <gomp_single *>::test): ...this.
645 (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
646 (is_a_helper <gomp_teams *>::test): ...this.
647 (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
648 (is_a_helper <gomp_task *>::test): ...this.
649 (is_a_helper <gimple_statement_phi *>::test): Rename to...
650 (is_a_helper <gphi *>::test): ...this.
651 (is_a_helper <gimple_statement_transaction *>::test): Rename to...
652 (is_a_helper <gtransaction *>::test): ...this.
653 (is_a_helper <greturn *>::test): New.
654 (is_a_helper <gswitch *>::test): New.
655 (is_a_helper <gimple_statement_try *>::test): Rename to...
656 (is_a_helper <gtry *>::test): ...this.
657 (is_a_helper <const gimple_statement_asm *>::test): Rename to...
658 (is_a_helper <const gasm *>::test): ...this.
659 (is_a_helper <const gimple_statement_bind *>::test): Rename to...
660 (is_a_helper <const gbind *>::test): ...this.
661 (is_a_helper <const gimple_statement_call *>::test): Rename to...
662 (is_a_helper <const gcall *>::test): ...this.
663 (is_a_helper <const gimple_statement_catch *>::test): Rename to...
664 (is_a_helper <const gcatch *>::test): ...this.
665 (is_a_helper <const gimple_statement_resx *>::test): Rename to...
666 (is_a_helper <const gresx *>::test): ...this.
667 (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
668 (is_a_helper <const geh_dispatch *>::test): ...this.
669 (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
670 (is_a_helper <const geh_filter *>::test): ...this.
671 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
672 Rename to...
673 (is_a_helper <const gomp_atomic_load *>::test): ...this.
674 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
675 Rename to...
676 (is_a_helper <const gomp_atomic_store *>::test): ...this.
677 (is_a_helper <const gimple_statement_omp_continue *>::test):
678 Rename to...
679 (is_a_helper <const gomp_continue *>::test): ...this.
680 (is_a_helper <const gimple_statement_omp_critical *>::test):
681 Rename to...
682 (is_a_helper <const gomp_critical *>::test): ...this.
683 (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
684 (is_a_helper <const gomp_for *>::test): ...this.
685 (is_a_helper <const gimple_statement_omp_parallel *>::test):
686 Rename to...
687 (is_a_helper <const gomp_parallel *>::test): ...this.
688 (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
689 (is_a_helper <const gomp_target *>::test): ...this.
690 (is_a_helper <const gimple_statement_omp_sections *>::test):
691 Rename to...
692 (is_a_helper <const gomp_sections *>::test): ...this.
693 (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
694 (is_a_helper <const gomp_single *>::test): ...this.
695 (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
696 (is_a_helper <const gomp_teams *>::test): ...this.
697 (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
698 (is_a_helper <const gomp_task *>::test): ...this.
699 (is_a_helper <const gimple_statement_phi *>::test): Rename to...
700 (is_a_helper <const gphi *>::test): ...this.
701 (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
702 (is_a_helper <const gtransaction *>::test): ...this.
703 (gimple_build_return): Strengthen return type to greturn *.
704 (gimple_call_reset_alias_info): Require a gcall *.
705 (gimple_build_call_vec): Return a gcall *.
706 (gimple_build_call): Likewise.
707 (gimple_build_call_valist): Likewise.
708 (gimple_build_call_internal): Likewise.
709 (gimple_build_call_internal_vec): Likewise.
710 (gimple_build_call_from_tree): Likewise.
711 (gimple_build_assign_stat): Return a gassign *.
712 (gimple_build_assign_with_ops): Likewise.
713 (gimple_build_cond): Return a gcond *.
714 (gimple_build_cond_from_tree): Likewise.
715 (gimple_cond_set_condition_from_tree): Require a gcond *.
716 (gimple_build_label): Return a glabel *.
717 (gimple_build_goto): Return a ggoto *.
718 (gimple_build_bind): Return a gbind *.
719 (gimple_build_asm_vec): Return a gasm *.
720 (gimple_build_catch): Return a gcatch *.
721 (gimple_build_eh_filter): Return a geh_filter *.
722 (gimple_build_eh_must_not_throw): Return a geh_mnt *.
723 (gimple_build_eh_else): Return a geh_else *.
724 (gimple_build_try): Return a gtry *.
725 (gimple_build_resx): Return a gresx *.
726 (gimple_build_switch_nlabels): Return a gswitch *.
727 (gimple_build_switch): Return a gswitch *.
728 (gimple_build_eh_dispatch): Return a geh_dispatch *.
729 (gimple_build_debug_bind_stat): Return a gdebug *.
730 (gimple_build_debug_source_bind_stat): Return a gdebug *.
731 (gimple_build_omp_critical): Return a gomp_critical *.
732 (gimple_build_omp_for): Return a gomp_for *.
733 (gimple_build_omp_parallel): Return a gomp_parallel *.
734 (gimple_build_omp_task): Return a gomp_task *.
735 (gimple_build_omp_continue): Return a gomp_continue *.
736 (gimple_build_omp_sections): Return a gomp_sections *.
737 (gimple_build_omp_single): Return a gomp_single *.
738 (gimple_build_omp_target): Return a gomp_target *.
739 (gimple_build_omp_teams): Return a gomp_teams *.
740 (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
741 (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
742 (gimple_build_transaction): Return a gtransaction *.
743 (gimple_call_arg_flags): Require a const gcall *.
744 (gimple_call_return_flags): Likewise.
745 (gimple_call_copy_skip_args): Require and return a gcall *.
746 (gimple_asm_clobbers_memory_p): Require a const gasm *.
747 (gimple_seq_first_stmt_as_a_bind): New.
748 (gimple_assign_nontemporal_move_p): Require a const gassign *
749 rather than a const_gimple.
750 (gimple_call_internal_fn): Update for renaming to gcall.
751 (gimple_call_fntype): Likewise.
752 (gimple_call_set_fntype): Require a gcall * rather than a gimple.
753 (gimple_call_set_fn): Likewise.
754 (gimple_call_set_internal_fn): Likewise.
755 (gimple_call_set_chain): Likewise.
756 (gimple_call_set_tail): Likewise.
757 (gimple_call_tail_p): Likewise.
758 (gimple_call_set_return_slot_opt): Likewise.
759 (gimple_call_return_slot_opt_p): Likewise.
760 (gimple_call_set_from_thunk): Likewise.
761 (gimple_call_from_thunk_p): Likewise.
762 (gimple_call_set_va_arg_pack): Likewise.
763 (gimple_call_va_arg_pack_p): Likewise.
764 (gimple_call_set_nothrow): Likewise.
765 (gimple_call_nothrow_p): Likewise.
766 (gimple_call_set_alloca_for_var): Likewise.
767 (gimple_call_alloca_for_var_p): Likewise.
768 (gimple_call_use_set): Likewise.
769 (gimple_call_clobber_set): Likewise.
770 (gimple_call_return_type): Require a const gcall * rather than a
771 const_gimple.
772 (gimple_call_chain_ptr): Likewise.
773 (gimple_call_copy_flags): Require a pair of gcall *.
774 (gimple_cond_set_code): Require a gcond * rather than a gimple
775 (gimple_cond_set_lhs): Likewise.
776 (gimple_cond_set_rhs): Likewise.
777 (gimple_cond_set_true_label): Likewise.
778 (gimple_cond_set_false_label): Likewise.
779 (gimple_cond_make_false): Likewise.
780 (gimple_cond_make_true): Likewise.
781 (gimple_cond_lhs_ptr): Require a const gcond * rather than a
782 const_gimple.
783 (gimple_cond_rhs_ptr): Likewise.
784 (gimple_cond_true_label): Likewise.
785 (gimple_cond_false_label): Likewise.
786 (gimple_cond_true_p): Likewise.
787 (gimple_cond_false_p): Likewise.
788 (gimple_cond_set_condition): Likewise.
789 (gimple_label_label): Require a const glabel *.
790 (gimple_label_set_label): Require a glabel *.
791 (gimple_goto_set_dest): Require a ggoto *.
792 (gimple_bind_vars): Require a const gbind *.
793 (gimple_bind_block): Likewise.
794 (gimple_bind_set_vars): Require a gbind *.
795 (gimple_bind_append_vars): Likewise.
796 (gimple_bind_body_ptr): Likewise.
797 (gimple_bind_body): Likewise.
798 (gimple_bind_set_body): Likewise.
799 (gimple_bind_add_stmt): Likewise.
800 (gimple_bind_add_seq): Likewise.
801 (gimple_bind_set_block): Likewise.
802 (gimple_asm_ninputs): Require a const gasm *.
803 (gimple_asm_noutputs): Likewise.
804 (gimple_asm_nclobbers): Likewise.
805 (gimple_asm_nlabels): Likewise.
806 (gimple_asm_input_op): Likewise.
807 (gimple_asm_input_op_ptr): Likewise.
808 (gimple_asm_output_op): Likewise.
809 (gimple_asm_output_op_ptr): Likewise.
810 (gimple_asm_clobber_op): Likewise.
811 (gimple_asm_label_op): Likewise.
812 (gimple_asm_string): Likewise.
813 (gimple_asm_volatile_p): Likewise.
814 (gimple_asm_input_p): Likewise.
815 (gimple_asm_set_input_op): Require a gasm *.
816 (gimple_asm_set_output_op): Likewise.
817 (gimple_asm_set_clobber_op): Likewise.
818 (gimple_asm_set_label_op): Likewise.
819 (gimple_asm_set_volatile): Likewise.
820 (gimple_asm_set_input): Likewise.
821 (gimple_catch_types): Require a const gcatch *.
822 (gimple_catch_types_ptr): Require a gcatch *.
823 (gimple_catch_handler_ptr): Likewise.
824 (gimple_catch_handler): Likewise.
825 (gimple_catch_set_types): Likewise.
826 (gimple_catch_set_handler): Likewise.
827 (gimple_eh_filter_types): Update for renaming of subclass to
828 geh_filter.
829 (gimple_eh_filter_types_ptr): Likewise.
830 (gimple_eh_filter_failure_ptr): Likewise.
831 (gimple_eh_filter_set_types): Require a geh_filter *.
832 (gimple_eh_filter_set_failure): Likewise.
833 (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
834 (gimple_eh_must_not_throw_set_fndecl): Likewise.
835 (gimple_eh_else_n_body_ptr): Require a geh_else *.
836 (gimple_eh_else_n_body): Likewise.
837 (gimple_eh_else_e_body_ptr): Likewise.
838 (gimple_eh_else_e_body): Likewise.
839 (gimple_eh_else_set_n_body): Likewise.
840 (gimple_eh_else_set_e_body): Likewise.
841 (gimple_try_set_kind): Require a gtry *.
842 (gimple_try_set_catch_is_cleanup): Likewise.
843 (gimple_try_set_eval): Likewise.
844 (gimple_try_set_cleanup): Likewise.
845 (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
846 (gimple_try_cleanup_ptr): Likewise.
847 (gimple_phi_capacity): Update for renaming of subclass to gphi.
848 (gimple_phi_num_args): Likewise.
849 (gimple_phi_result): Likewise.
850 (gimple_phi_result_ptr): Likewise.
851 (gimple_phi_arg): Likewise.
852 (gimple_phi_set_result): Require a gphi *.
853 (gimple_phi_set_arg): Likewise.
854 (gimple_phi_arg_def_ptr): Likewise.
855 (gimple_phi_arg_edge): Likewise.
856 (gimple_phi_arg_location): Likewise.
857 (gimple_phi_arg_location_from_edge): Likewise.
858 (gimple_phi_arg_set_location): Likewise.
859 (gimple_phi_arg_has_location): Likewise.
860 (gimple_resx_region): Require a const gresx *.
861 (gimple_resx_set_region): Require a gresx *.
862 (gimple_eh_dispatch_region): Require a const geh_dispatch *.
863 (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
864 (gimple_switch_num_labels): Require a const gswitch *.
865 (gimple_switch_set_num_labels): Likewise.
866 (gimple_switch_index): Likewise.
867 (gimple_switch_index_ptr): Likewise.
868 (gimple_switch_label): Likewise.
869 (gimple_switch_default_label): Likewise.
870 (gimple_switch_set_index): Require a gswitch *.
871 (gimple_switch_set_label): Likewise.
872 (gimple_switch_set_default_label): Likewise.
873 (gimple_omp_critical_name): Require a const gomp_critical *.
874 (gimple_omp_critical_name_ptr): Require a gomp_critical *.
875 (gimple_omp_critical_set_name): Likewise.
876 (gimple_omp_for_set_kind): Require a gomp_for *.
877 (gimple_omp_for_set_combined_p): Likewise.
878 (gimple_omp_for_set_combined_into_p): Likewise.
879 (gimple_omp_for_clauses): Update for renaming of subclass to
880 gomp_for.
881 (gimple_omp_for_clauses_ptr): Likewise.
882 (gimple_omp_for_set_clauses): Likewise.
883 (gimple_omp_for_collapse): Likewise.
884 (gimple_omp_for_index): Likewise.
885 (gimple_omp_for_index_ptr): Likewise.
886 (gimple_omp_for_set_index): Likewise.
887 (gimple_omp_for_initial): Likewise.
888 (gimple_omp_for_initial_ptr): Likewise.
889 (gimple_omp_for_set_initial): Likewise.
890 (gimple_omp_for_final): Likewise.
891 (gimple_omp_for_final_ptr): Likewise.
892 (gimple_omp_for_set_final): Likewise.
893 (gimple_omp_for_incr): Likewise.
894 (gimple_omp_for_incr_ptr): Likewise.
895 (gimple_omp_for_set_incr): Likewise.
896 (gimple_omp_for_pre_body): Likewise.
897 (gimple_omp_for_set_pre_body): Likewise.
898 (gimple_omp_parallel_clauses): Update for renaming of subclass to
899 gomp_parallel.
900 (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
901 (gimple_omp_parallel_set_clauses): Likewise.
902 (gimple_omp_parallel_child_fn_ptr): Likewise.
903 (gimple_omp_parallel_set_child_fn): Likewise.
904 (gimple_omp_parallel_data_arg_ptr): Likewise.
905 (gimple_omp_parallel_set_data_arg): Likewise.
906 (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
907 (gimple_omp_parallel_data_arg): Likewise.
908 (gimple_omp_task_clauses): Update for renaming of subclass to
909 gomp_task.
910 (gimple_omp_task_clauses_ptr): Likewise.
911 (gimple_omp_task_set_clauses): Likewise.
912 (gimple_omp_task_child_fn): Likewise.
913 (gimple_omp_task_child_fn_ptr): Likewise.
914 (gimple_omp_task_set_child_fn): Likewise.
915 (gimple_omp_task_data_arg): Likewise.
916 (gimple_omp_task_data_arg_ptr): Likewise.
917 (gimple_omp_task_set_data_arg): Likewise.
918 (gimple_omp_taskreg_clauses): Whitespace fixes.
919 (gimple_omp_taskreg_clauses_ptr): Likewise.
920 (gimple_omp_taskreg_set_clauses): Likewise.
921 (gimple_omp_taskreg_child_fn): Likewise.
922 (gimple_omp_taskreg_child_fn_ptr): Likewise.
923 (gimple_omp_taskreg_set_child_fn): Likewise.
924 (gimple_omp_taskreg_data_arg): Likewise.
925 (gimple_omp_taskreg_data_arg_ptr): Likewise.
926 (gimple_omp_taskreg_set_data_arg): Likewise.
927 (gimple_omp_task_copy_fn): Update for renaming of subclass to
928 gomp_task.
929 (gimple_omp_task_copy_fn_ptr): Likewise.
930 (gimple_omp_task_set_copy_fn): Likewise.
931 (gimple_omp_task_arg_size): Likewise.
932 (gimple_omp_task_arg_size_ptr): Likewise.
933 (gimple_omp_task_set_arg_size): Likewise.
934 (gimple_omp_task_arg_align): Likewise.
935 (gimple_omp_task_arg_align_ptr): Likewise.
936 (gimple_omp_task_set_arg_align): Likewise.
937 (gimple_omp_single_clauses): Update for renaming of subclass to
938 gomp_single.
939 (gimple_omp_single_clauses_ptr): Likewise.
940 (gimple_omp_single_set_clauses): Likewise.
941 (gimple_omp_target_clauses): Update for renaming of subclass to
942 gomp_target.
943 (gimple_omp_target_clauses_ptr): Likewise.
944 (gimple_omp_target_set_clauses): Require a gomp_target *.
945 (gimple_omp_target_set_kind): Likewise.
946 (gimple_omp_target_child_fn_ptr): Likewise.
947 (gimple_omp_target_set_child_fn): Likewise.
948 (gimple_omp_target_data_arg_ptr): Likewise.
949 (gimple_omp_target_set_data_arg): Likewise.
950 (gimple_omp_target_child_fn): Require a const gomp_target *.
951 (gimple_omp_target_data_arg): Likewise.
952 (gimple_omp_teams_clauses): Update for renaming of subclass to
953 gomp_teams.
954 (gimple_omp_teams_clauses_ptr): Likewise.
955 (gimple_omp_teams_set_clauses): Require a gomp_teams *.
956 (gimple_omp_sections_clauses): Update for renaming of subclass to
957 gomp_sections.
958 (gimple_omp_sections_clauses_ptr): Likewise.
959 (gimple_omp_sections_set_clauses): Likewise.
960 (gimple_omp_sections_control): Likewise.
961 (gimple_omp_sections_control_ptr): Likewise.
962 (gimple_omp_sections_set_control): Likewise.
963 (gimple_omp_for_set_cond): Likewise.
964 (gimple_omp_for_cond): Likewise.
965 (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
966 (gimple_omp_atomic_store_val_ptr): Likewise.
967 (gimple_omp_atomic_load_set_lhs): Likewise.
968 (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
969 (gimple_omp_atomic_load_lhs): Likewise.
970 (gimple_omp_atomic_load_rhs): Likewise.
971 (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
972 (gimple_omp_atomic_load_set_rhs): Likewise.
973 (gimple_omp_atomic_load_rhs_ptr): Likewise.
974 (gimple_omp_continue_control_def): Require a const gomp_continue *.
975 (gimple_omp_continue_control_use): Likewise.
976 (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
977 (gimple_omp_continue_set_control_def): Likewise.
978 (gimple_omp_continue_control_use_ptr): Likewise.
979 (gimple_omp_continue_set_control_use): Likewise.
980 (gimple_transaction_body_ptr): Require a gtransaction *.
981 (gimple_transaction_body): Likewise.
982 (gimple_transaction_label_ptr): Likewise.
983 (gimple_transaction_label): Require a const gtransaction *.
984 (gimple_transaction_subcode): Likewise.
985 (gimple_transaction_set_body): Require a gtransaction *.
986 (gimple_transaction_set_label): Likewise.
987 (gimple_transaction_set_subcode): Likewise.
988 (gimple_return_retval_ptr): Require a const greturn *.
989 (gimple_return_retval): Likewise.
990 (gimple_return_set_retval): Require a greturn *.
991 (gimple_expr_type): Introduce local "call_stmt" and use in place of
992 "stmt" for typesafety.
993
994 * asan.c: Use gimple subclasses.
995 * auto-profile.c: Likewise.
996 * builtins.c: Likewise.
997 * builtins.h: Likewise.
998 * cfgexpand.c: Likewise.
999 * cfgloop.c: Likewise.
1000 * cfgloopmanip.c: Likewise.
1001 * cgraph.c: Likewise.
1002 * cgraph.h: Likewise.
1003 * cgraphbuild.c: Likewise.
1004 * cgraphclones.c: Likewise.
1005 * cgraphunit.c: Likewise.
1006 * expr.h: Likewise.
1007 * gimple-builder.c: Likewise.
1008 * gimple-builder.h: Likewise.
1009 * gimple-fold.c: Likewise.
1010 * gimple-low.c: Likewise.
1011 * gimple-pretty-print.c: Likewise.
1012 * gimple-ssa-isolate-paths.c: Likewise.
1013 * gimple-ssa-strength-reduction.c: Likewise.
1014 * gimple-streamer-in.c: Likewise.
1015 * gimple-streamer-out.c: Likewise.
1016 * gimple-walk.c: Likewise.
1017 * gimplify-me.c: Likewise.
1018 * gimplify.c: Likewise.
1019 * gimplify.h: Likewise.
1020 * graphite-scop-detection.c: Likewise.
1021 * graphite-sese-to-poly.c: Likewise.
1022 * internal-fn.c: Likewise.
1023 * internal-fn.def:: Likewise.
1024 * internal-fn.h: Likewise.
1025 * ipa-icf-gimple.c: Likewise.
1026 * ipa-icf-gimple.h: Likewise.
1027 * ipa-icf.c: Likewise.
1028 * ipa-inline-analysis.c: Likewise.
1029 * ipa-prop.c: Likewise.
1030 * ipa-prop.h: Likewise.
1031 * ipa-pure-const.c: Likewise.
1032 * ipa-split.c: Likewise.
1033 * lto-streamer-in.c: Likewise.
1034 * lto-streamer-out.c: Likewise.
1035 * omp-low.c: Likewise.
1036 * predict.c: Likewise.
1037 * sanopt.c: Likewise.
1038 * sese.c: Likewise.
1039 * ssa-iterators.h: Likewise.
1040 * stmt.c: Likewise.
1041 * trans-mem.c: Likewise.
1042 * tree-call-cdce.c: Likewise.
1043 * tree-cfg.c: Likewise.
1044 * tree-cfg.h: Likewise.
1045 * tree-cfgcleanup.c: Likewise.
1046 * tree-chkp.c: Likewise.
1047 * tree-chkp.h: Likewise.
1048 * tree-complex.c: Likewise.
1049 * tree-data-ref.c: Likewise.
1050 * tree-dfa.c: Likewise.
1051 * tree-eh.c: Likewise.
1052 * tree-eh.h: Likewise.
1053 * tree-emutls.c: Likewise.
1054 * tree-if-conv.c: Likewise.
1055 * tree-inline.c: Likewise.
1056 * tree-inline.h: Likewise.
1057 * tree-into-ssa.c: Likewise.
1058 * tree-into-ssa.h: Likewise.
1059 * tree-loop-distribution.c: Likewise.
1060 * tree-nrv.c: Likewise.
1061 * tree-object-size.c: Likewise.
1062 * tree-outof-ssa.c: Likewise.
1063 * tree-parloops.c: Likewise.
1064 * tree-phinodes.c: Likewise.
1065 * tree-phinodes.h: Likewise.
1066 * tree-predcom.c: Likewise.
1067 * tree-profile.c: Likewise.
1068 * tree-scalar-evolution.c: Likewise.
1069 * tree-scalar-evolution.h
1070 * tree-sra.cn_function):
1071 * tree-ssa-alias.c: Likewise.
1072 * tree-ssa-alias.h: Likewise.
1073 * tree-ssa-ccp.c: Likewise.
1074 * tree-ssa-coalesce.c: Likewise.
1075 * tree-ssa-copy.c: Likewise.
1076 * tree-ssa-copyrename.c: Likewise.
1077 * tree-ssa-dce.c: Likewise.
1078 * tree-ssa-dom.c: Likewise.
1079 * tree-ssa-forwprop.c: Likewise.
1080 * tree-ssa-ifcombine.c: Likewise.
1081 * tree-ssa-live.c: Likewise.
1082 * tree-ssa-loop-im.c: Likewise.
1083 * tree-ssa-loop-ivcanon.c: Likewise.
1084 * tree-ssa-loop-ivopts.c: Likewise.
1085 * tree-ssa-loop-manip.c: Likewise.
1086 * tree-ssa-loop-niter.c: Likewise.
1087 * tree-ssa-loop-prefetch.c: Likewise.
1088 * tree-ssa-loop-unswitch.c: Likewise.
1089 * tree-ssa-math-opts.c: Likewise.
1090 * tree-ssa-operands.c: Likewise.
1091 * tree-ssa-phiopt.c: Likewise.
1092 * tree-ssa-phiprop.c: Likewise.
1093 * tree-ssa-pre.c: Likewise.
1094 * tree-ssa-propagate.c: Likewise.
1095 * tree-ssa-propagate.h: Likewise.
1096 * tree-ssa-reassoc.c: Likewise.
1097 * tree-ssa-sccvn.c: Likewise.
1098 * tree-ssa-sccvn.h: Likewise.
1099 * tree-ssa-sink.c: Likewise.
1100 * tree-ssa-strlen.c
1101 * tree-ssa-structalias.c
1102 * tree-ssa-tail-merge.c: Likewise.
1103 * tree-ssa-ter.c: Likewise.
1104 * tree-ssa-threadedge.c: Likewise.
1105 * tree-ssa-threadedge.h: Likewise.
1106 * tree-ssa-threadupdate.c: Likewise.
1107 * tree-ssa-uncprop.c: Likewise.
1108 * tree-ssa-uninit.c: Likewise.
1109 * tree-ssa.c: Likewise.
1110 * tree-stdarg.c: Likewise.
1111 * tree-switch-conversion.c: Likewise.
1112 * tree-tailcall.c: Likewise.
1113 * tree-vect-data-refs.c: Likewise.
1114 * tree-vect-generic.c: Likewise.
1115 * tree-vect-loop-manip.c: Likewise.
1116 * tree-vect-loop.c: Likewise.
1117 * tree-vect-patterns.c: Likewise.
1118 * tree-vect-slp.c: Likewise.
1119 * tree-vect-stmts.c: Likewise.
1120 * tree-vectorizer.h: Likewise.
1121 * tree-vrp.c: Likewise.
1122 * tree.c: Likewise.
1123 * ubsan.c: Likewise.
1124 * value-prof.c: Likewise.
1125 * value-prof.h: Likewise.
1126 * vtable-verify.c: Likewise.
1127
1128 2014-11-19 Markus Trippelsdorf <markus@trippelsdorf.de>
1129
1130 * config/rs6000/constraints.md: Avoid signed integer overflows.
1131 * config/rs6000/predicates.md: Likewise.
1132
1133 2014-11-19 Renlin Li <Renlin.Li@arm.com>
1134
1135 PR target/63424
1136 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
1137
1138 2014-11-19 Renlin Li <Renlin.Li@arm.com>
1139
1140 PR middle-end/63762
1141 * ira.c (ira): Update preferred class.
1142
1143 2014-11-19 Jakub Jelinek <jakub@redhat.com>
1144
1145 * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
1146 (gimple_assign_set_rhs_with_ops_1): Renamed to ...
1147 (gimple_assign_set_rhs_with_ops): ... this. Adjust binary arg
1148 inline overload to use it. Add unary arg overload.
1149 * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
1150 (gimple_assign_set_rhs_from_tree): Use
1151 gimple_assign_set_rhs_with_ops instead of
1152 gimple_assign_set_rhs_with_ops_1.
1153 (gimple_assign_set_rhs_with_ops_1): Renamed to ...
1154 (gimple_assign_set_rhs_with_ops): ... this.
1155 * ipa-split.c (split_function): Remove last NULL argument
1156 from gimple_build_assign_with_ops call.
1157 * tree-ssa-loop-im.c
1158 (move_computations_dom_walker::before_dom_children): Likewise.
1159 * tsan.c (instrument_builtin_call): Likewise.
1160 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1161 vectorizable_conversion, vectorizable_load): Likewise.
1162 * tree-vect-loop.c (vect_is_simple_reduction_1,
1163 get_initial_def_for_induction): Likewise.
1164 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1165 * tree-vect-patterns.c (vect_handle_widen_op_by_const,
1166 vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
1167 vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
1168 vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
1169 vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
1170 adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
1171 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
1172 neg_replacement): Likewise.
1173 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1174 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1175 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1176 * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
1177 expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
1178 simd_clone_adjust): Likewise.
1179 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1180 * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
1181 replace_one_candidate): Likewise.
1182 * gimple-builder.c (build_type_cast): Likewise.
1183 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1184 (forward_propagate_addr_expr_1): Remove last NULL argument
1185 from gimple_assign_set_rhs_with_ops call.
1186 (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
1187 instead of gimple_assign_set_rhs_with_ops_1.
1188 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
1189 argument from gimple_build_assign_with_ops call.
1190 (repropagate_negates): Remove last NULL argument from
1191 gimple_assign_set_rhs_with_ops call.
1192 * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
1193 last NULL argument from gimple_build_assign_with_ops call.
1194 (instrument_bool_enum_load): Likewise. Remove last NULL argument
1195 from gimple_assign_set_rhs_with_ops call.
1196 * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
1197 Remove last NULL argument from gimple_build_assign_with_ops call.
1198 (bswap_replace): Likewise. Use gimple_assign_set_rhs_with_ops instead
1199 of gimple_assign_set_rhs_with_ops_1.
1200 (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
1201 instead of gimple_assign_set_rhs_with_ops_1.
1202 * gimple-fold.c (replace_stmt_with_simplification): Likewise.
1203 (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
1204 from gimple_build_assign_with_ops call.
1205 * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
1206 from gimple_assign_set_rhs_with_ops call.
1207 * tree-vrp.c (simplify_truth_ops_using_ranges,
1208 simplify_bit_ops_using_ranges): Remove last NULL argument from
1209 gimple_assign_set_rhs_with_ops call.
1210 (simplify_float_conversion_using_ranges,
1211 simplify_internal_call_using_ranges): Remove last NULL argument from
1212 gimple_build_assign_with_ops call.
1213
1214 2014-11-19 Wilco Dijkstra <wdijkstr@arm.com>
1215
1216 PR target/61915
1217 * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
1218 cost.
1219
1220 2014-11-19 Marek Polacek <polacek@redhat.com>
1221
1222 PR sanitizer/63690
1223 * ubsan.c (instrument_object_size): Check for MEM_REF.
1224
1225 2014-11-19 Ilya Verbin <ilya.verbin@intel.com>
1226
1227 PR regression/63868
1228 * cgraph.c (cgraph_node::create): Guard g->have_offload with
1229 ifdef ENABLE_OFFLOADING.
1230 * omp-low.c (create_omp_child_function): Likewise.
1231 (expand_omp_target): Guard node->mark_force_output and offload_funcs
1232 with ifdef ENABLE_OFFLOADING.
1233 * varpool.c (varpool_node::get_create): Guard g->have_offload and
1234 offload_vars with ifdef ENABLE_OFFLOADING.
1235
1236 2014-11-19 Felix Yang <felix.yang@huawei.com>
1237 Shanyao Chen <chenshanyao@huawei.com>
1238
1239 PR target/59593
1240 * config/arm/arm.md (define_attr "arch"): Add v6t2.
1241 (define_attr "arch_enabled"): Add test for the above.
1242 (*movhi_insn_arch4): Add new alternative.
1243
1244 2014-11-19 Richard Henderson <rth@redhat.com>
1245
1246 * c-family/c-common.c (c_common_reswords): Add
1247 __builtin_call_with_static_chain.
1248 * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
1249 * c/c-parser.c (c_parser_postfix_expression): Handle it.
1250 * doc/extend.texi (__builtin_call_with_static_chain): Document it.
1251
1252 * calls.c (prepare_call_address): Allow decl or type for first arg.
1253 (expand_call): Pass type to prepare_call_address if no decl.
1254 * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
1255 the function doesn't use it; fold it otherwise.
1256 * gimplify.c (gimplify_call_expr): Gimplify the static chain.
1257 * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
1258 function calls.
1259
1260 * targhooks.c (default_static_chain): Remove check for
1261 DECL_STATIC_CHAIN.
1262 * config/moxie/moxie.c (moxie_static_chain): Likewise.
1263 * config/i386/i386.c (ix86_static_chain): Allow decl or type
1264 as the first argument.
1265 * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
1266 of the unused first parameter.
1267 * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
1268 may be a type.
1269 * target.def (static_chain): Likewise.
1270
1271 2014-11-19 Renlin Li <renlin.li@arm.com>
1272
1273 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
1274 __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
1275
1276 2014-11-19 Marek Polacek <polacek@redhat.com>
1277
1278 PR sanitizer/63879
1279 * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
1280 !TYPE_OVERFLOW_SANITIZED.
1281 (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
1282 does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
1283 is 0.
1284
1285 2014-11-19 Ilya Tocar <ilya.tocar@intel.com>
1286
1287 * collect2.c (main): Don't call fatal_error before
1288 diagnostic_initialize.
1289 * lto-wrapper.c (main): Likewise.
1290
1291 2014-11-19 Tom de Vries <tom@codesourcery.com>
1292
1293 PR tree-optimization/62167
1294 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
1295 conservatively.
1296 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
1297 assigns.
1298
1299 2014-11-19 Jakub Jelinek <jakub@redhat.com>
1300
1301 PR tree-optimization/63915
1302 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
1303 true instead of false as last argument to gsi_replace.
1304
1305 PR sanitizer/63520
1306 * internal-fn.c (expand_ubsan_result_store): New function.
1307 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
1308 Use it instead of just emit_move_insn.
1309
1310 2014-11-19 Richard Biener <rguenther@suse.de>
1311
1312 PR tree-optimization/63844
1313 * omp-low.c (fixup_child_record_type): Use a restrict qualified
1314 referece type for the receiver parameter.
1315
1316 2014-11-19 Jakub Jelinek <jakub@redhat.com>
1317
1318 PR sanitizer/63913
1319 * ubsan.c: Include tree-eh.h.
1320 (instrument_bool_enum_load): Handle loads that can throw.
1321
1322 PR rtl-optimization/63843
1323 * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
1324 optimization of ashiftrt of subreg of lshiftrt, check that code
1325 is ASHIFTRT.
1326
1327 2014-11-18 Andrew MacLeod <amacleod@redhat.com>
1328
1329 * attribs.c (decl_attributes): Remove always true condition,
1330 TREE_TYPE(x) will never compare equal to a TYPE_DECL.
1331
1332 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1333
1334 PR target/63937
1335 * target.def (use_by_pieces_infrastructure_p): Take unsigned
1336 HOST_WIDE_INT as the size parameter.
1337 * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
1338 * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
1339 * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
1340 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
1341 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
1342 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
1343 * config/aarch64/aarch64.c
1344 (aarch64_use_by_pieces_infrastructure_p)): Likewise.
1345 * doc/tm.texi: Regenerate.
1346
1347 2014-11-18 Jan Hubicka <hubicka@ucw.cz>
1348
1349 * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
1350 (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
1351 (ipa_get_indirect_edge_target_1): Use opt_for_fn.
1352 (good_cloning_opportunity_p): Likewise.
1353 (ipa-cp gate): Enable ipa-cp with LTO.
1354 * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
1355 * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
1356 inheritance.
1357 * ipa-inline-transform.c (inline_transform): Check if there are inlines
1358 to apply even at -O0.
1359 * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
1360 (analyze_functions): Build type inheritance graph.
1361 * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
1362 (want_early_inline_function_p, want_inline_small_function_p):
1363 Likewise.
1364 (check_callers): Likewise.
1365 (edge_badness): Likewise.
1366 (inline_small_functions): Always be ready for indirect inlining
1367 to happend.
1368 (ipa_inline): Always use want_inline_function_to_all_callers_p.
1369 (early_inline_small_functions): Use opt_for_fn.
1370 * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
1371 (estimate_function_body_sizes): Likewise.
1372 (compute_inline_parameters): Likewise.
1373 (estimate_edge_devirt_benefit): Likewise.
1374 (inline_analyze_function): Likewise.
1375 * ipa-devirt.c (ipa_devirt): Likewise.
1376 (gate): Use in_lto_p.
1377 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
1378 (try_make_edge_direct_virtual_call): Likewise.
1379 (update_indirect_edges_after_inlining): Likewise.
1380 (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
1381 * common.opt (findirect-inlining): Turn into optimization.
1382 * ipa-pure-const.c (add_new_function): Use opt_for_fn.
1383 (pure_const_generate_summary): Likewise.
1384 (gate_pure_const): Always enable with in_lto_p.
1385
1386 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com>
1387
1388 * config/mips/mips.md (compression): Add `micromips32' setting.
1389 (enabled, length): Handle it.
1390 (shift_compression): Replace `micromips' with `micromips32' in
1391 the `compression' attribute.
1392 (*add<mode>3, sub<mode>3): Likewise.
1393
1394 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com>
1395
1396 * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
1397 range, a jump otherwise.
1398
1399 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1400
1401 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
1402 Split into...
1403 (cortex_a15_gp_to_vfp): ...This.
1404 (cortex_a15_fp_to_gp): ...And this.
1405 Define and comment bypass from vfp operations to fp->gp moves.
1406
1407 2014-11-18 Martin Liska <mliska@suse.cz>
1408
1409 * var-tracking.c (vt_find_locations): New fibonacci_node is used.
1410
1411 2014-11-18 Martin Liska <mliska@suse.cz>
1412
1413 * bt-load.c (add_btr_def): New fibonacci_heap is used.
1414 (migrate_btr_defs): Likewise.
1415
1416 2014-11-18 Martin Liska <mliska@suse.cz>
1417
1418 * tracer.c (tail_duplicate): New fibonacci_heap class is used.
1419
1420 2014-11-18 Martin Liska <mliska@suse.cz>
1421
1422 * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
1423 (find_traces): Likewise.
1424 (find_traces_1_round): Likewise.
1425
1426 2014-11-18 Martin Liska <mliska@suse.cz>
1427
1428 * fibonacci_heap.h: New file.
1429 (fibonacci_heap::insert): Created from fibheap_insert.
1430 (fibonacci_heap::empty): Created from fibheap_empty.
1431 (fibonacci_heap::nodes): Created from fibheap_nodes.
1432 (fibonacci_heap::min_key): Created from fibheap_min_key.
1433 (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
1434 (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
1435 (fibonacci_heap::extract_min): Created from fibheap_extract_min.
1436 (fibonacci_heap::min): Created from fibheap_min.
1437 (fibonacci_heap::replace_data): Created from fibheap_replace_data.
1438 (fibonacci_heap::delete_node): Created from fibheap_delete_node.
1439 (fibonacci_heap::union_with): Created from fibheap_union.
1440 * ipa-inline.c (update_edge_key): New heap API is used.
1441 (update_caller_keys): Likewise.
1442 (update_callee_keys): Likewise.
1443 (lookup_recursive_calls): Likewise.
1444 (recursive_inlining): Likewise.
1445 (add_new_edges_to_heap): Likewise.
1446 (heap_edge_removal_hook): Likewise.
1447 (inline_small_functions): Likewise.
1448
1449 2014-11-18 Marek Polacek <polacek@redhat.com>
1450
1451 PR sanitizer/63866
1452 * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
1453 put it into TYPE_NAME and TYPE_STUB_DECL.
1454 * ubsan.c (ubsan_type_descriptor_type): New variable.
1455 Function renamed to ...
1456 (ubsan_get_type_descriptor_type): ... this. Cache
1457 return value in ubsan_type_descriptor_type variable.
1458 Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
1459 TYPE_NAME and TYPE_STUB_DECL.
1460 (ubsan_get_source_location_type): Create a TYPE_DECL for
1461 "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
1462 (ubsan_type_descriptor, ubsan_create_data): Call
1463 ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
1464 Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
1465
1466 2014-11-18 Felix Yang <felix.yang@huawei.com>
1467
1468 * config/aarch64/aarch64.c (doloop_end): New pattern.
1469 * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
1470
1471 2014-11-18 Jason Merrill <jason@redhat.com>
1472
1473 * tree.c (warn_deprecated_use): Show declaration with inform.
1474
1475 2014-11-18 Richard Biener <rguenther@suse.de>
1476
1477 PR tree-optimization/63914
1478 * tree-ssa-ccp.c (canonicalize_value): Remove float value
1479 canonicalization.
1480 (valid_lattice_transition): Allow (partial) transition
1481 from NaN to non-NaN if !HONOR_NANS.
1482 (set_lattice_value): Check for valid lattice transitions
1483 only when checking is enabled.
1484
1485 2014-11-18 Bernd Schmidt <bernds@codesourcery.com>
1486
1487 * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
1488
1489 2014-11-18 Christophe Lyon <christophe.lyon@linaro.org>
1490
1491 * config/arm/neon-testgen.ml (emit_prologue): Handle new
1492 compile_test_optim argument.
1493 (emit_automatics): Rename to emit_variables. Support variable
1494 indentation of its output.
1495 (compile_test_optim): New function.
1496 (test_intrinsic): Call compile_test_optim.
1497 * config/arm/neon.ml (features): Add Compiler_optim.
1498 (ops): Add Compiler_optim feature to Vbic and Vorn.
1499 (type_in_crypto_only): Replace 'or' by '||'.
1500 (reinterp): Likewise.
1501 (reinterpq): Likewise.
1502
1503 2014-11-18 Alan Lawrence <alan.lawrence@arm.com>
1504
1505 * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
1506 vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
1507 vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
1508 vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
1509 vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
1510 vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
1511 pointer dereference.
1512
1513 2014-11-18 Marc Glisse <marc.glisse@inria.fr>
1514
1515 * tree.c (element_mode, integer_truep): New functions.
1516 * tree.h (element_mode, integer_truep): Declare them.
1517 * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
1518 fold_cond_expr_with_comparison, fold_real_zero_addition_p,
1519 fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
1520 fold_strip_sign_ops): Use element_mode.
1521 (fold_binary_loc): Use element_mode and element_precision.
1522 * match.pd: Use integer_truep, element_mode, element_precision,
1523 VECTOR_TYPE_P and build_one_cst. Extend some transformations to
1524 vectors. Simplify A/-A.
1525
1526 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1527
1528 * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
1529 manual swapping implementation.
1530 (movcond_addsi): Likewise.
1531 * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
1532 (arm_select_dominance_cc_mode): Likewise.
1533 (arm_reload_out_hi): Likewise.
1534 (gen_operands_ldrd_strd): Likewise.
1535 (output_move_double): Likewise.
1536 (arm_print_operand_address): Likewise.
1537 (thumb_output_move_mem_multiple): Likewise.
1538 (SWAP_RTX): Delete.
1539
1540 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1541
1542 * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
1543 (COPYSIGNF_QUALIFIERS): Likewise.
1544 (CREATE_QUALIFIERS): Likewise.
1545 (DUP_QUALIFIERS): Likewise.
1546 (FLOAT_WIDEN_QUALIFIERS): Likewise.
1547 (FLOAT_NARROW_QUALIFIERS): Likewise.
1548 (REINTERP_QUALIFIERS): Likewise.
1549 (RINT_QUALIFIERS): Likewise.
1550 (SPLIT_QUALIFIERS): Likewise.
1551 (FIXCONV_QUALIFIERS): Likewise.
1552 (SCALARMUL_QUALIFIERS): Likewise.
1553 (SCALARMULL_QUALIFIERS): Likewise.
1554 (SCALARMULH_QUALIFIERS): Likewise.
1555 (SELECT_QUALIFIERS): Likewise.
1556 (VTBX_QUALIFIERS): Likewise.
1557 (SHIFTIMM_QUALIFIERS): Likewise.
1558 (SCALARMAC_QUALIFIERS): Likewise.
1559 (LANEMUL_QUALIFIERS): Likewise.
1560 (LANEMULH_QUALIFIERS): Likewise.
1561 (LANEMULL_QUALIFIERS): Likewise.
1562 (SHIFTACC_QUALIFIERS): Likewise.
1563 (SHIFTINSERT_QUALIFIERS): Likewise.
1564 (VTBL_QUALIFIERS): Likewise.
1565 (LOADSTRUCT_QUALIFIERS): Likewise.
1566 (LOADSTRUCTLANE_QUALIFIERS): Likewise.
1567 (STORESTRUCT_QUALIFIERS): Likewise.
1568 (STORESTRUCTLANE_QUALIFIERS): Likewise.
1569 (neon_builtin_type_mode): Delete.
1570 (v8qi_UP): Map to V8QImode.
1571 (v8qi_UP): Map to V8QImode.
1572 (v4hi_UP): Map to V4HImode.
1573 (v4hf_UP): Map to V4HFmode.
1574 (v2si_UP): Map to V2SImode.
1575 (v2sf_UP): Map to V2SFmode.
1576 (di_UP): Map to DImode.
1577 (v16qi_UP): Map to V16QImode.
1578 (v8hi_UP): Map to V8HImode.
1579 (v4si_UP): Map to V4SImode.
1580 (v4sf_UP): Map to V4SFmode.
1581 (v2di_UP): Map to V2DImode.
1582 (ti_UP): Map to TImode.
1583 (ei_UP): Map to EImode.
1584 (oi_UP): Map to OImode.
1585 (neon_itype): Delete.
1586 (neon_builtin_datum): Remove itype, make mode a machine_mode.
1587 (VAR1): Update accordingly.
1588 (arm_init_neon_builtins): Use machine_mode directly.
1589 (neon_dereference_pointer): Likewise.
1590 (arm_expand_neon_args): Use qualifiers to decide operand types.
1591 (arm_expand_neon_builtin): Likewise.
1592 * config/arm/arm_neon_builtins.def: Remap operation type for
1593 many builtins.
1594
1595 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1596
1597 * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
1598 (enum arm_simd_type): Likewise.
1599 (struct arm_simd_type_info): Likewise
1600 (arm_mangle_builtin_scalar_type): Likewise.
1601 (arm_mangle_builtin_vector_type): Likewise.
1602 (arm_mangle_builtin_type): Likewise.
1603 (arm_simd_builtin_std_type): Likewise.
1604 (arm_lookup_simd_builtin_type): Likewise.
1605 (arm_simd_builtin_type): Likewise.
1606 (arm_init_simd_builtin_types): Likewise.
1607 (arm_init_simd_builtin_scalar_types): Likewise.
1608 (arm_init_neon_builtins): Rewrite using qualifiers.
1609 * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
1610 * config/arm/arm-simd-builtin-types.def: New file.
1611 * config/arm/t-arm (arm-builtins.o): Depend on it.
1612 * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
1613 * config/arm/arm_neon.h (int8x8_t): Use new internal type.
1614 (int16x4_t): Likewise.
1615 (int32x2_t): Likewise.
1616 (float16x4_t): Likewise.
1617 (float32x2_t): Likewise.
1618 (poly8x8_t): Likewise.
1619 (poly16x4_t): Likewise.
1620 (uint8x8_t): Likewise.
1621 (uint16x4_t): Likewise.
1622 (uint32x2_t): Likewise.
1623 (int8x16_t): Likewise.
1624 (int16x8_t): Likewise.
1625 (int32x4_t): Likewise.
1626 (int64x2_t): Likewise.
1627 (float32x4_t): Likewise.
1628 (poly8x16_t): Likewise.
1629 (poly16x8_t): Likewise.
1630 (uint8x16_t): Likewise.
1631 (uint16x8_t): Likewise.
1632 (uint32x4_t): Likewise.
1633 (uint64x2_t): Likewise.
1634
1635 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1636
1637 * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
1638 (neon_itype): Add new types corresponding to the types used in
1639 qualifiers names.
1640 (arm_unop_qualifiers): New.
1641 (arm_bswap_qualifiers): Likewise.
1642 (arm_binop_qualifiers): Likewise.
1643 (arm_ternop_qualifiers): Likewise.
1644 (arm_getlane_qualifiers): Likewise.
1645 (arm_lanemac_qualifiers): Likewise.
1646 (arm_setlane_qualifiers): Likewise.
1647 (arm_combine_qualifiers): Likewise.
1648 (arm_load1_qualifiers): Likewise.
1649 (arm_load1_lane_qualifiers): Likewise.
1650 (arm_store1_qualifiers): Likewise.
1651 (arm_storestruct_lane_qualifiers): Likewise.
1652 (UNOP_QUALIFIERS): Likewise.
1653 (DUP_QUALIFIERS): Likewise.
1654 (SPLIT_QUALIFIERS): Likewise.
1655 (CONVERT_QUALIFIERS): Likewise.
1656 (FLOAT_WIDEN_QUALIFIERS): Likewise.
1657 (FLOAT_NARROW_QUALIFIERS): Likewise.
1658 (RINT_QUALIFIERS): Likewise.
1659 (COPYSIGNF_QUALIFIERS): Likewise.
1660 (CREATE_QUALIFIERS): Likewise.
1661 (REINTERP_QUALIFIERS): Likewise.
1662 (BSWAP_QUALIFIERS): Likewise.
1663 (BINOP_QUALIFIERS): Likewise.
1664 (FIXCONV_QUALIFIERS): Likewise.
1665 (SCALARMUL_QUALIFIERS): Likewise.
1666 (SCALARMULL_QUALIFIERS): Likewise.
1667 (SCALARMULH_QUALIFIERS): Likewise.
1668 (TERNOP_QUALIFIERS): Likewise.
1669 (SELECT_QUALIFIERS): Likewise.
1670 (VTBX_QUALIFIERS): Likewise.
1671 (GETLANE_QUALIFIERS): Likewise.
1672 (SHIFTIMM_QUALIFIERS): Likewise.
1673 (LANEMAC_QUALIFIERS): Likewise.
1674 (SCALARMAC_QUALIFIERS): Likewise.
1675 (SETLANE_QUALIFIERS): Likewise.
1676 (SHIFTINSERT_QUALIFIERS): Likewise.
1677 (SHIFTACC_QUALIFIERS): Likewise.
1678 (LANEMUL_QUALIFIERS): Likewise.
1679 (LANEMULL_QUALIFIERS): Likewise.
1680 (LANEMULH_QUALIFIERS): Likewise.
1681 (COMBINE_QUALIFIERS): Likewise.
1682 (VTBL_QUALIFIERS): Likewise.
1683 (LOAD1_QUALIFIERS): Likewise.
1684 (LOADSTRUCT_QUALIFIERS): Likewise.
1685 (LOAD1LANE_QUALIFIERS): Likewise.
1686 (LOADSTRUCTLANE_QUALIFIERS): Likewise.
1687 (STORE1_QUALIFIERS): Likewise.
1688 (STORESTRUCT_QUALIFIERS): Likewise.
1689 (STORE1LANE_QUALIFIERS): Likewise.
1690 (STORESTRUCTLANE_QUALIFIERS): Likewise.
1691 (neon_builtin_datum): Keep track of qualifiers.
1692 (VAR1): Likewise.
1693
1694 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1695
1696 * config/arm/arm-builtins.c (VAR1): Add a comma.
1697 (VAR2): Rewrite in terms of VAR1.
1698 (VAR3-10): Likewise.
1699 (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
1700 * config/arm/arm_neon_builtins.def: Remove trailing commas.
1701
1702 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1703
1704 * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
1705 (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
1706 * config/arm/arm-builtins.c: New.
1707 * config/arm/t-arm (arm_builtins.o): New.
1708 * config/arm/arm-protos.h (arm_expand_builtin): New.
1709 (arm_builtin_decl): Likewise.
1710 (arm_init_builtins): Likewise.
1711 (arm_atomic_assign_expand_fenv): Likewise.
1712 * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
1713 (arm_init_builtins): Likewise.
1714 (arm_init_iwmmxt_builtins): Likewise
1715 (safe_vector_operand): Likewise
1716 (arm_expand_binop_builtin): Likewise
1717 (arm_expand_unop_builtin): Likewise
1718 (arm_expand_builtin): Likewise
1719 (arm_builtin_decl): Likewise
1720 (insn_flags): Remove static.
1721 (tune_flags): Likewise.
1722 (enum arm_builtins): Move to config/arm/arm-builtins.c.
1723 (arm_init_neon_builtins): Likewise.
1724 (struct builtin_description): Likewise.
1725 (arm_init_iwmmxt_builtins): Likewise.
1726 (arm_init_fp16_builtins): Likewise.
1727 (arm_init_crc32_builtins): Likewise.
1728 (arm_init_builtins): Likewise.
1729 (arm_builtin_decl): Likewise.
1730 (safe_vector_operand): Likewise.
1731 (arm_expand_ternop_builtin): Likewise.
1732 (arm_expand_binop_builtin): Likewise.
1733 (arm_expand_unop_builtin): Likewise.
1734 (neon_dereference_pointer): Likewise.
1735 (arm_expand_neon_args): Likewise.
1736 (arm_expand_neon_builtin): Likewise.
1737 (neon_split_vcombine): Likewise.
1738 (arm_expand_builtin): Likewise.
1739 (arm_builtin_vectorized_function): Likewise.
1740 (arm_atomic_assign_expand_fenv): Likewise.
1741
1742 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1743
1744 * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
1745 * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
1746 (FL_ARCH3M): Likewise.
1747 (FL_MODE26): Likewise.
1748 (FL_MODE32): Likewise.
1749 (FL_ARCH4): Likewise.
1750 (FL_ARCH5): Likewise.
1751 (FL_THUMB): Likewise.
1752 (FL_LDSCHED): Likewise.
1753 (FL_STRONG): Likewise.
1754 (FL_ARCH5E): Likewise.
1755 (FL_XSCALE): Likewise.
1756 (FL_ARCH6): Likewise.
1757 (FL_VFPV2): Likewise.
1758 (FL_WBUF): Likewise.
1759 (FL_ARCH6K): Likewise.
1760 (FL_THUMB2): Likewise.
1761 (FL_NOTM): Likewise.
1762 (FL_THUMB_DIV): Likewise.
1763 (FL_VFPV3): Likewise.
1764 (FL_NEON): Likewise.
1765 (FL_ARCH7EM): Likewise.
1766 (FL_ARCH7): Likewise.
1767 (FL_ARM_DIV): Likewise.
1768 (FL_ARCH8): Likewise.
1769 (FL_CRC32): Likewise.
1770 (FL_SMALLMUL): Likewise.
1771 (FL_IWMMXT): Likewise.
1772 (FL_IWMMXT2): Likewise.
1773 (FL_TUNE): Likewise.
1774 (FL_FOR_ARCH2): Likewise.
1775 (FL_FOR_ARCH3): Likewise.
1776 (FL_FOR_ARCH3M): Likewise.
1777 (FL_FOR_ARCH4): Likewise.
1778 (FL_FOR_ARCH4T): Likewise.
1779 (FL_FOR_ARCH5): Likewise.
1780 (FL_FOR_ARCH5T): Likewise.
1781 (FL_FOR_ARCH5E): Likewise.
1782 (FL_FOR_ARCH5TE): Likewise.
1783 (FL_FOR_ARCH5TEJ): Likewise.
1784 (FL_FOR_ARCH6): Likewise.
1785 (FL_FOR_ARCH6J): Likewise.
1786 (FL_FOR_ARCH6K): Likewise.
1787 (FL_FOR_ARCH6Z): Likewise.
1788 (FL_FOR_ARCH6ZK): Likewise.
1789 (FL_FOR_ARCH6T2): Likewise.
1790 (FL_FOR_ARCH6M): Likewise.
1791 (FL_FOR_ARCH7): Likewise.
1792 (FL_FOR_ARCH7A): Likewise.
1793 (FL_FOR_ARCH7VE): Likewise.
1794 (FL_FOR_ARCH7R): Likewise.
1795 (FL_FOR_ARCH7M): Likewise.
1796 (FL_FOR_ARCH7EM): Likewise.
1797 (FL_FOR_ARCH8A): Likewise.
1798 * config/arm/arm-protos.h: Take definitions moved from arm.c.
1799
1800 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
1801
1802 * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
1803 parameter, rearrange switch statement accordingly.
1804 (arm_evpc_neon_vrev): Remove "Magic Word".
1805 * config/arm/unspecs.md (unspec): Split many UNSPECs to
1806 rounding, or signed/unsigned variants.
1807 * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
1808 (vcondu<mode><mode>): Likewise.
1809 (neon_vadd): Remove "Magic Word" operand.
1810 (neon_vaddl): Remove "Magic Word" operand, convert to use
1811 signed/unsigned iterator.
1812 (neon_vaddw): Likewise.
1813 (neon_vhadd): Likewise, also iterate over "rounding" forms.
1814 (neon_vqadd): Remove "Magic Word" operand, convert to use
1815 signed/unsigned iterator.
1816 (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
1817 over "rounding" forms.
1818 (neon_vmul): Remove "Magic Word" operand, iterate over
1819 polynomial/float instruction forms.
1820 (neon_vmla): Remove "Magic Word" operand.
1821 (neon_vfma): Likewise.
1822 (neon_vfms): Likewise.
1823 (neon_vmls): Likewise.
1824 (neon_vmlal): Remove "Magic Word" operand, iterate over
1825 signed/unsigned forms.
1826 (neon_vmlsl): Likewise.
1827 (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
1828 forms.
1829 (neon_vqdmlal): Remove "Magic Word" operand, iterate over
1830 signed/unsigned forms.
1831 (neon_vqdmlsl): Likewise.
1832 (neon_vmull): Likewise.
1833 (neon_vqdmull): Remove "Magic Word" operand.
1834 (neon_vsub): Remove "Magic Word" operand.
1835 (neon_vsubl): Remove "Magic Word" operand, convert to use
1836 signed/unsigned iterator.
1837 (neon_vsubw): Likewise.
1838 (neon_vhsub): Likewise.
1839 (neon_vqsub): Likewise.
1840 (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
1841 over "rounding" forms.
1842 (neon_vceq): Remove "Magic Word" operand.
1843 (neon_vcge): Likewise.
1844 (neon_vcgeu): Likewise.
1845 (neon_vcgt): Likewise.
1846 (neon_vcgtu): Likewise.
1847 (neon_vcle): Likewise.
1848 (neon_vclt): Likewise.
1849 (neon_vcage): Likewise.
1850 (neon_vcagt): Likewise.
1851 (neon_vabd): Remove "Magic Word" operand, iterate over
1852 signed/unsigned forms, and split out...
1853 (neon_vabdf): ...this as new.
1854 (neon_vabdl): Remove "Magic Word" operand, iterate over
1855 signed/unsigned forms.
1856 (neon_vaba): Likewise.
1857 (neon_vmax): Remove "Magic Word" operand, iterate over
1858 signed/unsigned and max/min forms, and split out...
1859 (neon_v<maxmin>f): ...this as new.
1860 (neon_vmin): Delete.
1861 (neon_vpadd): Remove "Magic Word" operand.
1862 (neon_vpaddl): Remove "Magic Word" operand, iterate over
1863 signed/unsigned variants.
1864 (neon_vpadal): Likewise.
1865 (neon_vpmax): Remove "Magic Word" operand, iterate over
1866 signed/unsigned and max/min forms, and split out...
1867 (neon_vp<maxmin>f): ...this as new.
1868 (neon_vpmin): Delete.
1869 (neon_vrecps): Remove "Magic Word" operand.
1870 (neon_vrsqrts): Likewise.
1871 (neon_vabs): Likewise.
1872 (neon_vqabs): Likewise.
1873 (neon_vneg): Likewise.
1874 (neon_vqneg): Likewise.
1875 (neon_vcls): Likewise.
1876 (neon_vcnt): Likewise.
1877 (neon_vrecpe): Likewise.
1878 (neon_vrsqrte): Likewise.
1879 (neon_vmvn): Likewise.
1880 (neon_vget_lane): Likewise.
1881 (neon_vget_laneu): New.
1882 (neon_vget_lanedi): Remove "Magic Word" operand.
1883 (neon_vget_lanev2di): Likewise.
1884 (neon_vcvt): Remove "Magic Word" operand, iterate over
1885 signed/unsigned variants.
1886 (neon_vcvt_n): Likewise.
1887 (neon_vmovn): Remove "Magic Word" operand.
1888 (neon_vqmovn): Remove "Magic Word" operand, iterate over
1889 signed/unsigned variants.
1890 (neon_vmovun): Remove "Magic Word" operand.
1891 (neon_vmovl): Remove "Magic Word" operand, iterate over
1892 signed/unsigned variants.
1893 (neon_vmul_lane): Remove "Magic Word" operand.
1894 (neon_vmull_lane): Remove "Magic Word" operand, iterate over
1895 signed/unsigned variants.
1896 (neon_vqdmull_lane): Remove "Magic Word" operand.
1897 (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
1898 rounding variants.
1899 (neon_vmla_lane): Remove "Magic Word" operand.
1900 (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
1901 signed/unsigned variants.
1902 (neon_vqdmlal_lane): Remove "Magic Word" operand.
1903 (neon_vmls_lane): Likewise.
1904 (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
1905 signed/unsigned variants.
1906 (neon_vqdmlsl_lane): Remove "Magic Word" operand.
1907 (neon_vmul_n): Remove "Magic Word" operand.
1908 (neon_vmull_n): Rename to...
1909 (neon_vmulls_n): ...this, remove "Magic Word" operand.
1910 (neon_vmullu_n): New.
1911 (neon_vqdmull_n): Remove "Magic Word" operand.
1912 (neon_vqdmulh_n): Likewise.
1913 (neon_vqrdmulh_n): New.
1914 (neon_vmla_n): Remove "Magic Word" operand.
1915 (neon_vmls_n): Likewise.
1916 (neon_vmlal_n): Rename to...
1917 (neon_vmlals_n): ...this, remove "Magic Word" operand.
1918 (neon_vmlalu_n): New.
1919 (neon_vqdmlal_n): Remove "Magic Word" operand.
1920 (neon_vmlsl_n): Rename to...
1921 (neon_vmlsls_n): ...this, remove "Magic Word" operand.
1922 (neon_vmlslu_n): New.
1923 (neon_vqdmlsl_n): Remove "Magic Word" operand.
1924 (neon_vrev64): Remove "Magic Word" operand.
1925 (neon_vrev32): Likewise.
1926 (neon_vrev16): Likewise.
1927 (neon_vshl): Remove "Magic Word" operand, iterate over
1928 signed/unsigned and "rounding" forms.
1929 (neon_vqshl): Likewise.
1930 (neon_vshr_n): Likewise.
1931 (neon_vshrn_n): Remove "Magic Word" operand, iterate over
1932 "rounding" forms.
1933 (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
1934 signed/unsigned and "rounding" forms.
1935 (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
1936 "rounding" forms.
1937 (neon_vshl_n): Remove "Magic Word" operand.
1938 (neon_vqshl_n): Remove "Magic Word" operand, iterate over
1939 signed/unsigned variants.
1940 (neon_vqshlu_n): Remove "Magic Word" operand.
1941 (neon_vshll_n): Remove "Magic Word" operand, iterate over
1942 signed/unsigned variants.
1943 (neon_vsra_n): Remove "Magic Word" operand, iterate over
1944 signed/unsigned and "rounding" forms.
1945 * config/arm/iterators.md (VPF): New.
1946 (VADDL): Likewise.
1947 (VADDW): Likewise.
1948 (VHADD): Likewise.
1949 (VQADD): Likewise.
1950 (VADDHN): Likewise.
1951 (VMLAL): Likewise.
1952 (VMLAL_LANE): Likewise.
1953 (VLMSL): Likewise.
1954 (VMLSL_LANE): Likewise.
1955 (VQDMULH): Likewise,
1956 (VQDMULH_LANE): Likewise.
1957 (VMULL): Likewise.
1958 (VMULL_LANE): Likewise.
1959 (VSUBL): Likewise.
1960 (VSUBW): Likewise.
1961 (VHSUB): Likewise.
1962 (VQSUB): Likewise.
1963 (VSUBHN): Likewise.
1964 (VABD): Likewise.
1965 (VABDL): Likewise.
1966 (VMAXMIN): Likewise.
1967 (VMAXMINF): Likewise.
1968 (VPADDL): Likewise.
1969 (VPADAL): Likewise.
1970 (VPMAXMIN): Likewise.
1971 (VPMAXMINF): Likewise.
1972 (VCVT_US): Likewise.
1973 (VCVT_US_N): Likewise.
1974 (VQMOVN): Likewise.
1975 (VMOVL): Likewise.
1976 (VSHL): Likewise.
1977 (VQSHL): Likewise.
1978 (VSHR_N): Likewise.
1979 (VSHRN_N): Likewise.
1980 (VQSHRN_N): Likewise.
1981 (VQSHRUN_N): Likewise.
1982 (VQSHL_N): Likewise.
1983 (VSHLL_N): Likewise.
1984 (VSRA_N): Likewise.
1985 (pf): Likewise.
1986 (sup): Likewise.
1987 (r): Liekwise.
1988 (maxmin): Likewise.
1989 (shift_op): Likewise.
1990 * config/arm/arm_neon_builtins.def (vaddl): Split to...
1991 (vaddls): ...this and...
1992 (vaddlu): ...this.
1993 (vaddw): Split to...
1994 (vaddws): ...this and...
1995 (vaddwu): ...this.
1996 (vhadd): Split to...
1997 (vhadds): ...this and...
1998 (vhaddu): ...this and...
1999 (vrhadds): ...this and...
2000 (vrhaddu): ...this.
2001 (vqadd): Split to...
2002 (vqadds): ...this and...
2003 (vqaddu): ...this.
2004 (vaddhn): Split to itself and...
2005 (vraddhn): ...this.
2006 (vmul): Split to...
2007 (vmulf): ...this and...
2008 (vmulp): ...this.
2009 (vmlal): Split to...
2010 (vmlals): ...this and...
2011 (vmlalu): ...this.
2012 (vmlsl): Split to...
2013 (vmlsls): ...this and...
2014 (vmlslu): ...this.
2015 (vqdmulh): Split to itself and...
2016 (vqrdmulh): ...this.
2017 (vmull): Split to...
2018 (vmullp): ...this and...
2019 (vmulls): ...this and...
2020 (vmullu): ...this.
2021 (vmull_n): Split to...
2022 (vmulls_n): ...this and...
2023 (vmullu_n): ...this.
2024 (vmull_lane): Split to...
2025 (vmulls_lane): ...this and...
2026 (vmullu_lane): ...this.
2027 (vqdmulh_n): Split to itself and...
2028 (vqrdmulh_n): ...this.
2029 (vqdmulh_lane): Split to itself and...
2030 (vqrdmulh_lane): ...this.
2031 (vshl): Split to...
2032 (vshls): ...this and...
2033 (vshlu): ...this and...
2034 (vrshls): ...this and...
2035 (vrshlu): ...this.
2036 (vqshl): Split to...
2037 (vqshls): ...this and...
2038 (vqrshlu): ...this and...
2039 (vqrshls): ...this and...
2040 (vqrshlu): ...this.
2041 (vshr_n): Split to...
2042 (vshrs_n): ...this and...
2043 (vshru_n): ...this and...
2044 (vrshrs_n): ...this and...
2045 (vrshru_n): ...this.
2046 (vshrn_n): Split to itself and...
2047 (vrshrn_n): ...this.
2048 (vqshrn_n): Split to...
2049 (vqshrns_n): ...this and...
2050 (vqshrnu_n): ...this and...
2051 (vqrshrns_n): ...this and...
2052 (vqrshrnu_n): ...this.
2053 (vqshrun_n): Split to itself and...
2054 (vqrshrun_n): ...this.
2055 (vqshl_n): Split to...
2056 (vqshl_s_n): ...this and...
2057 (vqshl_u_n): ...this.
2058 (vshll_n): Split to...
2059 (vshlls_n): ...this and...
2060 (vshllu_n): ...this.
2061 (vsra_n): Split to...
2062 (vsras_n): ...this and...
2063 (vsrau_n): ...this and.
2064 (vrsras_n): ...this and...
2065 (vrsrau_n): ...this and.
2066 (vsubl): Split to...
2067 (vsubls): ...this and...
2068 (vsublu): ...this.
2069 (vsubw): Split to...
2070 (vsubws): ...this and...
2071 (vsubwu): ...this.
2072 (vqsub): Split to...
2073 (vqsubs): ...this and...
2074 (vqsubu): ...this.
2075 (vhsub): Split to...
2076 (vhsubs): ...this and...
2077 (vhsubu): ...this.
2078 (vsubhn): Split to itself and...
2079 (vrsubhn): ...this.
2080 (vabd): Split to...
2081 (vabds): ...this and...
2082 (vabdu): ...this and...
2083 (vabdf): ...this.
2084 (vabdl): Split to...
2085 (vabdls): ...this and...
2086 (vabdlu): ...this.
2087 (vaba): Split to...
2088 (vabas): ...this and...
2089 (vabau): ...this and...
2090 (vabal): Split to...
2091 (vabals): ...this and...
2092 (vabalu): ...this.
2093 (vmax): Split to...
2094 (vmaxs): ...this and...
2095 (vmaxu): ...this and...
2096 (vmaxf): ...this.
2097 (vmin): Split to...
2098 (vmins): ...this and...
2099 (vminu): ...this and...
2100 (vminf): ...this.
2101 (vpmax): Split to...
2102 (vpmaxs): ...this and...
2103 (vpmaxu): ...this and...
2104 (vpmaxf): ...this.
2105 (vpmin): Split to...
2106 (vpmins): ...this and...
2107 (vpminu): ...this and...
2108 (vpminf): ...this.
2109 (vpaddl): Split to...
2110 (vpaddls): ...this and...
2111 (vpaddlu): ...this.
2112 (vpadal): Split to...
2113 (vpadals): ...this and...
2114 (vpadalu): ...this.
2115 (vget_laneu): New.
2116 (vqmovn): Split to...
2117 (vqmovns): ...this and...
2118 (vqmovnu): ...this.
2119 (vmovl): Split to...
2120 (vmovls): ...this and...
2121 (vmovlu): ...this.
2122 (vmlal_lane): Split to...
2123 (vmlals_lane): ...this and...
2124 (vmlalu_lane): ...this.
2125 (vmlsl_lane): Split to...
2126 (vmlsls_lane): ...this and...
2127 (vmlslu_lane): ...this.
2128 (vmlal_n): Split to...
2129 (vmlals_n): ...this and...
2130 (vmlalu_n): ...this.
2131 (vmlsl_n): Split to...
2132 (vmlsls_n): ...this and...
2133 (vmlslu_n): ...this.
2134 (vext): Make type "SHIFTINSERT".
2135 (vcvt): Split to...
2136 (vcvts): ...this and...
2137 (vcvtu): ...this.
2138 (vcvt_n): Split to...
2139 (vcvts_n): ...this and...
2140 (vcvtu_n): ...this.
2141 * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
2142 (vaddl_s16): Likewise.
2143 (vaddl_s32): Likewise.
2144 (vaddl_u8): Likewise.
2145 (vaddl_u16): Likewise.
2146 (vaddl_u32): Likewise.
2147 (vaddw_s8): Likewise.
2148 (vaddw_s16): Likewise.
2149 (vaddw_s32): Likewise.
2150 (vaddw_u8): Likewise.
2151 (vaddw_u16): Likewise.
2152 (vaddw_u32): Likewise.
2153 (vhadd_s8): Likewise.
2154 (vhadd_s16): Likewise.
2155 (vhadd_s32): Likewise.
2156 (vhadd_u8): Likewise.
2157 (vhadd_u16): Likewise.
2158 (vhadd_u32): Likewise.
2159 (vhaddq_s8): Likewise.
2160 (vhaddq_s16): Likewise.
2161 (vhaddq_s32): Likewise.
2162 (vhaddq_u8): Likewise.
2163 (vhaddq_u16): Likewise.
2164 (vrhadd_s8): Likewise.
2165 (vrhadd_s16): Likewise.
2166 (vrhadd_s32): Likewise.
2167 (vrhadd_u8): Likewise.
2168 (vrhadd_u16): Likewise.
2169 (vrhadd_u32): Likewise.
2170 (vrhaddq_s8): Likewise.
2171 (vrhaddq_s16): Likewise.
2172 (vrhaddq_s32): Likewise.
2173 (vrhaddq_u8): Likewise.
2174 (vrhaddq_u16): Likewise.
2175 (vrhaddq_u32): Likewise.
2176 (vqadd_s8): Likewise.
2177 (vqadd_s16): Likewise.
2178 (vqadd_s32): Likewise.
2179 (vqadd_s64): Likewise.
2180 (vqadd_u8): Likewise.
2181 (vqadd_u16): Likewise.
2182 (vqadd_u32): Likewise.
2183 (vqadd_u64): Likewise.
2184 (vqaddq_s8): Likewise.
2185 (vqaddq_s16): Likewise.
2186 (vqaddq_s32): Likewise.
2187 (vqaddq_s64): Likewise.
2188 (vqaddq_u8): Likewise.
2189 (vqaddq_u16): Likewise.
2190 (vqaddq_u32): Likewise.
2191 (vqaddq_u64): Likewise.
2192 (vaddhn_s16): Likewise.
2193 (vaddhn_s32): Likewise.
2194 (vaddhn_s64): Likewise.
2195 (vaddhn_u16): Likewise.
2196 (vaddhn_u32): Likewise.
2197 (vaddhn_u64): Likewise.
2198 (vraddhn_s16): Likewise.
2199 (vraddhn_s32): Likewise.
2200 (vraddhn_s64): Likewise.
2201 (vraddhn_u16): Likewise.
2202 (vraddhn_u32): Likewise.
2203 (vraddhn_u64): Likewise.
2204 (vmul_p8): Likewise.
2205 (vmulq_p8): Likewise.
2206 (vqdmulh_s16): Likewise.
2207 (vqdmulh_s32): Likewise.
2208 (vqdmulhq_s16): Likewise.
2209 (vqdmulhq_s32): Likewise.
2210 (vqrdmulh_s16): Likewise.
2211 (vqrdmulh_s32): Likewise.
2212 (vqrdmulhq_s16): Likewise.
2213 (vqrdmulhq_s32): Likewise.
2214 (vmull_s8): Likewise.
2215 (vmull_s16): Likewise.
2216 (vmull_s32): Likewise.
2217 (vmull_u8): Likewise.
2218 (vmull_u16): Likewise.
2219 (vmull_u32): Likewise.
2220 (vmull_p8): Likewise.
2221 (vqdmull_s16): Likewise.
2222 (vqdmull_s32): Likewise.
2223 (vmla_s8): Likewise.
2224 (vmla_s16): Likewise.
2225 (vmla_s32): Likewise.
2226 (vmla_f32): Likewise.
2227 (vmla_u8): Likewise.
2228 (vmla_u16): Likewise.
2229 (vmla_u32): Likewise.
2230 (vmlaq_s8): Likewise.
2231 (vmlaq_s16): Likewise.
2232 (vmlaq_s32): Likewise.
2233 (vmlaq_f32): Likewise.
2234 (vmlaq_u8): Likewise.
2235 (vmlaq_u16): Likewise.
2236 (vmlaq_u32): Likewise.
2237 (vmlal_s8): Likewise.
2238 (vmlal_s16): Likewise.
2239 (vmlal_s32): Likewise.
2240 (vmlal_u8): Likewise.
2241 (vmlal_u16): Likewise.
2242 (vmlal_u32): Likewise.
2243 (vqdmlal_s16): Likewise.
2244 (vqdmlal_s32): Likewise.
2245 (vmls_s8): Likewise.
2246 (vmls_s16): Likewise.
2247 (vmls_s32): Likewise.
2248 (vmls_f32): Likewise.
2249 (vmls_u8): Likewise.
2250 (vmls_u16): Likewise.
2251 (vmls_u32): Likewise.
2252 (vmlsq_s8): Likewise.
2253 (vmlsq_s16): Likewise.
2254 (vmlsq_s32): Likewise.
2255 (vmlsq_f32): Likewise.
2256 (vmlsq_u8): Likewise.
2257 (vmlsq_u16): Likewise.
2258 (vmlsq_u32): Likewise.
2259 (vmlsl_s8): Likewise.
2260 (vmlsl_s16): Likewise.
2261 (vmlsl_s32): Likewise.
2262 (vmlsl_u8): Likewise.
2263 (vmlsl_u16): Likewise.
2264 (vmlsl_u32): Likewise.
2265 (vqdmlsl_s16): Likewise.
2266 (vqdmlsl_s32): Likewise.
2267 (vfma_f32): Likewise.
2268 (vfmaq_f32): Likewise.
2269 (vfms_f32): Likewise.
2270 (vfmsq_f32): Likewise.
2271 (vsubl_s8): Likewise.
2272 (vsubl_s16): Likewise.
2273 (vsubl_s32): Likewise.
2274 (vsubl_u8): Likewise.
2275 (vsubl_u16): Likewise.
2276 (vsubl_u32): Likewise.
2277 (vsubw_s8): Likewise.
2278 (vsubw_s16): Likewise.
2279 (vsubw_s32): Likewise.
2280 (vsubw_u8): Likewise.
2281 (vsubw_u16): Likewise.
2282 (vsubw_u32): Likewise.
2283 (vhsub_s8): Likewise.
2284 (vhsub_s16): Likewise.
2285 (vhsub_s32): Likewise.
2286 (vhsub_u8): Likewise.
2287 (vhsub_u16): Likewise.
2288 (vhsub_u32): Likewise.
2289 (vhsubq_s8): Likewise.
2290 (vhsubq_s16): Likewise.
2291 (vhsubq_s32): Likewise.
2292 (vhsubq_u8): Likewise.
2293 (vhsubq_u16): Likewise.
2294 (vhsubq_u32): Likewise.
2295 (vqsub_s8): Likewise.
2296 (vqsub_s16): Likewise.
2297 (vqsub_s32): Likewise.
2298 (vqsub_s64): Likewise.
2299 (vqsub_u8): Likewise.
2300 (vqsub_u16): Likewise.
2301 (vqsub_u32): Likewise.
2302 (vqsub_u64): Likewise.
2303 (vqsubq_s8): Likewise.
2304 (vqsubq_s16): Likewise.
2305 (vqsubq_s32): Likewise.
2306 (vqsubq_s64): Likewise.
2307 (vqsubq_u8): Likewise.
2308 (vqsubq_u16): Likewise.
2309 (vqsubq_u32): Likewise.
2310 (vqsubq_u64): Likewise.
2311 (vsubhn_s16): Likewise.
2312 (vsubhn_s32): Likewise.
2313 (vsubhn_s64): Likewise.
2314 (vsubhn_u16): Likewise.
2315 (vsubhn_u32): Likewise.
2316 (vsubhn_u64): Likewise.
2317 (vrsubhn_s16): Likewise.
2318 (vrsubhn_s32): Likewise.
2319 (vrsubhn_s64): Likewise.
2320 (vrsubhn_u16): Likewise.
2321 (vrsubhn_u32): Likewise.
2322 (vrsubhn_u64): Likewise.
2323 (vceq_s8): Likewise.
2324 (vceq_s16): Likewise.
2325 (vceq_s32): Likewise.
2326 (vceq_f32): Likewise.
2327 (vceq_u8): Likewise.
2328 (vceq_u16): Likewise.
2329 (vceq_u32): Likewise.
2330 (vceq_p8): Likewise.
2331 (vceqq_s8): Likewise.
2332 (vceqq_s16): Likewise.
2333 (vceqq_s32): Likewise.
2334 (vceqq_f32): Likewise.
2335 (vceqq_u8): Likewise.
2336 (vceqq_u16): Likewise.
2337 (vceqq_u32): Likewise.
2338 (vceqq_p8): Likewise.
2339 (vcge_s8): Likewise.
2340 (vcge_s16): Likewise.
2341 (vcge_s32): Likewise.
2342 (vcge_f32): Likewise.
2343 (vcge_u8): Likewise.
2344 (vcge_u16): Likewise.
2345 (vcge_u32): Likewise.
2346 (vcgeq_s8): Likewise.
2347 (vcgeq_s16): Likewise.
2348 (vcgeq_s32): Likewise.
2349 (vcgeq_f32): Likewise.
2350 (vcgeq_u8): Likewise.
2351 (vcgeq_u16): Likewise.
2352 (vcgeq_u32): Likewise.
2353 (vcle_s8): Likewise.
2354 (vcle_s16): Likewise.
2355 (vcle_s32): Likewise.
2356 (vcle_f32): Likewise.
2357 (vcle_u8): Likewise.
2358 (vcle_u16): Likewise.
2359 (vcle_u32): Likewise.
2360 (vcleq_s8): Likewise.
2361 (vcleq_s16): Likewise.
2362 (vcleq_s32): Likewise.
2363 (vcleq_f32): Likewise.
2364 (vcleq_u8): Likewise.
2365 (vcleq_u16): Likewise.
2366 (vcleq_u32): Likewise.
2367 (vcgt_s8): Likewise.
2368 (vcgt_s16): Likewise.
2369 (vcgt_s32): Likewise.
2370 (vcgt_f32): Likewise.
2371 (vcgt_u8): Likewise.
2372 (vcgt_u16): Likewise.
2373 (vcgt_u32): Likewise.
2374 (vcgtq_s8): Likewise.
2375 (vcgtq_s16): Likewise.
2376 (vcgtq_s32): Likewise.
2377 (vcgtq_f32): Likewise.
2378 (vcgtq_u8): Likewise.
2379 (vcgtq_u16): Likewise.
2380 (vcgtq_u32): Likewise.
2381 (vclt_s8): Likewise.
2382 (vclt_s16): Likewise.
2383 (vclt_s32): Likewise.
2384 (vclt_f32): Likewise.
2385 (vclt_u8): Likewise.
2386 (vclt_u16): Likewise.
2387 (vclt_u32): Likewise.
2388 (vcltq_s8): Likewise.
2389 (vcltq_s16): Likewise.
2390 (vcltq_s32): Likewise.
2391 (vcltq_f32): Likewise.
2392 (vcltq_u8): Likewise.
2393 (vcltq_u16): Likewise.
2394 (vcltq_u32): Likewise.
2395 (vcage_f32): Likewise.
2396 (vcageq_f32): Likewise.
2397 (vcale_f32): Likewise.
2398 (vcaleq_f32): Likewise.
2399 (vcagt_f32): Likewise.
2400 (vcagtq_f32): Likewise.
2401 (vcalt_f32): Likewise.
2402 (vcaltq_f32): Likewise.
2403 (vtst_s8): Likewise.
2404 (vtst_s16): Likewise.
2405 (vtst_s32): Likewise.
2406 (vtst_u8): Likewise.
2407 (vtst_u16): Likewise.
2408 (vtst_u32): Likewise.
2409 (vtst_p8): Likewise.
2410 (vtstq_s8): Likewise.
2411 (vtstq_s16): Likewise.
2412 (vtstq_s32): Likewise.
2413 (vtstq_u8): Likewise.
2414 (vtstq_u16): Likewise.
2415 (vtstq_u32): Likewise.
2416 (vtstq_p8): Likewise.
2417 (vabd_s8): Likewise.
2418 (vabd_s16): Likewise.
2419 (vabd_s32): Likewise.
2420 (vabd_f32): Likewise.
2421 (vabd_u8): Likewise.
2422 (vabd_u16): Likewise.
2423 (vabd_u32): Likewise.
2424 (vabdq_s8): Likewise.
2425 (vabdq_s16): Likewise.
2426 (vabdq_s32): Likewise.
2427 (vabdq_f32): Likewise.
2428 (vabdq_u8): Likewise.
2429 (vabdq_u16): Likewise.
2430 (vabdq_u32): Likewise.
2431 (vabdl_s8): Likewise.
2432 (vabdl_s16): Likewise.
2433 (vabdl_s32): Likewise.
2434 (vabdl_u8): Likewise.
2435 (vabdl_u16): Likewise.
2436 (vabdl_u32): Likewise.
2437 (vaba_s8): Likewise.
2438 (vaba_s16): Likewise.
2439 (vaba_s32): Likewise.
2440 (vaba_u8): Likewise.
2441 (vaba_u16): Likewise.
2442 (vaba_u32): Likewise.
2443 (vabaq_s8): Likewise.
2444 (vabaq_s16): Likewise.
2445 (vabaq_s32): Likewise.
2446 (vabaq_u8): Likewise.
2447 (vabaq_u16): Likewise.
2448 (vabaq_u32): Likewise.
2449 (vabal_s8): Likewise.
2450 (vabal_s16): Likewise.
2451 (vabal_s32): Likewise.
2452 (vabal_u8): Likewise.
2453 (vabal_u16): Likewise.
2454 (vabal_u32): Likewise.
2455 (vmax_s8): Likewise.
2456 (vmax_s16): Likewise.
2457 (vmax_s32): Likewise.
2458 (vmax_f32): Likewise.
2459 (vmax_u8): Likewise.
2460 (vmax_u16): Likewise.
2461 (vmax_u32): Likewise.
2462 (vmaxq_s8): Likewise.
2463 (vmaxq_s16): Likewise.
2464 (vmaxq_s32): Likewise.
2465 (vmaxq_f32): Likewise.
2466 (vmaxq_u8): Likewise.
2467 (vmaxq_u16): Likewise.
2468 (vmaxq_u32): Likewise.
2469 (vmin_s8): Likewise.
2470 (vmin_s16): Likewise.
2471 (vmin_s32): Likewise.
2472 (vmin_f32): Likewise.
2473 (vmin_u8): Likewise.
2474 (vmin_u16): Likewise.
2475 (vmin_u32): Likewise.
2476 (vminq_s8): Likewise.
2477 (vminq_s16): Likewise.
2478 (vminq_s32): Likewise.
2479 (vminq_f32): Likewise.
2480 (vminq_u8): Likewise.
2481 (vminq_u16): Likewise.
2482 (vminq_u32): Likewise.
2483 (vpadd_s8): Likewise.
2484 (vpadd_s16): Likewise.
2485 (vpadd_s32): Likewise.
2486 (vpadd_f32): Likewise.
2487 (vpadd_u8): Likewise.
2488 (vpadd_u16): Likewise.
2489 (vpadd_u32): Likewise.
2490 (vpaddl_s8): Likewise.
2491 (vpaddl_s16): Likewise.
2492 (vpaddl_s32): Likewise.
2493 (vpaddl_u8): Likewise.
2494 (vpaddl_u16): Likewise.
2495 (vpaddl_u32): Likewise.
2496 (vpaddlq_s8): Likewise.
2497 (vpaddlq_s16): Likewise.
2498 (vpaddlq_s32): Likewise.
2499 (vpaddlq_u8): Likewise.
2500 (vpaddlq_u16): Likewise.
2501 (vpaddlq_u32): Likewise.
2502 (vpadal_s8): Likewise.
2503 (vpadal_s16): Likewise.
2504 (vpadal_s32): Likewise.
2505 (vpadal_u8): Likewise.
2506 (vpadal_u16): Likewise.
2507 (vpadal_u32): Likewise.
2508 (vpadalq_s8): Likewise.
2509 (vpadalq_s16): Likewise.
2510 (vpadalq_s32): Likewise.
2511 (vpadalq_u8): Likewise.
2512 (vpadalq_u16): Likewise.
2513 (vpadalq_u32): Likewise.
2514 (vpmax_s8): Likewise.
2515 (vpmax_s16): Likewise.
2516 (vpmax_s32): Likewise.
2517 (vpmax_f32): Likewise.
2518 (vpmax_u8): Likewise.
2519 (vpmax_u16): Likewise.
2520 (vpmax_u32): Likewise.
2521 (vpmin_s8): Likewise.
2522 (vpmin_s16): Likewise.
2523 (vpmin_s32): Likewise.
2524 (vpmin_f32): Likewise.
2525 (vpmin_u8): Likewise.
2526 (vpmin_u16): Likewise.
2527 (vpmin_u32): Likewise.
2528 (vrecps_f32): Likewise.
2529 (vrecpsq_f32): Likewise.
2530 (vrsqrts_f32): Likewise.
2531 (vrsqrtsq_f32): Likewise.
2532 (vshl_s8): Likewise.
2533 (vshl_s16): Likewise.
2534 (vshl_s32): Likewise.
2535 (vshl_s64): Likewise.
2536 (vshl_u8): Likewise.
2537 (vshl_u16): Likewise.
2538 (vshl_u32): Likewise.
2539 (vshl_u64): Likewise.
2540 (vshlq_s8): Likewise.
2541 (vshlq_s16): Likewise.
2542 (vshlq_s32): Likewise.
2543 (vshlq_s64): Likewise.
2544 (vshlq_u8): Likewise.
2545 (vshlq_u16): Likewise.
2546 (vshlq_u32): Likewise.
2547 (vshlq_u64): Likewise.
2548 (vrshl_s8): Likewise.
2549 (vrshl_s16): Likewise.
2550 (vrshl_s32): Likewise.
2551 (vrshl_s64): Likewise.
2552 (vrshl_u8): Likewise.
2553 (vrshl_u16): Likewise.
2554 (vrshl_u32): Likewise.
2555 (vrshl_u64): Likewise.
2556 (vrshlq_s8): Likewise.
2557 (vrshlq_s16): Likewise.
2558 (vrshlq_s32): Likewise.
2559 (vrshlq_s64): Likewise.
2560 (vrshlq_u8): Likewise.
2561 (vrshlq_u16): Likewise.
2562 (vrshlq_u32): Likewise.
2563 (vrshlq_u64): Likewise.
2564 (vqshl_s8): Likewise.
2565 (vqshl_s16): Likewise.
2566 (vqshl_s32): Likewise.
2567 (vqshl_s64): Likewise.
2568 (vqshl_u8): Likewise.
2569 (vqshl_u16): Likewise.
2570 (vqshl_u32): Likewise.
2571 (vqshl_u64): Likewise.
2572 (vqshlq_s8): Likewise.
2573 (vqshlq_s16): Likewise.
2574 (vqshlq_s32): Likewise.
2575 (vqshlq_s64): Likewise.
2576 (vqshlq_u8): Likewise.
2577 (vqshlq_u16): Likewise.
2578 (vqshlq_u32): Likewise.
2579 (vqshlq_u64): Likewise.
2580 (vqrshl_s8): Likewise.
2581 (vqrshl_s16): Likewise.
2582 (vqrshl_s32): Likewise.
2583 (vqrshl_s64): Likewise.
2584 (vqrshl_u8): Likewise.
2585 (vqrshl_u16): Likewise.
2586 (vqrshl_u32): Likewise.
2587 (vqrshl_u64): Likewise.
2588 (vqrshlq_s8): Likewise.
2589 (vqrshlq_s16): Likewise.
2590 (vqrshlq_s32): Likewise.
2591 (vqrshlq_s64): Likewise.
2592 (vqrshlq_u8): Likewise.
2593 (vqrshlq_u16): Likewise.
2594 (vqrshlq_u32): Likewise.
2595 (vqrshlq_u64): Likewise.
2596 (vshr_n_s8): Likewise.
2597 (vshr_n_s16): Likewise.
2598 (vshr_n_s32): Likewise.
2599 (vshr_n_s64): Likewise.
2600 (vshr_n_u8): Likewise.
2601 (vshr_n_u16): Likewise.
2602 (vshr_n_u32): Likewise.
2603 (vshr_n_u64): Likewise.
2604 (vshrq_n_s8): Likewise.
2605 (vshrq_n_s16): Likewise.
2606 (vshrq_n_s32): Likewise.
2607 (vshrq_n_s64): Likewise.
2608 (vshrq_n_u8): Likewise.
2609 (vshrq_n_u16): Likewise.
2610 (vshrq_n_u32): Likewise.
2611 (vshrq_n_u64): Likewise.
2612 (vrshr_n_s8): Likewise.
2613 (vrshr_n_s16): Likewise.
2614 (vrshr_n_s32): Likewise.
2615 (vrshr_n_s64): Likewise.
2616 (vrshr_n_u8): Likewise.
2617 (vrshr_n_u16): Likewise.
2618 (vrshr_n_u32): Likewise.
2619 (vrshr_n_u64): Likewise.
2620 (vrshrq_n_s8): Likewise.
2621 (vrshrq_n_s16): Likewise.
2622 (vrshrq_n_s32): Likewise.
2623 (vrshrq_n_s64): Likewise.
2624 (vrshrq_n_u8): Likewise.
2625 (vrshrq_n_u16): Likewise.
2626 (vrshrq_n_u32): Likewise.
2627 (vrshrq_n_u64): Likewise.
2628 (vshrn_n_s16): Likewise.
2629 (vshrn_n_s32): Likewise.
2630 (vshrn_n_s64): Likewise.
2631 (vshrn_n_u16): Likewise.
2632 (vshrn_n_u32): Likewise.
2633 (vshrn_n_u64): Likewise.
2634 (vrshrn_n_s16): Likewise.
2635 (vrshrn_n_s32): Likewise.
2636 (vrshrn_n_s64): Likewise.
2637 (vrshrn_n_u16): Likewise.
2638 (vrshrn_n_u32): Likewise.
2639 (vrshrn_n_u64): Likewise.
2640 (vqshrn_n_s16): Likewise.
2641 (vqshrn_n_s32): Likewise.
2642 (vqshrn_n_s64): Likewise.
2643 (vqshrn_n_u16): Likewise.
2644 (vqshrn_n_u32): Likewise.
2645 (vqshrn_n_u64): Likewise.
2646 (vqrshrn_n_s16): Likewise.
2647 (vqrshrn_n_s32): Likewise.
2648 (vqrshrn_n_s64): Likewise.
2649 (vqrshrn_n_u16): Likewise.
2650 (vqrshrn_n_u32): Likewise.
2651 (vqrshrn_n_u64): Likewise.
2652 (vqshrun_n_s16): Likewise.
2653 (vqshrun_n_s32): Likewise.
2654 (vqshrun_n_s64): Likewise.
2655 (vqrshrun_n_s16): Likewise.
2656 (vqrshrun_n_s32): Likewise.
2657 (vqrshrun_n_s64): Likewise.
2658 (vshl_n_s8): Likewise.
2659 (vshl_n_s16): Likewise.
2660 (vshl_n_s32): Likewise.
2661 (vshl_n_s64): Likewise.
2662 (vshl_n_u8): Likewise.
2663 (vshl_n_u16): Likewise.
2664 (vshl_n_u32): Likewise.
2665 (vshl_n_u64): Likewise.
2666 (vshlq_n_s8): Likewise.
2667 (vshlq_n_s16): Likewise.
2668 (vshlq_n_s32): Likewise.
2669 (vshlq_n_s64): Likewise.
2670 (vshlq_n_u8): Likewise.
2671 (vshlq_n_u16): Likewise.
2672 (vshlq_n_u32): Likewise.
2673 (vshlq_n_u64): Likewise.
2674 (vqshl_n_s8): Likewise.
2675 (vqshl_n_s16): Likewise.
2676 (vqshl_n_s32): Likewise.
2677 (vqshl_n_s64): Likewise.
2678 (vqshl_n_u8): Likewise.
2679 (vqshl_n_u16): Likewise.
2680 (vqshl_n_u32): Likewise.
2681 (vqshl_n_u64): Likewise.
2682 (vqshlq_n_s8): Likewise.
2683 (vqshlq_n_s16): Likewise.
2684 (vqshlq_n_s32): Likewise.
2685 (vqshlq_n_s64): Likewise.
2686 (vqshlq_n_u8): Likewise.
2687 (vqshlq_n_u16): Likewise.
2688 (vqshlq_n_u32): Likewise.
2689 (vqshlq_n_u64): Likewise.
2690 (vqshlu_n_s8): Likewise.
2691 (vqshlu_n_s16): Likewise.
2692 (vqshlu_n_s32): Likewise.
2693 (vqshlu_n_s64): Likewise.
2694 (vqshluq_n_s8): Likewise.
2695 (vqshluq_n_s16): Likewise.
2696 (vqshluq_n_s32): Likewise.
2697 (vqshluq_n_s64): Likewise.
2698 (vshll_n_s8): Likewise.
2699 (vshll_n_s16): Likewise.
2700 (vshll_n_s32): Likewise.
2701 (vshll_n_u8): Likewise.
2702 (vshll_n_u16): Likewise.
2703 (vshll_n_u32): Likewise.
2704 (vsra_n_s8): Likewise.
2705 (vsra_n_s16): Likewise.
2706 (vsra_n_s32): Likewise.
2707 (vsra_n_s64): Likewise.
2708 (vsra_n_u8): Likewise.
2709 (vsra_n_u16): Likewise.
2710 (vsra_n_u32): Likewise.
2711 (vsra_n_u64): Likewise.
2712 (vsraq_n_s8): Likewise.
2713 (vsraq_n_s16): Likewise.
2714 (vsraq_n_s32): Likewise.
2715 (vsraq_n_s64): Likewise.
2716 (vsraq_n_u8): Likewise.
2717 (vsraq_n_u16): Likewise.
2718 (vsraq_n_u32): Likewise.
2719 (vsraq_n_u64): Likewise.
2720 (vrsra_n_s8): Likewise.
2721 (vrsra_n_s16): Likewise.
2722 (vrsra_n_s32): Likewise.
2723 (vrsra_n_s64): Likewise.
2724 (vrsra_n_u8): Likewise.
2725 (vrsra_n_u16): Likewise.
2726 (vrsra_n_u32): Likewise.
2727 (vrsra_n_u64): Likewise.
2728 (vrsraq_n_s8): Likewise.
2729 (vrsraq_n_s16): Likewise.
2730 (vrsraq_n_s32): Likewise.
2731 (vrsraq_n_s64): Likewise.
2732 (vrsraq_n_u8): Likewise.
2733 (vrsraq_n_u16): Likewise.
2734 (vrsraq_n_u32): Likewise.
2735 (vrsraq_n_u64): Likewise.
2736 (vabs_s8): Likewise.
2737 (vabs_s16): Likewise.
2738 (vabs_s32): Likewise.
2739 (vabs_f32): Likewise.
2740 (vabsq_s8): Likewise.
2741 (vabsq_s16): Likewise.
2742 (vabsq_s32): Likewise.
2743 (vabsq_f32): Likewise.
2744 (vqabs_s8): Likewise.
2745 (vqabs_s16): Likewise.
2746 (vqabs_s32): Likewise.
2747 (vqabsq_s8): Likewise.
2748 (vqabsq_s16): Likewise.
2749 (vqabsq_s32): Likewise.
2750 (vneg_s8): Likewise.
2751 (vneg_s16): Likewise.
2752 (vneg_s32): Likewise.
2753 (vneg_f32): Likewise.
2754 (vnegq_s8): Likewise.
2755 (vnegq_s16): Likewise.
2756 (vnegq_s32): Likewise.
2757 (vnegq_f32): Likewise.
2758 (vqneg_s8): Likewise.
2759 (vqneg_s16): Likewise.
2760 (vqneg_s32): Likewise.
2761 (vqnegq_s8): Likewise.
2762 (vqnegq_s16): Likewise.
2763 (vqnegq_s32): Likewise.
2764 (vmvn_s8): Likewise.
2765 (vmvn_s16): Likewise.
2766 (vmvn_s32): Likewise.
2767 (vmvn_u8): Likewise.
2768 (vmvn_u16): Likewise.
2769 (vmvn_u32): Likewise.
2770 (vmvn_p8): Likewise.
2771 (vmvnq_s8): Likewise.
2772 (vmvnq_s16): Likewise.
2773 (vmvnq_s32): Likewise.
2774 (vmvnq_u8): Likewise.
2775 (vmvnq_u16): Likewise.
2776 (vmvnq_u32): Likewise.
2777 (vmvnq_p8): Likewise.
2778 (vcls_s8): Likewise.
2779 (vcls_s16): Likewise.
2780 (vcls_s32): Likewise.
2781 (vclsq_s8): Likewise.
2782 (vclsq_s16): Likewise.
2783 (vclsq_s32): Likewise.
2784 (vclz_s8): Likewise.
2785 (vclz_s16): Likewise.
2786 (vclz_s32): Likewise.
2787 (vclz_u8): Likewise.
2788 (vclz_u16): Likewise.
2789 (vclz_u32): Likewise.
2790 (vclzq_s8): Likewise.
2791 (vclzq_s16): Likewise.
2792 (vclzq_s32): Likewise.
2793 (vclzq_u8): Likewise.
2794 (vclzq_u16): Likewise.
2795 (vclzq_u32): Likewise.
2796 (vcnt_s8): Likewise.
2797 (vcnt_u8): Likewise.
2798 (vcnt_p8): Likewise.
2799 (vcntq_s8): Likewise.
2800 (vcntq_u8): Likewise.
2801 (vcntq_p8): Likewise.
2802 (vrecpe_f32): Likewise.
2803 (vrecpe_u32): Likewise.
2804 (vrecpeq_f32): Likewise.
2805 (vrecpeq_u32): Likewise.
2806 (vrsqrte_f32): Likewise.
2807 (vrsqrte_u32): Likewise.
2808 (vrsqrteq_f32): Likewise.
2809 (vrsqrteq_u32): Likewise.
2810 (vget_lane_s8): Likewise.
2811 (vget_lane_s16): Likewise.
2812 (vget_lane_s32): Likewise.
2813 (vget_lane_f32): Likewise.
2814 (vget_lane_u8): Likewise.
2815 (vget_lane_u16): Likewise.
2816 (vget_lane_u32): Likewise.
2817 (vget_lane_p8): Likewise.
2818 (vget_lane_p16): Likewise.
2819 (vget_lane_s64): Likewise.
2820 (vget_lane_u64): Likewise.
2821 (vgetq_lane_s8): Likewise.
2822 (vgetq_lane_s16): Likewise.
2823 (vgetq_lane_s32): Likewise.
2824 (vgetq_lane_f32): Likewise.
2825 (vgetq_lane_u8): Likewise.
2826 (vgetq_lane_u16): Likewise.
2827 (vgetq_lane_u32): Likewise.
2828 (vgetq_lane_p8): Likewise.
2829 (vgetq_lane_p16): Likewise.
2830 (vgetq_lane_s64): Likewise.
2831 (vgetq_lane_u64): Likewise.
2832 (vcvt_s32_f32): Likewise.
2833 (vcvt_f32_s32): Likewise.
2834 (vcvt_f32_u32): Likewise.
2835 (vcvt_u32_f32): Likewise.
2836 (vcvtq_s32_f32): Likewise.
2837 (vcvtq_f32_s32): Likewise.
2838 (vcvtq_f32_u32): Likewise.
2839 (vcvtq_u32_f32): Likewise.
2840 (vcvt_n_s32_f32): Likewise.
2841 (vcvt_n_f32_s32): Likewise.
2842 (vcvt_n_f32_u32): Likewise.
2843 (vcvt_n_u32_f32): Likewise.
2844 (vcvtq_n_s32_f32): Likewise.
2845 (vcvtq_n_f32_s32): Likewise.
2846 (vcvtq_n_f32_u32): Likewise.
2847 (vcvtq_n_u32_f32): Likewise.
2848 (vmovn_s16): Likewise.
2849 (vmovn_s32): Likewise.
2850 (vmovn_s64): Likewise.
2851 (vmovn_u16): Likewise.
2852 (vmovn_u32): Likewise.
2853 (vmovn_u64): Likewise.
2854 (vqmovn_s16): Likewise.
2855 (vqmovn_s32): Likewise.
2856 (vqmovn_s64): Likewise.
2857 (vqmovn_u16): Likewise.
2858 (vqmovn_u32): Likewise.
2859 (vqmovn_u64): Likewise.
2860 (vqmovun_s16): Likewise.
2861 (vqmovun_s32): Likewise.
2862 (vqmovun_s64): Likewise.
2863 (vmovl_s8): Likewise.
2864 (vmovl_s16): Likewise.
2865 (vmovl_s32): Likewise.
2866 (vmovl_u8): Likewise.
2867 (vmovl_u16): Likewise.
2868 (vmovl_u32): Likewise.
2869 (vmul_lane_s16): Likewise.
2870 (vmul_lane_s32): Likewise.
2871 (vmul_lane_f32): Likewise.
2872 (vmul_lane_u16): Likewise.
2873 (vmul_lane_u32): Likewise.
2874 (vmulq_lane_s16): Likewise.
2875 (vmulq_lane_s32): Likewise.
2876 (vmulq_lane_f32): Likewise.
2877 (vmulq_lane_u16): Likewise.
2878 (vmulq_lane_u32): Likewise.
2879 (vmla_lane_s16): Likewise.
2880 (vmla_lane_s32): Likewise.
2881 (vmla_lane_f32): Likewise.
2882 (vmla_lane_u16): Likewise.
2883 (vmla_lane_u32): Likewise.
2884 (vmlaq_lane_s16): Likewise.
2885 (vmlaq_lane_s32): Likewise.
2886 (vmlaq_lane_f32): Likewise.
2887 (vmlaq_lane_u16): Likewise.
2888 (vmlaq_lane_u32): Likewise.
2889 (vmlal_lane_s16): Likewise.
2890 (vmlal_lane_s32): Likewise.
2891 (vmlal_lane_u16): Likewise.
2892 (vmlal_lane_u32): Likewise.
2893 (vqdmlal_lane_s16): Likewise.
2894 (vqdmlal_lane_s32): Likewise.
2895 (vmls_lane_s16): Likewise.
2896 (vmls_lane_s32): Likewise.
2897 (vmls_lane_f32): Likewise.
2898 (vmls_lane_u16): Likewise.
2899 (vmls_lane_u32): Likewise.
2900 (vmlsq_lane_s16): Likewise.
2901 (vmlsq_lane_s32): Likewise.
2902 (vmlsq_lane_f32): Likewise.
2903 (vmlsq_lane_u16): Likewise.
2904 (vmlsq_lane_u32): Likewise.
2905 (vmlsl_lane_s16): Likewise.
2906 (vmlsl_lane_s32): Likewise.
2907 (vmlsl_lane_u16): Likewise.
2908 (vmlsl_lane_u32): Likewise.
2909 (vqdmlsl_lane_s16): Likewise.
2910 (vqdmlsl_lane_s32): Likewise.
2911 (vmull_lane_s16): Likewise.
2912 (vmull_lane_s32): Likewise.
2913 (vmull_lane_u16): Likewise.
2914 (vmull_lane_u32): Likewise.
2915 (vqdmull_lane_s16): Likewise.
2916 (vqdmull_lane_s32): Likewise.
2917 (vqdmulhq_lane_s16): Likewise.
2918 (vqdmulhq_lane_s32): Likewise.
2919 (vqdmulh_lane_s16): Likewise.
2920 (vqdmulh_lane_s32): Likewise.
2921 (vqrdmulhq_lane_s16): Likewise.
2922 (vqrdmulhq_lane_s32): Likewise.
2923 (vqrdmulh_lane_s16): Likewise.
2924 (vqrdmulh_lane_s32): Likewise.
2925 (vmul_n_s16): Likewise.
2926 (vmul_n_s32): Likewise.
2927 (vmul_n_f32): Likewise.
2928 (vmul_n_u16): Likewise.
2929 (vmul_n_u32): Likewise.
2930 (vmulq_n_s16): Likewise.
2931 (vmulq_n_s32): Likewise.
2932 (vmulq_n_f32): Likewise.
2933 (vmulq_n_u16): Likewise.
2934 (vmulq_n_u32): Likewise.
2935 (vmull_n_s16): Likewise.
2936 (vmull_n_s32): Likewise.
2937 (vmull_n_u16): Likewise.
2938 (vmull_n_u32): Likewise.
2939 (vqdmull_n_s16): Likewise.
2940 (vqdmull_n_s32): Likewise.
2941 (vqdmulhq_n_s16): Likewise.
2942 (vqdmulhq_n_s32): Likewise.
2943 (vqdmulh_n_s16): Likewise.
2944 (vqdmulh_n_s32): Likewise.
2945 (vqrdmulhq_n_s16): Likewise.
2946 (vqrdmulhq_n_s32): Likewise.
2947 (vqrdmulh_n_s16): Likewise.
2948 (vqrdmulh_n_s32): Likewise.
2949 (vmla_n_s16): Likewise.
2950 (vmla_n_s32): Likewise.
2951 (vmla_n_f32): Likewise.
2952 (vmla_n_u16): Likewise.
2953 (vmla_n_u32): Likewise.
2954 (vmlaq_n_s16): Likewise.
2955 (vmlaq_n_s32): Likewise.
2956 (vmlaq_n_f32): Likewise.
2957 (vmlaq_n_u16): Likewise.
2958 (vmlaq_n_u32): Likewise.
2959 (vmlal_n_s16): Likewise.
2960 (vmlal_n_s32): Likewise.
2961 (vmlal_n_u16): Likewise.
2962 (vmlal_n_u32): Likewise.
2963 (vqdmlal_n_s16): Likewise.
2964 (vqdmlal_n_s32): Likewise.
2965 (vmls_n_s16): Likewise.
2966 (vmls_n_s32): Likewise.
2967 (vmls_n_f32): Likewise.
2968 (vmls_n_u16): Likewise.
2969 (vmls_n_u32): Likewise.
2970 (vmlsq_n_s16): Likewise.
2971 (vmlsq_n_s32): Likewise.
2972 (vmlsq_n_f32): Likewise.
2973 (vmlsq_n_u16): Likewise.
2974 (vmlsq_n_u32): Likewise.
2975 (vmlsl_n_s16): Likewise.
2976 (vmlsl_n_s32): Likewise.
2977 (vmlsl_n_u16): Likewise.
2978 (vmlsl_n_u32): Likewise.
2979 (vqdmlsl_n_s16): Likewise.
2980 (vqdmlsl_n_s32): Likewise.
2981
2982 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2983
2984 * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
2985 Add cost of alu.arith in simple SImode case.
2986
2987 2014-11-18 Jiong Wang <jiong.wang@arm.com>
2988
2989 * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
2990 registers.
2991
2992 2014-11-18 Marat Zakirov <m.zakirov@samsung.com>
2993
2994 * opts.c (finish_options): Disable aggressive opts for sanitizer.
2995 (common_handle_option): Move code to finish_options.
2996
2997 2014-11-18 Yury Gribov <y.gribov@samsung.com>
2998
2999 PR sanitizer/63802
3000 * stor-layout.c (min_align_of_type): Respect user alignment
3001 more.
3002
3003 2014-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
3004
3005 * passes.c (remove_cgraph_node_from_order): New.
3006 (do_per_function_toporder): Register cgraph removal
3007 hook.
3008
3009 2014-11-17 Terry Guo <terry.guo@arm.com>
3010
3011 * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
3012 * config/arm/arm.md (generic_sched): Exclude cortex-m7.
3013 (generic_vfp): Likewise.
3014 * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
3015
3016 2014-11-17 Vladimir Makarov <vmakarov@redhat.com>
3017
3018 PR rtl-optimization/63906
3019 * lra-remat.c (operand_to_remat): Check SP and
3020 frame_pointer_required.
3021
3022 2014-11-17 Mircea Namolaru <mircea.namolaru@inria.fr>
3023
3024 * doc/invoke.texi (floop-unroll-and-jam): Document
3025 (loop-unroll-jam-size): Likewise.
3026 (loop-unroll-jam-depth): Likewise.
3027 * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
3028 (getScheduleForBandList): Replaced unsafe union_map reuse.
3029
3030 2014-11-17 Andrew Pinski <apinski@cavium.com>
3031
3032 * config/aarch64/thunderx.md: Remove copyright which should not
3033 have been there.
3034
3035 2014-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
3036 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3037
3038 * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
3039 Altivec style vector loads that ignore the bottom 3 bits of the
3040 address.
3041 (rs6000_debug_addr_mask): New function to print the addr_mask
3042 values if debugging.
3043 (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
3044 out addr_mask.
3045 (rs6000_setup_reg_addr_masks): Add support for Altivec style
3046 vector loads that ignore the bottom 3 bits of the address. Allow
3047 pre-increment and pre-decrement on floating point, even if the
3048 -mupper-regs-{sf,df} options were used.
3049 (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
3050 -mupper-regs-df. Add support for -mupper-regs-sf. Rearrange code
3051 placement for direct move support.
3052 (rs6000_option_override_internal): Add checks for -mupper-regs-df
3053 requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
3054 If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
3055 depending on the underlying cpu.
3056 (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
3057 (rs6000_secondary_reload_toc_costs): Helper function to identify
3058 costs of a TOC load for secondary reload support.
3059 (rs6000_secondary_reload_memory): Helper function for secondary
3060 reload, to determine if a particular memory operation is directly
3061 handled by the hardware, or if it needs support from secondary
3062 reload to create a valid address.
3063 (rs6000_secondary_reload): Rework code, to be clearer. If the
3064 appropriate -mupper-regs-{sf,df} is used, use FPR registers to
3065 reload scalar values, since the FPR registers have D-form
3066 addressing. Move most of the code handling memory to the function
3067 rs6000_secondary_reload_memory, and use the reg_addr structure to
3068 determine what type of address modes are supported. Print more
3069 debug information if -mdebug=addr.
3070 (rs6000_secondary_reload_inner): Rework entire function to be more
3071 general. Use the reg_addr bits to determine what type of
3072 addressing is supported.
3073 (rs6000_preferred_reload_class): Rework. Move constant handling
3074 into a single place. Prefer using FLOAT_REGS for scalar floating
3075 point.
3076 (rs6000_secondary_reload_class): Use a FPR register to move a
3077 value from an Altivec register to a GPR, and vice versa. Move VSX
3078 handling above traditional floating point.
3079
3080 * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
3081 Delete some spaces in the constraints.
3082 (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
3083 allow using FPR registers to load/store an Altivec register for
3084 scalar floating point types.
3085 (SF->SF move peephole2): Likewise.
3086 (DFmode splitter): Add a define_split to move floating point
3087 constants to the constant pool before register allocation.
3088 Normally constants are put into the pool immediately, but
3089 -ffast-math delays putting them into the constant pool for the
3090 reciprocal approximation support.
3091 (SFmode splitter): Likewise.
3092
3093 * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
3094 (-mupper-regs-sf): Likewise.
3095
3096 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3097 __UPPER_REGS_DF__ if -mupper-regs-df. Define __UPPER_REGS_SF__ if
3098 -mupper-regs-sf.
3099 (-mupper-regs): New combination option that sets -mupper-regs-sf
3100 and -mupper-regs-df by default if the cpu supports the instructions.
3101
3102 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3103 -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
3104
3105 * config/rs6000/predicates.md (memory_fp_constant): New predicate
3106 to return true if the operand is a floating point constant that
3107 must be put into the constant pool, before register allocation
3108 occurs.
3109
3110 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
3111 -mupper-regs-df by default.
3112 (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
3113 (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
3114 various -mcpu=... options.
3115 (power7 cpu): Enable -mupper-regs-df by default.
3116
3117 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3118 -mupper-regs.
3119
3120 2014-11-17 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
3121
3122 * ira-conflicts.c (build_conflict_bit_table): Add the current
3123 object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
3124
3125 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
3126
3127 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
3128 (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
3129 (devirtualization_time_bonus): Use it.
3130 (ipcp_discover_new_direct_edges): Likewise.
3131 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
3132 * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
3133
3134 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
3135
3136 * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
3137 to optimization_default_node.
3138
3139 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
3140
3141 * cgraphunit.c (analyze_functions): Use opt_for_fn.
3142 * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
3143
3144 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
3145
3146 * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
3147 (cgraph_node::cannot_return_p): Likewise.
3148 (cgraph_edge::cannot_lead_to_return_p): Likewise.
3149 (cgraph_edge::maybe_hot_p): Likewise.
3150
3151 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
3152
3153 * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
3154 (optimize_function_for_size_p): Likewise.
3155 (probably_never_executed): Likewise; replace cfun by fun.
3156
3157 2014-11-17 Alan Lawrence <alan.lawrence@arm.com>
3158
3159 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
3160 variant reading from memory and assembling to ld1.
3161
3162 * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
3163 vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
3164 vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
3165 vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
3166 vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
3167 vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
3168 vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
3169
3170 2014-11-17 Jason Merrill <jason@redhat.com>
3171
3172 * tree-inline.c (copy_fn): New.
3173 * tree-inline.h: Declare it.
3174
3175 2014-11-17 Alan Lawrence <alan.lawrence@arm.com>
3176
3177 * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
3178 * config/aarch64/aarch64-simd-builtins.def (create): Remove.
3179 * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
3180 * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
3181 vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
3182 * config/aarch64/iterators.md (VD1): Remove.
3183
3184 2014-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3185
3186 * config/aarch64/aarch64-cores.def (cortex-a53): Remove
3187 AARCH64_FL_CRYPTO from feature flags.
3188 (cortex-a57): Likewise.
3189 (cortex-a57.cortex-a53): Likewise.
3190
3191 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
3192
3193 * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
3194 DECL_FUNCTION_SPECIFIC_TARGET.
3195 * i386.c (ix86_set_current_function): Handle explicit default options.
3196
3197 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
3198
3199 * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
3200 instead of BNDmode.
3201 (expand_builtin_mempcpy_with_bounds): Likewise.
3202 (expand_builtin_memset_with_bounds): Likewise.
3203
3204 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
3205
3206 * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
3207 ipa-ref.h, plugin-api.h.
3208 (get_string_length): Handle calls with bounds.
3209 (adjust_last_stmt): Likewise.
3210 (handle_builtin_strchr): Likewise.
3211 (handle_builtin_strcpy): Likewise.
3212 (handle_builtin_memcpy): Likewise.
3213 (handle_builtin_strcat): Likewise.
3214
3215 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
3216
3217 * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
3218 (chkp_get_nochk_fndecl): New.
3219 (chkp_optimize_string_function_calls): New.
3220 (chkp_opt_execute): Call chkp_optimize_string_function_calls.
3221 * tree-cfg.h (insert_cond_bb): New.
3222 * tree-cfg.c (insert_cond_bb): New.
3223
3224 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
3225
3226 * tree-core.h (built_in_class): Add builtin codes to be used
3227 by Pointer Bounds Checker for instrumented builtin functions.
3228 * tree-streamer-in.c: Include ipa-chkp.h.
3229 (streamer_get_builtin_tree): Created instrumented decl if
3230 required.
3231 * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
3232 * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
3233 function decls.
3234 (chkp_maybe_clone_builtin_fndecl): New.
3235 (chkp_maybe_create_clone): Support builtin function decls.
3236 (chkp_versioning): Clone builtin functions.
3237 * tree-chkp.c (chkp_instrument_normal_builtin): New.
3238 (chkp_add_bounds_to_call_stmt): Support builtin functions.
3239 (chkp_replace_function_pointer): Likewise.
3240 * builtins.c (expand_builtin_memcpy_args): New.
3241 (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
3242 (expand_builtin_memcpy_with_bounds): New.
3243 (expand_builtin_mempcpy_with_bounds): New.
3244 (expand_builtin_mempcpy_args): Add orig_exp arg. Support
3245 BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
3246 (expand_builtin_memset_with_bounds): New.
3247 (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
3248 (expand_builtin_with_bounds): New.
3249 * builtins.h (expand_builtin_with_bounds): New.
3250 * expr.c (expand_expr_real_1): Support instrumented builtin calls.
3251
3252 2014-11-17 Dodji Seketeli <dodji@redhat.com>
3253
3254 * gimple.h (gimple_set_visited, gimple_visited_p)
3255 (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
3256 comments to these accessors.
3257
3258 2014-11-17 Georg-Johann Lay <avr@gjlay.de>
3259
3260 * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
3261 Set avr_log_details to "all".
3262
3263 2014-11-17 Richard Biener <rguenther@suse.de>
3264
3265 PR middle-end/63898
3266 * match.pd: Guard X / CST -> X * CST' transform against
3267 zero CST.
3268
3269 2014-11-17 Terry Guo <terry.guo@arm.com>
3270
3271 * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
3272 format.
3273
3274 2014-11-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
3275
3276 * ifcvt.c (HAVE_cbranchcc4): Define.
3277 (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
3278 Use HAVE_cbranchcc4.
3279
3280 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3281
3282 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
3283 aarch64_convert_mode, aarch64_gen_ccmp_first,
3284 aarch64_gen_ccmp_next): New functions.
3285 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
3286
3287 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3288
3289 * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
3290 * aarch64.c (aarch64_nzcv_codes): New data.
3291 (aarch64_ccmp_mode_to_code): New.
3292 (aarch64_print_operand): Output nzcv.
3293 config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
3294 New patterns.
3295 (cstore<mode>4): Handle ccmp_cc_register.
3296 * config/aarch64/predicates.md (const0_operand): New.
3297
3298 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3299
3300 * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
3301 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
3302 extacted from aarch64_get_condition_code.
3303 (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
3304 config/aarch64/predicates.md (ccmp_cc_register): New predicate.
3305
3306 014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3307
3308 * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
3309 aarch64_ccmp_operand): New constraints.
3310
3311 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3312
3313 * Makefile.in: Add ccmp.o.
3314 * ccmp.c: New file.
3315 * ccmp.h: New file.
3316 * expr.c: include "ccmp.h"
3317 (expand_cond_expr_using_cmove): Handle VOIDmode.
3318 (expand_expr_real_1): Try to expand ccmp.
3319
3320 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3321
3322 * cfgexpand.c (expand_gimple_cond): Check ccmp.
3323 * expmed.c (emit_cstore): Make it global.
3324 * expmed.h: #include "insn-codes.h"
3325 (emit_cstore): New prototype.
3326 * expr.c (expand_operands): Make it global.
3327 * expr.h (expand_operands): New prototype.
3328 * optabs.c (get_rtx_code): Make it global.
3329 * optabs.h (get_rtx_code): New prototype.
3330
3331 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3332
3333 * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
3334 * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
3335 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
3336
3337 2014-11-16 Patrick Palka <ppalka@gcc.gnu.org>
3338
3339 PR middle-end/63790
3340 * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
3341 Always combine comparisons or conversions from booleans.
3342
3343 2014-11-16 Jan Hubicka <hubicka@ucw.cz>
3344
3345 * ipa-polymorphic-call.c
3346 (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
3347 (ipa_polymorphic_call_context::meet_speculation_with): New function.
3348 (ipa_polymorphic_call_context::combine_with): Handle types in construction
3349 better.
3350 (ipa_polymorphic_call_context::equal_to): Do not bother about useless
3351 speculation.
3352 (ipa_polymorphic_call_context::meet_with): New function.
3353 * cgraph.h (class ipa_polymorphic_call_context): Add
3354 meet_width, meet_speculation_with; constify speculation_consistent_p.
3355 * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
3356 context.
3357 (propagate_context_accross_jump_function): Likewise; be more cureful.
3358 about set_contains_variable.
3359 (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
3360 (find_more_scalar_values_for_callers_subset): Fix.
3361 (find_more_contexts_for_caller_subset): Perform meet operation.
3362
3363 2014-11-16 Jan Hubicka <hubicka@ucw.cz>
3364
3365 * passes.c (execute_one_pass): Do not apply all transforms prior
3366 every simple IPA pass.
3367 * cgraphunit.c: Do not include fibheap.h
3368 (expand_thunk): Use get_untransformed_body.
3369 (cgraph_node::expand): Likewise.
3370 * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
3371 * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
3372 (cgraph_node::get_untransformed_body): Break out from ...
3373 (cgraph_node::get_body): ... here; add code to apply all transforms.
3374 * cgraph.h (cgraph_node): Add get_untransformed_body.
3375 * ipa-icf.c (sem_function::init): Use get_untransformed_body.
3376 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
3377 * tree-inline.c (expand_call_inline): LIkewise.
3378 * i386.c (ix86_reset_to_default_globals): Break out from ...
3379 (ix86_set_current_function): ... here;
3380 (ix86_reset_previous_fndecl): Use it.
3381 (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
3382
3383 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
3384
3385 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
3386 * doc/tm.texi: Regenerate.
3387
3388 2014-11-16 Uros Bizjak <ubizjak@gmail.com>
3389
3390 * config/sh/sh.c: Do not include algorithm.
3391 (sh_emit_scc_to_t): Replace open-coded swap with std::swap
3392 to swap values.
3393 (sh_emit_compare_and_branch): Ditto.
3394 (sh_emit_compare_and_set): Ditto.
3395 * config/sh/sh.md (replacement peephole2): Ditto.
3396 (cstore4_media): Ditto.
3397 (*fmasf4): Ditto.
3398
3399 2014-11-15 Vladimir Makarov <vmakarov@redhat.com>
3400
3401 * lra-remat.c (cand_transf_func): Process regno for
3402 rematerialization too.
3403 * lra.c (lra): Switch on rematerialization pass.
3404
3405 2014-11-15 Vladimir Makarov <vmakarov@redhat.com>
3406
3407 * lra.c (lra): Switch off rematerialization pass.
3408
3409 2014-11-15 Marc Glisse <marc.glisse@inria.fr>
3410
3411 * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
3412 _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
3413 instead of builtins.
3414 * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
3415 typedefs.
3416 (_mm_sqrt_sd): Fix comment.
3417 (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
3418 _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
3419 _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
3420 _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
3421 _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
3422 _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
3423 _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
3424 _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
3425 Use vector extensions instead of builtins.
3426 * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
3427 _mm_mullo_epi32): Likewise.
3428 * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
3429 New typedefs.
3430 (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
3431 _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
3432 Use vector extensions instead of builtins.
3433 * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
3434 _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
3435 _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
3436 _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
3437 _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
3438 _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
3439 _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
3440 * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
3441 New typedefs.
3442 (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
3443 _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
3444 _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
3445 _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
3446 _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
3447 _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
3448 _mm512_div_ps): Use vector extensions instead of builtins.
3449 * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
3450 _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
3451 * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
3452 * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
3453 Likewise.
3454
3455 2014-11-15 Jan Hubicka <hubicka@ucw.cz>
3456
3457 * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
3458 * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
3459 * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
3460 * opth-gen.awk: Add prototype of cl_optimization_hash.
3461 * tree-streamer-in.c (unpack_ts_optimization): Remove.
3462 (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
3463 * tree-streamer-out.c (pack_ts_optimization): Remove.
3464 (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
3465
3466 2014-11-15 Mircea Namolaru <mircea.namolaru@inria.fr>
3467
3468 * common.opt (flag_loop_unroll_and_jam): New flag.
3469 * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
3470 jam flag.
3471 (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
3472 * graphite-poly.h (struct poly_bb:map_sepclass): New field
3473 * graphite-poly.c (new_poly_bb): Initialization for new field.
3474 (apply_poly_transforms): Support for unroll and jam flag.
3475 * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
3476 separation class.
3477 (generate_luj_sepclass_opt): Build the separation class option.
3478 (generate_luj_options): Set unroll and jam options.
3479 (set_options): Support for unroll and jam options.
3480 (scop_to_isl_ast): Likewise
3481 * graphite-optimize-isl.c (getPrevectorMap_full): New function for
3482 computing the separating class map.
3483 (optimize_isl): Support for the separating class map.
3484 (apply_schedule_map_to_scop): Likewise.
3485 (getScheduleMap): Likewise.
3486 (getScheduleForBand): Likewise.
3487 (getScheduleForBandList): Likewise.
3488 * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
3489 * toplev.c (process_options) Likewise.
3490
3491 2014-11-15 Eric Botcazou <ebotcazou@adacore.com>
3492
3493 * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
3494 from...
3495 (replace_loop_annotate): ...here. Call it on the header and on the
3496 latch block, if any. Restore proper behavior of final cleanup.
3497
3498 2014-11-15 Eric Botcazou <ebotcazou@adacore.com>
3499
3500 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
3501 for max-completely-peeled-insns limit.
3502
3503 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
3504
3505 * ipa-prop.h (ipa_known_type_data): Remove.
3506 (ipa_binfo_from_known_type_jfunc): Remove.
3507
3508 2014-11-14 Andrew Pinski <apinski@cavium.com>
3509
3510 * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
3511 over to thunderx.
3512 * config/aarch64/aarch64.md: Include thunderx.md.
3513 (generic_sched): Set to no for thunderx.
3514 * config/aarch64/thunderx.md: New file.
3515
3516 2014-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3517
3518 * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
3519 tests for 0.0.
3520
3521 * config/rs6000/vector.md (VEC_R): Move secondary reload support
3522 insns to rs6000.md from vector.md.
3523 (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
3524 (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
3525 (vec_reload_and_plus_<mptrsize>): Likewise.
3526
3527 * config/rs6000/rs6000.md (Fa): New mode attribute to give
3528 constraint for the Altivec registers for a type.
3529 (RELOAD): New mode iterator for all of the types that have
3530 secondary reload address support to load up a base register.
3531 (extendsfdf2_fpr): Use correct constraint.
3532 (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
3533 instruction.
3534 (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
3535 Generate the non-VSX instruction if all registers were FPRs. Do
3536 not use the patterns in vsx.md for scalar operations.
3537 (floatsi<mode>2_lfiwax_mem): Likewise.
3538 (floatunssi<mode>2_lfiwzx): Likewise.
3539 (floatunssi<mode>2_lfiwzx_mem): Likewise.
3540 (fix_trunc<mode>di2_fctidz): Likewise.
3541 (fixuns_trunc<mode>di2_fctiduz): Likewise.
3542 (fctiwz_<mode>): Likewise.
3543 (fctiwuz_<mode>): Likewise.
3544 (friz): Likewise.
3545 (floatdidf2_fpr): Likewise.
3546 (floatdidf2_mem): Likewise.
3547 (floatunsdidf2): Likewise.
3548 (floatunsdidf2_fcfidu): Likewise.
3549 (floatunsdidf2_mem): Likewise.
3550 (floatdisf2_fcfids): Likewise.
3551 (floatdisf2_mem): Likewise.
3552 (floatdisf2_internal1): Add explicit test for not FCFIDS to make
3553 it more obvious that the code is for pre-ISA 2.06 machines.
3554 (floatdisf2_internal2): Likewise.
3555 (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
3556 Generate the non-VSX instruction if all registers were FPRs. Do
3557 not use the patterns in vsx.md for scalar operations.
3558 (floatunsdisf2_mem): Likewise.
3559 (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
3560 handlers here from vector.md, and expand the types we generate
3561 reload handlers for.
3562 (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
3563 (vec_reload_and_plus_<mptrsize>): Likewise.
3564
3565 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
3566 vector forms of the instructions. Move VSX scalar forms to
3567 rs6000.md, and add support for -mupper-regs-sf.
3568 (vsx_floatuns<VSi><mode>2): Likewise.
3569 (vsx_fix_trunc<mode><VSi>2): Likewise.
3570 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
3571 (vsx_float_fix_<mode>2): Delete DF version, rename to
3572 vsx_float_fix_v2df2.
3573 (vsx_float_fix_v2df2): Likewise.
3574
3575 2014-11-14 Martin Jambor <mjambor@suse.cz>
3576
3577 * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
3578 (ipa_pass_through_data): Removed field type_preserved.
3579 (ipa_ancestor_jf_data): removed fields type and type_preserved.
3580 (ipa_jump_func): Removed field known_type.
3581 (ipa_get_jf_known_type_offset): Removed.
3582 (ipa_get_jf_known_type_base_type): Likewise.
3583 (ipa_get_jf_known_type_component_type): Likewise.
3584 (ipa_get_jf_ancestor_type): Likewise.
3585 * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
3586 (ipa_get_jf_pass_through_result): Likewise.
3587 (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
3588 (values_equal_for_ipcp_p): Removed BINFO handling.
3589 (ipa_get_indirect_edge_target_1): Updated comment.
3590 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
3591 of IPA_JF_KNOWN_TYPE jump functions. Do not print removed fields.
3592 (ipa_set_jf_known_type): Removed.
3593 (ipa_set_jf_simple_pass_through): Do not set removed fields. Update
3594 all callers.
3595 (ipa_set_jf_arith_pass_through): Likewise.
3596 (ipa_set_ancestor_jf): Likewise.
3597 (ipa_binfo_from_known_type_jfunc): Removed.
3598 (prop_type_change_info): Removed fields known_current_type and
3599 multiple_types_encountered.
3600 (extr_type_from_vtbl_ptr_store): Removed.
3601 (check_stmt_for_type_change): Do not attempt to identify changed type.
3602 (detect_type_change_from_memory_writes): Do not set the removed fields,
3603 always set jfunc to unknown.
3604 (compute_complex_assign_jump_func): Do not detect dynamic type change.
3605 (compute_complex_ancestor_jump_func): Likewise.
3606 (compute_known_type_jump_func): Removed.
3607 (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
3608 change. Do not comute known type jump functions.
3609 (combine_known_type_and_ancestor_jfs): Removed.
3610 (update_jump_functions_after_inlining): Removed handling of
3611 IPA_JF_KNOWN_TYPE jump functions. Do not set removed fields.
3612 (ipa_write_jump_function): Do not stream removed fields or known type
3613 jump functions.
3614 (ipa_read_jump_function): Likewise.
3615
3616 2014-11-14 Vladimir Makarov <vmakarov@redhat.com>
3617
3618 * lra-int.h (lra_create_live_ranges): Add parameter.
3619 * lra-lives.c (temp_bitmap): Move higher.
3620 (initiate_live_solver): Move temp_bitmap initialization into
3621 lra_live_ranges_init.
3622 (finish_live_solver): Move temp_bitmap clearing into
3623 live_ranges_finish.
3624 (process_bb_lives): Add parameter. Use it to control live info
3625 update and dead insn elimination. Pass it to mark_regno_live and
3626 mark_regno_dead.
3627 (lra_create_live_ranges): Add parameter. Pass it to
3628 process_bb_lives.
3629 (lra_live_ranges_init, lra_live_ranges_finish): See changes in
3630 initiate_live_solver and finish_live_solver.
3631 * lra-remat.c (do_remat): Process insn non-operand hard regs too.
3632 Use temp_bitmap to update avail_cands.
3633 * lra.c (lra): Pass new parameter to lra_create_live_ranges. Move
3634 check with lra_need_for_spill_p after live range pass. Switch on
3635 rematerialization pass.
3636
3637 2014-11-14 Martin Jambor <mjambor@suse.cz>
3638
3639 * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
3640 agg_preserved flag instead.
3641 (ipa_get_jf_ancestor_type_preserved): Likewise.
3642 (ipa_node_params): Rename known_vals to known_csts, update all users.
3643 New field known_contexts.
3644 (ipa_get_indirect_edge_target): Update prototype.
3645 (ipcp_poly_ctx_values_pool): Declare.
3646 (ipa_context_from_jfunc): Likewise.
3647 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
3648 * cgraph.h (ipa_polymorphic_call_context): New method equal_to. New
3649 parameter newline of method dump.
3650 * ipa-cp.c (ctxlat): New field.
3651 (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
3652 (ipcp_poly_ctx_values_pool):New variable.
3653 (ipa_get_poly_ctx_lat): New function.
3654 (print_ipcp_constant_value): New overloaded function for contexts.
3655 (print_all_lattices): Also print contexts.
3656 (ipa_topo_info): New field contexts;
3657 (set_all_contains_variable): Also set the flag in the context lattice.
3658 (initialize_node_lattices): Likewise for flag bottom.
3659 (ipa_get_jf_ancestor_result): Removed BINFO handling.
3660 (ipa_value_from_jfunc): Likewise.
3661 (ipa_context_from_jfunc): New function.
3662 (values_equal_for_ipcp_p): New overloaded function for contexts.
3663 (allocate_and_init_ipcp_value): Construct the value.
3664 (allocate_and_init_ipcp_value): New overloaded function for contexts.
3665 (propagate_scalar_accross_jump_function): Removed handling of
3666 KNOWN_TYPE jump functions.
3667 (propagate_context_accross_jump_function): New function.
3668 (propagate_constants_accross_call): Also propagate contexts.
3669 (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
3670 (ipa_get_indirect_edge_target): Likewise.
3671 (devirtualization_time_bonus): Likewise.
3672 (gather_context_independent_values): Create and populate known_contexts
3673 vector rather than known_binfos.
3674 (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
3675 (estimate_local_effects): Likewise.
3676 (add_all_node_vals_to_toposort): Also add contexts to teir topological
3677 sort.
3678 (ipcp_propagate_stage): Also propagate effects of contexts.
3679 (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
3680 ipa_get_indirect_edge_target_1.
3681 (cgraph_edge_brings_value_p): New overloaded function for contexts.
3682 (create_specialized_node): Work on contexts rather than BINFOs.
3683 (find_more_contexts_for_caller_subset): New function.
3684 (known_contexts_useful_p): New function.
3685 (copy_useful_known_contexts): Likewise.
3686 (modify_known_vectors_with_val): Likewise.
3687 (ipcp_val_in_agg_replacements_p): Renamed to
3688 ipcp_val_agg_replacement_ok_p, return true for all offset indicating
3689 non-aggregate.
3690 (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
3691 (decide_about_value): Work on contexts rather than BINFOs.
3692 (decide_whether_version_node): Likewise.
3693 (ipcp_driver): Initialize the new alloc pool.
3694 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
3695 printing of edge contexts.
3696 (ipa_set_ancestor_jf): Replace assert with conditional setting of
3697 type_preserved to false.
3698 (update_jump_functions_after_inlining): Use access function instead of
3699 reading agg_preserved directly. Store combined context in the ancestor
3700 case.
3701 (try_make_edge_direct_virtual_call): Work on contexts rather than
3702 BINFOs.
3703 (update_indirect_edges_after_inlining): Get context from
3704 ipa_context_from_jfunc.
3705 (ipa_free_node_params_substructures): Free also known_contexts.
3706 (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
3707 (ipa_free_all_structures_after_iinln): Likewise.
3708 * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
3709 contexts rather than BINFOs.
3710 (estimate_edge_devirt_benefit): Likewise.
3711 (estimate_edge_size_and_time): Likewise.
3712 (estimate_calls_size_and_time): Likewise.
3713 (estimate_node_size_and_time): Likewise.
3714 (estimate_ipcp_clone_size_and_time): Likewise.
3715 (do_estimate_edge_time): Likewise.
3716 (do_estimate_edge_size): Likewise.
3717 (do_estimate_edge_hints): Likewise.
3718 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
3719 parameter newline, ouput newline only when it is set.
3720 (ipa_polymorphic_call_context::equal_to): New method.
3721
3722 2014-11-14 Martin Jambor <mjambor@suse.cz>
3723
3724 * ipa-cp.c (ipcp_value_source): Converted to a template class. All
3725 users converted to the same specialization as the using class/function
3726 or specialization on tree.
3727 (ipcp_value): Likewise.
3728 (ipcp_lattice): Likewise.
3729 (ipcp_agg_lattice): Now derived from tree specialization of
3730 ipcp_lattice.
3731 (values_topo): Moved to new class value_topo_info.
3732 (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
3733 Updated all callers.
3734 (print_lattice): Turned into ipcp_lattice::print. Updated all
3735 callers.
3736 (value_topo_info): New class template.
3737 (ipa_topo_info): New field constants. New constructor.
3738 (build_toporder_info): Do not clear stack_top, only checkign assert
3739 it.
3740 (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
3741 Updated all callers.
3742 (set_lattice_contains_variable): Turned into
3743 ipcp_lattice::set_contains_variable. Updated all callers.
3744 (add_value_source): Turned into ipcp_value::add_source. Updated all
3745 callers.
3746 (allocate_and_init_ipcp_value): New function.
3747 (add_value_to_lattice): Turned into ipcp_lattice::add_value. Last
3748 parameter got default a value. Updated all callers.
3749 (add_scalar_value_to_lattice): Removed, users converted to using
3750 ipcp_lattice::add_value with default value of the last parameter.
3751 (add_val_to_toposort): Turned to value_topo_info::add_val. Updated
3752 all callers.
3753 (propagate_effects): Made method of value_topo_info.
3754 (cgraph_edge_brings_value_p): Now a template function.
3755 (get_info_about_necessary_edges): Likewise.
3756 (gather_edges_for_value): Likewise.
3757 (perhaps_add_new_callers): Likewise.
3758 (decide_about_value): Likewise.
3759 * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
3760
3761 2014-11-14 Jakub Jelinek <jakub@redhat.com>
3762
3763 * doc/install.texi (--with-diagnostics-color=): Document.
3764
3765 * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
3766 IFN_GOMP_SIMD_LANE without lhs as useless.
3767
3768 * ipa-pure-const.c (struct funct_state_d): Add can_free field.
3769 (varying_state): Add true for can_free.
3770 (check_call): For builtin or internal !nonfreeing_call_p set
3771 local->can_free.
3772 (check_stmt): For asm volatile and asm with "memory" set
3773 local->can_free.
3774 (analyze_function): Clear local->can_free initially, continue
3775 calling check_stmt until all flags are computed, dump can_free
3776 flag.
3777 (pure_const_write_summary): Write can_free flag.
3778 (pure_const_read_summary): Read it back.
3779 (propagate_pure_const): Propagate also can_free flag, set
3780 w->nonfreeing_fn if it is false after propagation.
3781 * cgraph.h (cgraph_node): Add nonfreeing_fn member.
3782 * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
3783 (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
3784 Also return true for IFN_ABNORMAL_DISPATCHER.
3785 * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
3786 * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
3787 (input_overwrite_node): Read it back.
3788
3789 2014-11-14 Jakub Jelinek <jakub@redhat.com>
3790 Marek Polacek <polacek@redhat.com>
3791
3792 * sanopt.c: Include tree-ssa-operands.h.
3793 (struct sanopt_info): Add has_freeing_call_p,
3794 has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
3795 imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
3796 being_visited_p fields.
3797 (struct sanopt_ctx): Add asan_check_map field.
3798 (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
3799 maybe_optimize_asan_check_ifn): New functions.
3800 (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
3801 internal calls.
3802 (pass_sanopt::execute): Call sanopt_optimize even for
3803 -fsanitize=address.
3804 * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
3805 internal calls.
3806
3807 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
3808
3809 * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
3810 'if (extract_scalar_result)' to the only place that it is true.
3811
3812 2014-11-14 H.J. Lu <hongjiu.lu@intel.com>
3813
3814 * config.gcc (default_gnu_indirect_function): Set to yes
3815 for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
3816 Android nor uclibc.
3817
3818 2014-11-14 Felix Yang <felix.yang@huawei.com>
3819 Jiji Jiang <jiangjiji@huawei.com>
3820
3821 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
3822 VALL mode iterator instead of VALLDI.
3823
3824
3825 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
3826
3827 * optc-save-gen.awk: Output cl_target_option_eq,
3828 cl_target_option_hash, cl_target_option_stream_out,
3829 cl_target_option_stream_in functions.
3830 * opth-gen.awk: Output prototypes for
3831 cl_target_option_eq and cl_target_option_hash.
3832 * lto-streamer.h (cl_target_option_stream_out,
3833 cl_target_option_stream_in): Declare.
3834 * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
3835 (cl_option_hash_eq): Use cl_target_option_eq.
3836 * tree-streamer-in.c (unpack_value_fields): Stream in
3837 TREE_TARGET_OPTION.
3838 * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
3839 DECL_FUNCTION_SPECIFIC_TARGET.
3840 (hash_tree): Hash TREE_TARGET_OPTION; visit
3841 DECL_FUNCTION_SPECIFIC_TARGET.
3842 * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
3843 TS_TARGET_OPTION.
3844 (streamer_write_tree_body): Output TS_TARGET_OPTION.
3845
3846 2014-11-14 Richard Biener <rguenther@suse.de>
3847
3848 * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
3849 valueization hook defaulted to no_follow_ssa_edges.
3850 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
3851 2nd valueization hook to gimple_simplify.
3852 * tree-ssa-ccp.c (valueize_op_1): New function to be
3853 used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
3854 (ccp_fold): Adjust.
3855 * tree-vrp.c (vrp_valueize_1): New function to be
3856 used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
3857 (vrp_visit_assignment_or_call): Adjust.
3858
3859 2014-11-14 Marek Polacek <polacek@redhat.com>
3860
3861 * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
3862 that overflows when SANITIZE_SI_OVERFLOW is on. Guard -(-A)
3863 folding with TYPE_OVERFLOW_SANITIZED.
3864
3865 2014-11-14 Marek Polacek <polacek@redhat.com>
3866
3867 PR sanitizer/63839
3868 * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
3869 ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
3870 * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
3871 Define.
3872 * builtins.c (fold_builtin_0): Don't include ubsan.h. Don't
3873 instrument BUILT_IN_UNREACHABLE here.
3874 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
3875 const.
3876 * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
3877 * tree-ssa-ccp.c (optimize_unreachable): Bail out if
3878 SANITIZE_UNREACHABLE.
3879 * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
3880 * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
3881
3882 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
3883
3884 * config/rs6000/vector.md (vec_shl_<mode>): Remove.
3885 (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
3886
3887 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
3888
3889 * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
3890 BYTES_BIG_ENDIAN.
3891 * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
3892 vect_create_epilog_for_reduction): Likewise.
3893 * doc/md.texi (vec_shr_m): Clarify direction of shifting.
3894
3895 2014-11-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3896
3897 PR target/63724
3898 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
3899 numerical immediate handling to...
3900 (aarch64_internal_mov_immediate): ...this. New.
3901 (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
3902 (aarch64_mov_operand_p): Relax predicate.
3903 * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
3904 (*movsi_aarch64): Turn into define_insn_and_split and new alternative
3905 for 'n'.
3906 (*movdi_aarch64): Likewise.
3907
3908 2014-11-14 Richard Biener <rguenther@suse.de>
3909
3910 * match.pd: Implement more binary patterns exercised by
3911 fold_stmt.
3912 * fold-const.c (sing_bit_p): Export.
3913 (exact_inverse): Likewise.
3914 (fold_binary_loc): Remove patterns here.
3915 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
3916 * fold-const.h (sing_bit_p): Declare.
3917 (exact_inverse): Likewise.
3918
3919 2014-11-14 Marek Polacek <polacek@redhat.com>
3920
3921 * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
3922
3923 2014-11-14 Richard Biener <rguenther@suse.de>
3924
3925 * genmatch.c (add_operator): Allow CONSTRUCTOR.
3926 (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
3927 (parser::parse_op): Allow to iterate over predicates.
3928
3929 2014-11-14 Jakub Jelinek <jakub@redhat.com>
3930
3931 * configure.ac (--with-diagnostics-color): New configure
3932 option, default to --with-diagnostics-color=auto.
3933 * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
3934 to determine -fdiagnostics-color= option default.
3935 * doc/invoke.texi (-fdiagnostics-color=): Document new
3936 default.
3937 * configure: Regenerated.
3938 * config.in: Regenerated.
3939
3940 2014-11-13 Teresa Johnson <tejohnson@google.com>
3941
3942 PR tree-optimization/63841
3943 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
3944
3945 2014-11-14 Bin Cheng <bin.cheng@arm.com>
3946
3947 * timevar.def (TV_SCHED_FUSION): New time var.
3948 * passes.def (pass_sched_fusion): New pass.
3949 * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
3950 (extract_base_offset_in_addr, fusion_load_store): New.
3951 (arm_sched_fusion_priority): New.
3952 (arm_option_override): Disable scheduling fusion by default
3953 on non-armv7 processors or ldrd/strd isn't preferred.
3954 * sched-int.h (struct _haifa_insn_data): New field.
3955 (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
3956 * sched-rgn.c (rest_of_handle_sched_fusion): New.
3957 (pass_data_sched_fusion, pass_sched_fusion): New.
3958 (make_pass_sched_fusion): New.
3959 * haifa-sched.c (sched_fusion): New.
3960 (insn_cost): Handle sched_fusion.
3961 (priority): Handle sched_fusion by calling target hook.
3962 (enum rfs_decision): New enum value.
3963 (rfs_str): New element for RFS_FUSION.
3964 (rank_for_schedule): Support sched_fusion.
3965 (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
3966 (schedule_block, fix_tick_ready): Handle sched_fusion.
3967 * common.opt (flag_schedule_fusion): New.
3968 * tree-pass.h (make_pass_sched_fusion): New.
3969 * target.def (fusion_priority): New.
3970 * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
3971 * doc/tm.texi: Regenerated.
3972 * doc/invoke.texi (-fschedule-fusion): New.
3973
3974 2014-11-13 Rong Xu <xur@google.com>
3975
3976 PR debug/63581
3977 * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
3978 footer, instead of unconditionally overwritten.
3979
3980 2014-11-14 Martin Jambor <mjambor@suse.cz>
3981
3982 * cgraph.h (clear_outer_type): Make public. Fix comment.
3983 * ipa-devirt.c (possible_polymorphic_call_targets): Use
3984 clear_outer_type when resetting the context.
3985
3986 2014-11-13 Dominique Dhumieres <dominiq@lps.ens.fr>
3987
3988 PR bootstrap/63853
3989 * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
3990 * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
3991
3992 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
3993
3994 * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
3995 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
3996 * tree-inline.c (estimate_operator_cost): Likewise.
3997 * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
3998 Likewise.
3999
4000 * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
4001 against VEC_RSHIFT_EXPR.
4002
4003 * optabs.h (expand_vec_shift_expr): Remove.
4004 * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
4005 (expand_vec_shift_expr): Remove.
4006 * tree.def (VEC_RSHIFT_EXPR): Remove
4007
4008 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
4009
4010 * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
4011 (shift_amt_for_vec_perm_mask): New.
4012 (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
4013 and mask appropriate.
4014
4015 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
4016 (have_whole_vector_shift): New.
4017 (vect_model_reduction_cost): Call have_whole_vector_shift instead of
4018 looking for vec_shr_optab.
4019 (vect_create_epilog_for_reduction): Likewise; also rename local variable
4020 have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
4021 instead of VEC_RSHIFT_EXPRs.
4022
4023 * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
4024
4025 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
4026
4027 * tree-vectorizer.h (vect_gen_perm_mask): Remove.
4028 (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
4029
4030 tree_vec_data_refs.c (vect_permute_load_chain, vec_permute_store_chain,
4031 vec_shift_permute_load_chain): Replace vect_gen_perm_mask & assert
4032 with vect_gen_perm_mask_checked.
4033
4034 * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
4035 Likewise.
4036
4037 (vect_gen_perm_mask_checked): New.
4038 (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
4039 (vect_gen_perm_mask_any): ...this.
4040
4041 (perm_mask_for_reverse): Call can_vec_perm_p and
4042 vect_gen_perm_mask_checked.
4043
4044 2014-11-13 Felix Yang <felix.yang@huawei.com>
4045
4046 * ipa-utils.h: Fix typo in comments.
4047 * ipa-profile.c: Likewise.
4048 * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
4049
4050 2014-11-13 Teresa Johnson <tejohnson@google.com>
4051
4052 PR tree-optimization/63841
4053 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
4054
4055 2014-11-13 Teresa Johnson <tejohnson@google.com>
4056
4057 PR tree-optimization/63841
4058 * tree.c (initializer_zerop): A clobber does not zero initialize.
4059
4060 2014-11-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4061
4062 * optabs.c (prepare_operand): Gracefully fail if the mode of X
4063 does not match the operand mode expected by the insn pattern.
4064
4065 2014-11-13 Richard Biener <rguenther@suse.de>
4066
4067 * match.pd: Add tcc_comparison, inverted_tcc_comparison
4068 and inverted_tcc_comparison_with_nans operator lists.
4069 Use tcc_comparison in the truth_valued_p predicate definition.
4070 Restrict logical_inverted_value with bit_xor to integral types.
4071 Build a boolean true for simplifying x |^ !x because of
4072 vector types. Implement patterns from forward_propagate_comparison
4073 * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
4074 (get_prop_dest_stmt): Likewise.
4075 (pass_forwprop::execute): Do not call it.
4076 * fold-const.c (fold_unary_loc): Remove the pattern here.
4077
4078 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
4079 Andrey Turetskiy <andrey.turetskiy@intel.com>
4080
4081 * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
4082 tmake_file.
4083 (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
4084 accelerator compiler.
4085 * config/i386/intelmic-mkoffload.c: New file.
4086 * config/i386/t-intelmic: Ditto.
4087
4088 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
4089 Andrey Turetskiy <andrey.turetskiy@intel.com>
4090 Ilya Verbin <ilya.verbin@intel.com>
4091
4092 * common.opt (foffload, foffload-abi): New options.
4093 * config/i386/i386.c (ix86_offload_options): New static function.
4094 (TARGET_OFFLOAD_OPTIONS): Define.
4095 * coretypes.h (enum offload_abi): New enum.
4096 * doc/tm.texi: Regenerate.
4097 * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
4098 * gcc.c (offload_targets): New static variable.
4099 (handle_foffload_option): New static function.
4100 (driver_handle_option): Handle OPT_foffload_.
4101 (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
4102 according to offload_targets.
4103 * hooks.c (hook_charptr_void_null): New hook.
4104 * hooks.h (hook_charptr_void_null): Declare.
4105 * lto-opts.c: Include lto-section-names.h.
4106 (lto_write_options): Append options from target offload_options hook and
4107 store them to offload_lto section. Do not store target-specific,
4108 driver and diagnostic options in offload_lto section.
4109 * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
4110 OPT_foffload_abi_.
4111 (append_compiler_options, append_linker_options)
4112 (append_offload_options): New static functions.
4113 (compile_offload_image): Add new arguments with options.
4114 Call append_compiler_options and append_offload_options.
4115 (compile_images_for_offload_targets): Add new arguments with options.
4116 (find_and_merge_options): New static function.
4117 (run_gcc): Outline options handling into the new functions:
4118 find_and_merge_options, append_compiler_options, append_linker_options.
4119 * opts.c (common_handle_option): Don't handle OPT_foffload_.
4120 Forbid OPT_foffload_abi_ for non-offload compiler.
4121 * target.def (offload_options): New target hook.
4122
4123 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
4124 Bernd Schmidt <bernds@codesourcery.com>
4125 Andrey Turetskiy <andrey.turetskiy@intel.com>
4126 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4127
4128 * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
4129 (process_command): Tweak path construction for the possibility
4130 of being configured as an offload compiler.
4131 (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
4132 (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
4133 (driver::set_up_specs): Tweak path construction for the possibility of
4134 being configured as an offload compiler.
4135 * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
4136 (offload_names, offloadbegin, offloadend): New static variables.
4137 (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
4138 (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
4139 New static functions.
4140 (run_gcc): Determine whether offload sections are present. If so, run
4141 compile_images_for_offload_targets and return the names of new generated
4142 objects to linker. If there are offload sections, but no LTO sections,
4143 then return the copies of input objects without link-time recompilation.
4144
4145 2014-11-13 Richard Biener <rguenther@suse.de>
4146
4147 * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
4148
4149 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
4150 Bernd Schmidt <bernds@codesourcery.com>
4151 Andrey Turetskiy <andrey.turetskiy@intel.com>
4152 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4153
4154 * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
4155 * cgraphunit.c: Include omp-low.h.
4156 * doc/tm.texi: Regenerate.
4157 * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
4158 * gengtype.c (open_base_files): Add omp-low.h to ifiles.
4159 * lto-cgraph.c (output_offload_tables): New function.
4160 (input_offload_tables): Likewise.
4161 * lto-section-in.c (lto_section_name): Add "offload_table".
4162 * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
4163 (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
4164 * lto-streamer-out.c (lto_output): Call output_offload_tables.
4165 * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
4166 (output_offload_tables, input_offload_tables): Declare.
4167 * omp-low.c: Include common/common-target.h and lto-section-names.h.
4168 (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
4169 (expand_omp_target): Add child_fn into offload_funcs vector.
4170 (add_decls_addresses_to_decl_constructor): New function.
4171 (omp_finish_file): Likewise.
4172 * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
4173 * target.def (record_offload_symbol): New DEFHOOK.
4174 * toplev.c: Include omp-low.h.
4175 (compile_file): Call omp_finish_file.
4176 * varpool.c: Include omp-low.h.
4177 (varpool_node::get_create): Add decl into offload_vars vector.
4178
4179 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
4180 Ilya Tocar <ilya.tocar@intel.com>
4181 Andrey Turetskiy <andrey.turetskiy@intel.com>
4182 Bernd Schmidt <bernds@codesourcery.com>
4183
4184 * cgraph.c: Include context.h.
4185 (cgraph_node::create): Set node->offloadable and g->have_offload if
4186 decl have "omp declare target" attribute.
4187 * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
4188 * cgraphunit.c: Include lto-section-names.h.
4189 (ipa_passes): Call ipa_write_summaries if there is something to write to
4190 OFFLOAD_SECTION_NAME_PREFIX sections.
4191 (symbol_table::compile): Set flag_generate_lto if there is something to
4192 offload.
4193 Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
4194 * context.c (gcc::context::context): Initialize have_offload with false.
4195 * context.h (class context): Add have_offload flag.
4196 * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
4197 flag_generate_lto.
4198 (inline_free_summary): Always remove hooks.
4199 * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
4200 from non-offloadable nodes while streaming a node into offload section.
4201 (reachable_from_other_partition_p): Likewise.
4202 (select_what_to_stream): New function.
4203 (compute_ltrans_boundary): Do not call
4204 lto_set_symtab_encoder_in_partition if the node should not be streamed.
4205 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
4206 (section_name_prefix): Declare.
4207 * lto-streamer.c (section_name_prefix): New variable.
4208 (lto_get_section_name): Use section_name_prefix instead of
4209 LTO_SECTION_NAME_PREFIX.
4210 * lto-streamer.h (select_what_to_stream): Declare.
4211 * omp-low.c: Include context.h.
4212 (is_targetreg_ctx): New function.
4213 (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
4214 (create_omp_child_function, check_omp_nesting_restrictions): Use new
4215 is_targetreg_ctx function. Replace usage of "omp declare target"
4216 attribute with a cgraph_node flag offloadable.
4217 (expand_omp_target): Set mark_force_output for offloadable functions.
4218 (lower_omp_critical): Set offloadable flag for omp critical symbol.
4219 * passes.c (ipa_write_summaries): New argument offload_lto_mode. Call
4220 select_what_to_stream. Do not call lto_set_symtab_encoder_in_partition
4221 if the node should not be streamed out.
4222 * tree-pass.h (ipa_write_summaries): New bool argument.
4223 * varpool.c: Include context.h.
4224 (varpool_node::get_create): Set node->offloadable and g->have_offload if
4225 decl have "omp declare target" attribute.
4226
4227 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
4228 Thomas Schwinge <thomas@codesourcery.com>
4229 Ilya Verbin <ilya.verbin@intel.com>
4230 Andrey Turetskiy <andrey.turetskiy@intel.com>
4231
4232 * Makefile.in (real_target_noncanonical, accel_dir_suffix)
4233 (enable_as_accelerator): New variables substituted by configure.
4234 (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
4235 being configured as an offload compiler.
4236 (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
4237 ACCEL_DIR_SUFFIX.
4238 (install-cpp, install-common, install_driver, install-gcc-ar): Do not
4239 install for the offload compiler.
4240 * config.in: Regenerate.
4241 * configure: Regenerate.
4242 * configure.ac (real_target_noncanonical, accel_dir_suffix)
4243 (enable_as_accelerator): Compute new variables.
4244 (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
4245 (OFFLOAD_TARGETS): List of target names suitable for offloading.
4246 (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
4247 * doc/install.texi (Options specification): Document
4248 --enable-as-accelerator-for and --enable-offload-targets.
4249
4250 2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
4251
4252 PR tree-optimization/63828
4253 * ipa-polymorphic-call.c (possible_placement_new): Check
4254 POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
4255
4256 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
4257
4258 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
4259 (REVERSIBLE_CC_MODE): Fix example.
4260 (REVERSE_CONDITION): Fix typo.
4261 * doc/tm.texi: Regenerate.
4262
4263 2014-11-13 Tom de Vries <tom@codesourcery.com>
4264
4265 * omp-low.c (pass_data_expand_omp): Set properties_provided to
4266 PROP_gimple_eomp.
4267 (pass_expand_omp::gate): Remove function. Move gate expression to ...
4268 (pass_expand_omp::execute): ... here, as new variable gate. Add early
4269 exit if gate is false.
4270 (pass_data pass_data_expand_omp_ssa): New pass_data.
4271 (class pass_expand_omp_ssa): New pass.
4272 (make_pass_expand_omp_ssa): New function.
4273 * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
4274 instead of NEXT_PASS.
4275 (pass_expand_omp_ssa): Add after pass_parallelize_loops.
4276 * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
4277 (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
4278 and TODO_rebuild_alias yet. Add TODO_update_ssa. Set
4279 cfun->omp_expand_needed.
4280 * tree-pass.h: Add define PROP_gimple_eomp.
4281 (make_pass_expand_omp_ssa): Declare.
4282
4283 2014-11-13 Marek Polacek <polacek@redhat.com>
4284
4285 * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
4286 * fold-const.c (fold_binary_loc): Use it.
4287 * match.pd: Likewise.
4288
4289 2014-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
4290
4291 * lra-lives.c (struct bb_data): Rename to ...
4292 (struct bb_data_pseudos): ... this.
4293 (initiate_live_solver): Update struct name.
4294
4295 2014-11-13 Richard Biener <rguenther@suse.de>
4296
4297 * match.pd: Implement conditional expression patterns.
4298 * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
4299 them here.
4300 (combine_cond_exprs): Remove.
4301 (pass_forwprop::execute): Do not call combine_cond_exprs.
4302 * fold-const.c (fold_ternary_loc): Remove patterns here.
4303 (pedantic_omit_one_operand_loc): Remove.
4304
4305 2014-12-13 Richard Biener <rguenther@suse.de>
4306
4307 PR middle-end/61559
4308 * match.pd: Implement bswap patterns for transforms checked by
4309 gcc.dg/builtin-bswap-8.c.
4310
4311 2014-11-13 Vladimir Makarov <vmakarov@redhat.com>
4312
4313 * lra.c (lra): Switch off rematerialization pass.
4314
4315 2014-11-12 Vladimir Makarov <vmakarov@redhat.com>
4316
4317 * common.opt (flra-remat): New.
4318 * opts.c (default_options_table): Add entry for flra_remat.
4319 * timevar_def (TV_LRA_REMAT): New.
4320 * doc/invoke.texi (-flra-remat): Add description of the new
4321 option.
4322 * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
4323 lra-saves.c. Add lra-remat.c.
4324 * Makefile.in (OBJS): Add lra-remat.o.
4325 * lra-remat.c: New file.
4326 * lra.c: Add info about the rematerialization pass in the top
4327 comment.
4328 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
4329 Process unallocatable regs too.
4330 (lra_constraint_new_insn_uid_start): Remove.
4331 (lra): Add code for calling rematerialization sub-pass.
4332 * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
4333 (lra_constrain_insn, lra_remat): New prototypes.
4334 (lra_eliminate_regs_1): Add parameter.
4335 * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
4336 Process unallocatable hard regs too.
4337 (process_bb_lives): Ditto.
4338 * lra-spills.c (remove_pseudos): Add argument to
4339 lra_eliminate_regs_1 call.
4340 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter. Use it
4341 for sp offset calculation.
4342 (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
4343 (eliminate_regs_in_insn): Add parameter. Use it for sp offset
4344 calculation.
4345 (process_insn_for_elimination): Add argument for
4346 eliminate_regs_in_insn call.
4347 * lra-constraints.c (get_equiv_with_elimination): Add argument
4348 for lra_eliminate_regs_1 call.
4349 (process_addr_reg): Add parameter. Use it.
4350 (process_address_1): Ditto. Add argument for process_addr_reg
4351 call.
4352 (process_address): Ditto.
4353 (curr_insn_transform): Add parameter. Use it. Add argument for
4354 process_address calls.
4355 (lra_constrain_insn): New function.
4356 (lra_constraints): Add argument for curr_insn_transform call.
4357
4358 2014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
4359
4360 * opts-global.c (postpone_unknown_option_warning): Fix spelling.
4361 (print_ignored_options): Fix quoting.
4362 * opts.c (common_handle_option): Likewise.
4363 (set_debug_level): Likewise.
4364 * toplev.c (process_options): Likewise.
4365
4366 2014-11-12 Jakub Jelinek <jakub@redhat.com>
4367
4368 PR ipa/63838
4369 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
4370 chain instead of node->indirect_calls. Put !can_throw into
4371 conditions of all the loops.
4372
4373 2014-11-12 H.J. Lu <hongjiu.lu@intel.com>
4374
4375 * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
4376 set pic_offset_table_rtx.
4377
4378 2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com>
4379
4380 * common/config/mips/mips-common.c (mips_handle_option): Ensure
4381 that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
4382 * config.gcc (--with-fp-32): New option.
4383 (--with-odd-spreg-32): Likewise.
4384 * config.in (HAVE_AS_DOT_MODULE): New config define.
4385 * config/mips/mips-protos.h
4386 (mips_secondary_memory_needed): New prototype.
4387 (mips_hard_regno_caller_save_mode): Likewise.
4388 * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
4389 (mips_get_arg_info): Assert that V2SFmode is only handled specially
4390 with TARGET_PAIRED_SINGLE_FLOAT.
4391 (mips_return_mode_in_fpr_p): Likewise.
4392 (mips16_call_stub_mode_suffix): Likewise.
4393 (mips_get_reg_raw_mode): New static function.
4394 (mips_return_fpr_pair): O32 return values span two registers.
4395 (mips16_build_call_stub): Likewise.
4396 (mips_function_value_regno_p): Support both FP return registers.
4397 (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add
4398 specific cases for TARGET_FPXX to move via memory.
4399 (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
4400 than UNITS_PER_FPREG 'span' one register.
4401 (mips_dwarf_frame_reg_mode): New static function.
4402 (mips_file_start): Switch to using .module instead of .gnu_attribute.
4403 No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
4404 Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
4405 (mips_save_reg, mips_restore_reg): Always represent DFmode frame
4406 slots with two CFI directives even for O32 FP64.
4407 (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
4408 saving/restoring callee-saved registers.
4409 (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
4410 (mips_secondary_memory_needed): New function.
4411 (mips_option_override): ABI check for TARGET_FLOATXX. Disable
4412 odd-numbered single-precision registers when using TARGET_FLOATXX.
4413 Implement -modd-spreg and defaults.
4414 (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
4415 callee-saved behaviour.
4416 (mips_hard_regno_caller_save_mode): Implement.
4417 (TARGET_GET_RAW_RESULT_MODE): Define target hook.
4418 (TARGET_GET_RAW_ARG_MODE): Define target hook.
4419 (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
4420 * config/mips/mips.h (TARGET_FLOAT32): New macro.
4421 (TARGET_O32_FP64A_ABI): Likewise.
4422 (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
4423 _MIPS_SPFPSET builtin define.
4424 (MIPS_FPXX_OPTION_SPEC): New macro.
4425 (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
4426 --with-odd-spreg-32=* to -m[no-]odd-spreg.
4427 (ISA_HAS_ODD_SPREG): New macro.
4428 (ISA_HAS_MXHC1): True for anything other than -mfp32.
4429 (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
4430 (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
4431 (HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension
4432 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
4433 (SECONDARY_MEMORY_NEEDED): Likewise.
4434 (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
4435 * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
4436 FP64A ABI extensions.
4437 (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
4438 TARGET_FLOAT64.
4439 * config/mips/mips.opt (mfpxx): New target option.
4440 (modd-spreg): Likewise.
4441 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
4442 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
4443 fp64 sysroot.
4444 * config/mips/t-mti-elf: Remove fp64 multilib.
4445 * config/mips/t-mti-linux: Likewise.
4446 * configure.ac: Detect .module support.
4447 * configure: Regenerate.
4448 * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
4449 * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
4450 options.
4451
4452 2014-11-12 H.J. Lu <hongjiu.lu@intel.com>
4453
4454 PR target/63815
4455 * config/i386/i386.c (ix86_init_large_pic_reg): New. Extracted
4456 from ...
4457 (ix86_init_pic_reg): Here. Use ix86_init_large_pic_reg.
4458 (x86_output_mi_thunk): Set PIC register to %r11. Call
4459 ix86_init_large_pic_reg to initialize PIC register.
4460
4461 2014-11-12 Kai Tietz <ktietz@redhat.com>
4462
4463 * sdbout.c (sdbout_symbol): Eliminate register only
4464 if decl isn't a global variable.
4465
4466 2014-11-12 Alan Lawrence <alan.lawrence@arm.com>
4467
4468 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
4469
4470 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
4471 qualifier_lane_index.
4472 (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
4473 (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
4474 (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
4475
4476 (aarch64_types_getlane_qualifiers): Rename to...
4477 (aarch64_types_binop_imm_qualifiers): ...this.
4478 (TYPES_SHIFTIMM): Follow renaming.
4479 (TYPES_GETLANE): Rename to...
4480 (TYPE_GETREG): ...this.
4481
4482 (aarch64_types_setlane_qualifiers): Rename to...
4483 (aarch64_type_ternop_imm_qualifiers): ...this.
4484 (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
4485 (TYPES_SETLANE): Follow renaming above, and rename self to...
4486 (TYPE_SETREG): ...this.
4487
4488 (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
4489 (aarch64_simd_expand_args): Add range check and endianness-flip.
4490
4491 (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
4492
4493 * config/aarch64/aarch64-simd.md
4494 (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
4495 (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
4496 (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
4497
4498 (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
4499 (aarch64_sq<r>dmulh_lane<mode>): ...this.
4500
4501 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
4502 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
4503
4504 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
4505 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
4506
4507 (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
4508 (aarch64_sqdmull_lane<mode>): ...this.
4509
4510 (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
4511 (aarch64_sqdmull_laneq<mode>): ...this.
4512
4513 (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
4514 (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
4515 aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
4516 aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
4517
4518 (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
4519 aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
4520 aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
4521 bounds check and lane flip.
4522
4523 * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
4524 get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
4525 set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
4526
4527 (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
4528 sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
4529 renaming of TERNOP_LANE to QUADOP_LANE.
4530
4531 (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
4532 sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
4533 qualifiers to TERNOP_LANE.
4534
4535 2014-11-12 Tobias Burnus <burnus@net-b.de>
4536
4537 * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
4538 * configure.ac: Ditto.
4539 * graphite-interchange.c: Remove HAVE_CLOOG block.
4540 * config.in: Regenerate.
4541 * configure: Regenerate.
4542
4543 2014-11-12 Jiong Wang <jiong.wang@arm.com>
4544
4545 * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
4546 caller-save.
4547 (EPILOGUE_USES): Guard the check by epilogue_completed.
4548 * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
4549 LR.
4550 (aarch64_can_eliminate): Check LR_REGNUM liveness.
4551
4552 2014-11-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4553
4554 * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
4555
4556 2014-11-12 Marek Polacek <polacek@redhat.com>
4557
4558 * fold-const.c (fold_binary_loc): Don't fold if the result
4559 is undefined.
4560 * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
4561 -(-A) -> A): Likewise.
4562
4563 2014-11-12 Richard Biener <rguenther@suse.de>
4564
4565 Merge from match-and-simplify branch
4566 2014-11-04 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4567
4568 * genmatch.c (user_id): Add new member is_oper_list.
4569 (user_id::user_id): Add new default argument.
4570 (parser::parse_operator_list): New function.
4571 (parser::parse_for): Allow operator-list.
4572 (parser::parse_pattern): Call parser::parse_operator_list.
4573 (parser::parse_operation): Reject operator-list.
4574 * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
4575
4576 2014-10-31 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4577
4578 * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
4579
4580 2014-10-30 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4581
4582 * genmatch.c (parser::parse_op): Check if predicate is used in
4583 result operand.
4584
4585 2014-10-29 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4586
4587 * genmatch.c (parser::parse_for): Make sure to have a valid
4588 token to report errors at.
4589
4590 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4591
4592 * genmatch.c (parser): Add new member parsing_match_operand.
4593 (parser::parse_operation): Check for conditional convert in result
4594 operand.
4595 (parser::parse_expr): Check for commutative operator in result operand.
4596 Check for :type in match operand.
4597 (parser::parse_simplify): Set/unset parsing_match_operand.
4598 (parser::parser): Initialize parsing_match_operand.
4599
4600 2014-10-28 Richard Biener <rguenther@suse.de>
4601
4602 * genmatch.c (parser::parse_for): Properly check for already
4603 defined operators.
4604
4605 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4606
4607 * genmatch.c (error_cb): Adjust for printing warnings.
4608 (warning_at): New function.
4609 (user_id): Add new member used.
4610 (get_operator): Mark user_id as used.
4611 (parse_for): Warn for unused operators.
4612
4613 2014-11-12 Richard Biener <rguenther@suse.de>
4614
4615 * match.pd: Implement simple complex operations cancelling.
4616 * fold-const.c (fold_unary_loc): Remove them here.
4617
4618 2014-11-12 Joseph Myers <joseph@codesourcery.com>
4619
4620 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
4621 Define __NO_MATH_ERRNO__ if -fno-math-errno.
4622 * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
4623
4624 2014-11-12 Richard Biener <rguenther@suse.de>
4625
4626 * genmatch.c (::gen_transform): Add capture_info and
4627 expand_compares arguments.
4628 (struct expr): Add is_generic flag.
4629 (lower_cond): New functions lowering [VEC_]COND_EXPR
4630 conditions to a GENERIC and a GIMPLE variant.
4631 (lower): Call lower_cond.
4632 (cmp_operand): Also compare the is_generic flag.
4633 (capture_info::cinfo): Add cond_expr_cond_p flag.
4634 (capture_info::capture_info): Pass down whether the
4635 expression argument is a COND_EXPR condition.
4636 (capture_info::walk_match): Likewise, mark captures
4637 capturing COND_EXPR conditions with cond_expr_cond_p.
4638 (expr::gen_transform): Pass down whether we need to
4639 expand compares from COND_EXPR conditions.
4640 (capture::gen_transform): Expand compares substituted
4641 from COND_EXPR conditions into non-COND_EXPR conditions.
4642 (dt_operand::gen_gimple_expr): Handle explicitely marked
4643 GENERIC expressions as generic.
4644 (dt_simplify::gen): Pass whether we need to expand
4645 conditions to gen_transform. Handle capture results
4646 which are from COND_EXPR conditions.
4647 (main): Pass gimple flag down to lower.
4648
4649 2014-11-12 Jakub Jelinek <jakub@redhat.com>
4650
4651 PR c/59708
4652 * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
4653 * builtins.c (fold_builtin_arith_overflow): New function.
4654 (fold_builtin_3): Use it.
4655 * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
4656 BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
4657 BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
4658 BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
4659 BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
4660 BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
4661 BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
4662 BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
4663 BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
4664 BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
4665 * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
4666 BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
4667 BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
4668 BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
4669 BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
4670 * expr.c (write_complex_part): Remove prototype, no longer static.
4671 * expr.h (write_complex_part): New prototype.
4672 * function.c (aggregate_value_p): For internal functions return 0.
4673 * gimple-fold.c (arith_overflowed_p): New functions.
4674 (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
4675 * gimple-fold.h (arith_overflowed_p): New prototype.
4676 * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
4677 (find_non_realpart_uses, maybe_optimize_arith_overflow): New
4678 functions.
4679 (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
4680 into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
4681 never used.
4682 * gimplify.c (gimplify_call_expr): Handle gimplification of
4683 internal calls with lhs.
4684 * internal-fn.c (get_range_pos_neg, get_min_precision,
4685 expand_arith_overflow_result_store): New functions.
4686 (ubsan_expand_si_overflow_addsub_check): Renamed to ...
4687 (expand_addsub_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
4688 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
4689 Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
4690 (ubsan_expand_si_overflow_neg_check): Renamed to ...
4691 (expand_neg_overflow): ... this. Add LOC, LHS, ARG1, IS_UBSAN
4692 arguments, remove STMT argument. Handle SUB_OVERFLOW with
4693 0 as first argument expansion.
4694 (ubsan_expand_si_overflow_mul_check): Renamed to ...
4695 (expand_mul_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
4696 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
4697 Handle MUL_OVERFLOW expansion.
4698 (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
4699 arguments for it.
4700 (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
4701 expand_neg_overflow, prepare arguments for it.
4702 (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
4703 for it.
4704 (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
4705 expand_MUL_OVERFLOW): New functions.
4706 * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
4707 internal functions.
4708 * tree-vrp.c (check_for_binary_op_overflow): New function.
4709 (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
4710 is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
4711 (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
4712 internal functions.
4713 * optabs.def (umulv4_optab): New optab.
4714 * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
4715 (*umulv<mode>4, *<u>mulvqi4): New define_insns.
4716 * doc/extend.texi (Integer Overflow Builtins): Document
4717 __builtin_*_overflow.
4718
4719 2014-11-12 Richard Biener <rguenther@suse.de>
4720
4721 * genmatch.c (capture_info::capture_info): Add missing
4722 COND_EXPR handling.
4723 (capture_info::walk_match): Fix COND_EXPR handling.
4724 (capture_info::walk_result): Likewise.
4725
4726 2014-11-12 Richard Biener <rguenther@suse.de>
4727
4728 PR middle-end/63821
4729 * match.pd: Add missing conversion to the -(T)-X pattern.
4730
4731 2014-11-12 Richard Biener <rguenther@suse.de>
4732
4733 PR bootstrap/63819
4734 * hash-table.h: Include ggc.h also for generator programs.
4735 * genmatch.c (ggc_internal_cleared_alloc): Properly define
4736 using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
4737
4738 2014-11-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
4739
4740 PR tree-optimization/63761
4741 * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
4742 rather than taking it as a parameter. Add some comments to explain the
4743 gsi_move_before in case of load and why canonicalization of bswap into
4744 a rotation is only done for 16bit values.
4745 (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
4746 refer to the statement just before cur_stmt. Ignore 16bit bswap that
4747 are already in canonical form. Adapt bswap_replace to removal of its
4748 gsi parameter.
4749
4750 2014-11-12 Richard Sandiford <richard.sandiford@arm.com>
4751
4752 * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
4753 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
4754 (for_each_rtx_in_insn): Delete.
4755 (init_rtlanal): Remove initialization of non_rtx_starting_operands.
4756 * df-core.c: Remove reference to for_each_rtx in comment.
4757
4758 2014-11-12 Tejas Belagod <tejas.belagod@arm.com>
4759
4760 * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
4761 arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
4762 * doc/aarch64-acle-intrinsics.texi: Remove.
4763 * doc/arm-acle-intrinsics.texi: Remove.
4764 * doc/arm-neon-intrinsics.texi: Remove.
4765 * doc/extend.texi: Consolidate sections AArch64 intrinsics,
4766 ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
4767 Extension section. Add references to public ACLE specification.
4768
4769 2014-11-11 Patrick Palka <ppalka@gcc.gnu.org>
4770
4771 * tree-vrp.c (register_edge_assert_for_2): Change return type to
4772 void and adjust accordingly.
4773 (register_edge_assert_for_1): Likewise.
4774 (register_edge_assert_for): Likewise.
4775 (find_conditional_asserts): Likewise.
4776 (find_switch_asserts): Likewise.
4777 (find_assert_locations_1): Likewise.
4778 (find_assert_locations): Likewise.
4779 (insert_range_insertions): Inspect the need_assert_for bitmap.
4780
4781 2014-11-11 Andrew Pinski <apinski@cavium.com>
4782
4783 Bug target/61997
4784 * config.gcc (aarch64*-*-*): Set target_gtfiles to include
4785 aarch64-builtins.c.
4786 * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
4787 at the end of the file.
4788
4789 2014-11-11 Anthony Brandon <anthony.brandon@gmail.com>
4790 Manuel López-Ibáñez <manu@gcc.gnu.org>
4791
4792 PR driver/36312
4793 * diagnostic-core.h: Add prototype for fatal_error.
4794 * diagnostic.c (fatal_error): New function fatal_error.
4795 * gcc.c (store_arg): Remove have_o_argbuf_index.
4796 (process_command): Check if input and output files are the same.
4797 * toplev.c (init_asm_output): Check if input and output files are
4798 the same.
4799
4800 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
4801
4802 * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
4803
4804 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
4805
4806 PR target/61535
4807 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
4808 smaller than 8 bytes.
4809 (sparc_function_arg_1): Tweak.
4810 (sparc_function_value_1): Tweak.
4811
4812 2014-11-11 David Malcolm <dmalcolm@redhat.com>
4813
4814 * ChangeLog.jit: New.
4815 * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
4816 sphinx is installed, falling back to "texinfo" otherwise.
4817 (FULL_DRIVER_NAME): New variable, adapted from the
4818 install-driver target. New target, a symlink within the builddir,
4819 linked to "xgcc", for use when running the JIT library from the
4820 builddir.
4821 (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
4822 (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
4823 out.
4824 * configure.ac (doc_build_sys): New variable, set to "sphinx" if
4825 sphinx is installed, falling back to "texinfo" otherwise.
4826 (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
4827 GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
4828 * configure: Regenerate.
4829 * doc/install.texi (--enable-host-shared): Specify that this is
4830 required when building libgccjit.
4831 (Tools/packages necessary for modifying GCC): Add Sphinx.
4832 * timevar.def (TV_JIT_REPLAY): New.
4833 (TV_ASSEMBLE): New.
4834 (TV_LINK): New.
4835 (TV_LOAD): New.
4836
4837 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4838
4839 PR target/63610
4840 * configure: Regenerate.
4841
4842 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com>
4843
4844 * config/aarch64/aarch64-simd.md
4845 (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
4846 (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
4847 are punning between float vectors and integer vectors.
4848
4849 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
4850
4851 * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
4852 open-coded swap with std::swap to swap values.
4853 (alpha_emit_setcc): Ditto.
4854 (alpha_emit_conditional_move): Ditto.
4855 (alpha_split_tmode_pair): Ditto.
4856
4857 2014-11-11 Evgeny Stupachenko <evstupac@gmail.com>
4858
4859 * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
4860 permutations on power of 2 cases.
4861
4862 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4863
4864 * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
4865 (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
4866
4867 2014-11-11 Richard Biener <rguenther@suse.de>
4868
4869 * tree-core.h (pedantic_lvalues): Remove.
4870 * fold-const.c (pedantic_lvalues): Likewise.
4871 (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
4872
4873 2014-11-11 Martin Liska <mliska@suse.cz>
4874
4875 PR ipa/63622
4876 PR ipa/63795
4877 * ipa-icf.c (sem_function::merge): Add new target symbol alias
4878 support guard.
4879 (sem_variable::merge): Likewise.
4880 * ipa-icf.h (target_supports_symbol_aliases_p): New function.
4881
4882 2014-11-11 Richard Biener <rguenther@suse.de>
4883
4884 * match.pd: Implement patterns from associate_plusminus
4885 and factor in differences from the fold-const.c implementation.
4886 * fold-const.c (fold_binary_loc): Remove patterns here.
4887 * tree-ssa-forwprop.c (associate_plusminus): Remove.
4888 (pass_forwprop::execute): Don't call it.
4889 * tree.c (tree_nop_conversion_p): New function, factored
4890 from tree_nop_conversion.
4891 * tree.h (tree_nop_conversion_p): Declare.
4892
4893 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
4894
4895 * system.h: Include algorithm and utility.
4896 * rtl.h: Do not include utility here.
4897 * wide-int.h: Ditto.
4898 * tree-vect-data-refs.c (swap): Remove template.
4899 (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
4900
4901 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4902
4903 PR bootstrap/63699
4904 PR bootstrap/63750
4905 * system.h: Include <string> before "safe-ctype.h"
4906 * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
4907 calls to min/max with wi namespace.
4908 * ipa-chkp.c: Don't include <string>.
4909
4910 2014-11-11 Terry Guo <terry.guo@arm.com>
4911
4912 * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
4913 * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
4914 registers.
4915 (*thumb1_movhf): Likewise.
4916
4917 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
4918
4919 * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
4920 instead of INT64_MAX.
4921
4922 2014-11-11 Tobias Burnus <burnus@net-b.de>
4923
4924 * doc/install.texi (Prerequisites): Remove CLooG.
4925
4926 2014-11-10 Trevor Saunders <tsaunders@mozilla.com>
4927
4928 * ipa-inline.c (edge_badness): Adjust.
4929 (inline_small_functions): Likewise.
4930 * predict.c (propagate_freq): Likewise.
4931 (estimate_bb_frequencies): Likewise.
4932 * sreal.c (sreal::dump): Rename from dump_sreal.
4933 (debug): Adjust.
4934 (copy): Remove function.
4935 (sreal::shift_right): Rename from sreal_sift_right.
4936 (sreal::normalize): Rename from normalize.
4937 (sreal_init): Remove function.
4938 (sreal::to_int): Rename from sreal_to_int.
4939 (sreal_compare): Remove function.
4940 (sreal::operator+): Rename from sreal_add.
4941 (sreal::operator-): Rename from sreal_sub.
4942 (sreal::operator*): Rename from sreal_mul.
4943 (sreal::operator/): Rename from sreal_div.
4944 * sreal.h (class sreal): Adjust.
4945 (inline sreal &operator+=): New operator.
4946 (inline sreal &operator-=): Likewise.
4947 (inline sreal &operator/=): Likewise.
4948 (inline sreal &operator*=): Likewise.
4949 (inline bool operator!=): Likewise.
4950 (inline bool operator>): Likewise.
4951 (inline bool operator<=): Likewise.
4952 (inline bool operator>=): Likewise.
4953
4954 2014-11-11 Bin Cheng <bin.cheng@arm.com>
4955
4956 * sched-deps.c (sched_analyze_1): Check pending list if it is not
4957 less than MAX_PENDING_LIST_LENGTH.
4958 (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
4959
4960 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
4961
4962 * config/i386/i386.c (ix86_decompose_address): Replace open-coded
4963 swap with std::swap to swap values.
4964 (ix86_fixup_binary_operands): Ditto.
4965 (ix86_binary_operator_ok): Ditto.
4966 (ix86_prepare_fp_compare_args): Ditto.
4967 (ix86_expand_branch): Ditto.
4968 (ix86_expand_carry_flag_compare): Ditto.
4969 (ix86_expand_int_movcc): Ditto.
4970 (ix86_prepare_sse_fp_compare_args): Ditto.
4971 (ix86_expand_sse_fp_minmax): Ditto.
4972 (ix86_expand_int_vcond): Ditto.
4973 (ix86_split_long_move): Ditto.
4974 (ix86_expand_sse_comi): Ditto.
4975 (ix86_expand_sse_compare_and_jump): Ditto.
4976 (ix86_expand_sse_compare_mask): Ditto.
4977 * config/i386/i386.md (*add<mode>_1): Ditto.
4978 (addsi_1_zext): Ditto.
4979 (*addhi_1): Ditto.
4980 (*addqi_1): Ditto.
4981 (*add<mode>_2): Ditto.
4982 (*addsi_2_zext): Ditto.
4983 (*add<mode>_3): Ditto.
4984 (*addsi_3_zext): Ditto.
4985 (*add<mode>_5): Ditto.
4986 (absneg splitter): Ditto.
4987
4988 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
4989
4990 Revert:
4991 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
4992
4993 PR target/63620
4994 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
4995 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
4996 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
4997 be reloaded through memory.
4998 (*pushxf): Ditto.
4999 (*pushdf): Ditto.
5000
5001 2014-11-11 Jakub Jelinek <jakub@redhat.com>
5002 Martin Liska <mliska@suse.cz>
5003
5004 * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
5005 (func_checker::compare_gimple_call): Compare gimple_call_fn,
5006 gimple_call_chain, gimple_call_fntype and call flags.
5007
5008 2014-11-10 Vladimir Makarov <vmakarov@redhat.com>
5009
5010 PR rtl-optimization/63620
5011 PR rtl-optimization/63799
5012 * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
5013 and setting PIC pseudo insns.
5014 (lra_create_live_ranges): Fix the typo.
5015
5016 2014-11-10 Patrick Palka <ppalka@gcc.gnu.org>
5017
5018 PR middle-end/63748
5019 * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
5020 SSA copies whose source and destination names both occur in
5021 abnormal PHIs.
5022
5023 2014-11-10 Roman Gareev <gareevroman@gmail.com>
5024
5025 * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
5026 * common.opt: Remove using of fgraphite-code-generator flag.
5027 * flag-types.h: Likewise.
5028 * graphite.c: Remove using of CLooG.
5029 * graphite-blocking.c: Likewise.
5030 * graphite-dependences.c: Likewise.
5031 * graphite-poly.c: Likewise.
5032 * graphite-poly.h: Likewise.
5033 * graphite-scop-detection.c: Likewise.
5034 * graphite-sese-to-poly.c: Likewise.
5035 * graphite-clast-to-gimple.c: Removed.
5036 * graphite-clast-to-gimple.h: Likewise.
5037 * graphite-htab.h: Likewise.
5038
5039 2014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
5040
5041 * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
5042 Add.
5043
5044 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
5045
5046 * config/frv/frv.c (frv_io_handle_use_1): Delete.
5047 (frv_io_handle_use): Use find_all_hard_regs.
5048
5049 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
5050
5051 * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
5052 than an rtx *. Take the regstate_t directly rather than via a void *.
5053 Return a bool rather than an int. Iterate over all subrtxes here.
5054 (frv_registers_conflict_p): Update accordingly.
5055
5056 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
5057
5058 * config/frv/frv.c: Include rtl-iter.h.
5059 (frv_acc_group_1): Delete.
5060 (frv_acc_group): Use FOR_EACH_SUBRTX.
5061
5062 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
5063
5064 * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
5065 (frv_clear_registers_used): Delete.
5066 (frv_ifcvt_modify_tests): Use find_all_hard_regs.
5067
5068 2014-11-10 Jan Hubicka <hubicka@ucw.cz>
5069
5070 PR bootstrap/63573
5071 * calls.c (initialize_argument_information): When emitting thunk call
5072 use original memory placement of the argument.
5073
5074 2014-11-10 Renlin Li <renlin.li@arm.com>
5075
5076 PR middle-end/61529
5077 * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
5078
5079 2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
5080
5081 * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
5082 bswaphi if available.
5083
5084 2014-11-10 Bernd Schmidt <bernds@codesourcery.com>
5085
5086 * config/nvptx/nvptx.c: New file.
5087 * config/nvptx/nvptx.h: New file.
5088 * config/nvptx/nvptx-protos.h: New file.
5089 * config/nvptx/nvptx.md: New file.
5090 * config/nvptx/t-nvptx: New file.
5091 * config/nvptx/nvptx.opt: New file.
5092 * common/config/nvptx/nvptx-common.c: New file.
5093 * config.gcc: Handle nvptx-*-*.
5094
5095 2014-11-10 Richard Biener <rguenther@suse.de>
5096
5097 * tree-ssa-operands.c (finalize_ssa_uses): Properly put
5098 released operands on the free list.
5099
5100 2014-11-10 Richard Biener <rguenther@suse.de>
5101
5102 * match.pd: Implement pattern from simplify_mult.
5103 * tree-ssa-forwprop.c (simplify_mult): Remove.
5104 (pass_forwprop::execute): Do not call simplify_mult.
5105
5106 2014-11-10 Richard Biener <rguenther@suse.de>
5107
5108 PR tree-optimization/63800
5109 * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
5110 we can restore the previous availability in after_dom_children.
5111 (eliminate_dom_walker::after_dom_children): Restore
5112 previous availability.
5113
5114 2014-11-10 Richard Biener <rguenther@suse.de>
5115
5116 PR middle-end/63798
5117 * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
5118 properly treat the embedded multiplication as commutative
5119 when looking for feeding negates.
5120
5121 2014-11-10 Joern Rennecke <joern.rennecke@embecosm.com>
5122
5123 * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
5124
5125 2014-11-10 Martin Liska <mliska@suse.cz>
5126
5127 * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
5128 for the test because of default char signedness
5129 on powerpc64 target.
5130
5131 2014-11-10 Richard Biener <rguenther@suse.de>
5132
5133 * match.pd: Implement pattern from simplify_conversion_from_bitmask.
5134 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
5135 (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
5136
5137 2014-11-10 Richard Biener <rguenther@suse.de>
5138
5139 * match.pd: Move rest of the conversion combining patterns
5140 from tree-ssa-forwprop.c.
5141 * tree-ssa-forwprop.c (combine_conversions): Remove.
5142 (pass_forwprop::execute): Do not call it.
5143
5144 2014-11-10 Eric Botcazou <ebotcazou@adacore.com>
5145
5146 * gimple-low.c (lower_function_body): Clear the location of the first
5147 inserted representative return if it also fills in for the fallthru.
5148
5149 2014-11-10 Yuri Rumyantsev <ysrumyan@gmail.com>
5150
5151 * tree-if-conv.c (add_to_predicate_list): Check unconditionally
5152 that bb is always executed to early exit. Use predicate of
5153 cd-equivalent block for join blocks if it exists.
5154 (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
5155 (tree_if_conversion): Free post-dominance information.
5156
5157 2014-11-09 Jason Merrill <jason@redhat.com>
5158
5159 * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
5160 * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
5161 (_mm_mask_cvtusepi32_storeu_epi16)
5162 (_mm_mask_cvtsepi64_storeu_epi32): Return void.
5163
5164 2014-11-09 Joern Rennecke <joern.rennecke@embecosm.com>
5165
5166 * config/avr/predicates.md (low_io_address_operand): Fix typo.
5167
5168 2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
5169
5170 PR rtl-optimization/63620
5171 * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
5172 name. Move to lra.c. Make it external.
5173 (substitute_pseudo_within_insn): Ditto.
5174 (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
5175 the new names.
5176 (undo_optional_reloads): Ditto.
5177 * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
5178 New prototypes.
5179 (lra_substitute_pseudo_within_insn): Ditto.
5180 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
5181 (mark_regno_live): Add parameter. Update bb_gen_pseudos.
5182 (mark_regno_dead): Add parameter. Update bb_gen_pseudos and
5183 bb_killed_pseudos.
5184 (struct bb_data, bb_data_t, bb_data): New.
5185 (get_bb_data, get_bb_data_by_index): Ditto.
5186 (all_hard_regs_bitmap): New.
5187 (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
5188 (initiate_live_solver, finish_live_solver): New.
5189 (process_bb_lives): Change return type. Add code updating local
5190 live data and removing dead insns. Pass new argument to
5191 mark_regno_live and mark_regno_dead. Check changing bb pseudo
5192 life info. Return the result.
5193 (lra_create_live_ranges): Add code to do global pseudo live
5194 analysis.
5195 (lra_live_ranges_init): Call initiate_live_solver.
5196 (lra_live_ranges_finish): Call finish_live_solver.
5197 * lra.c (lra_dump_bitmap_with_title): New.
5198 (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
5199 from lra-constraints.c.
5200
5201 2014-11-09 Richard Biener <rguenther@suse.de>
5202
5203 * match.pd: Add patterns convering two conversions in a row
5204 from fold-const.c.
5205 * fold-const.c (fold_unary_loc): Remove them here.
5206 * tree-ssa-forwprop.c (combine_conversions): Likewise.
5207 * genmatch.c (dt_node::gen_kids): Check whether we may
5208 follow SSA use-def chains.
5209
5210 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
5211
5212 * config/aarch64/aarch64.c: Include rtl-iter.h.
5213 (aarch64_tls_operand_p_1): Delete.
5214 (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
5215
5216 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
5217
5218 * config/arm/arm.c (arm_note_pic_base): Delete.
5219 (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
5220
5221 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
5222
5223 * config/arm/arm.c: Include rtl-iter.h.
5224 (arm_tls_referenced_p_1): Delete.
5225 (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
5226
5227 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
5228
5229 * config/arm/aarch-common.c: Include rtl-iter.h.
5230 (search_term, arm_find_sub_rtx_with_search_term): Delete.
5231 (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
5232 (arm_get_set_operands): Pass the insn pattern rather than the
5233 insn itself.
5234 (arm_no_early_store_addr_dep): Likewise.
5235
5236 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
5237
5238 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
5239 related, if any.
5240 (thumb_set_return_address): Likewise.
5241
5242 2014-11-07 Jeff Law <law@redhat.com>
5243
5244 PR tree-optimization/61515
5245 * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
5246 stack rather than looking at every SSA_NAME's value.
5247
5248 2014-11-07 Richard Biener <rguenther@suse.de>
5249
5250 PR tree-optimization/63605
5251 * fold-const.c (fold_binary_loc): Properly use element_precision
5252 for types that may not be scalar.
5253
5254 2014-11-07 Evgeny Stupachenko <evstupac@gmail.com>
5255
5256 PR target/63534
5257 * config/i386/i386.md (builtin_setjmp_receiver): Use
5258 pic_offset_table_rtx for PIC register.
5259 (nonlocal_goto_receiver): Delete.
5260
5261 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
5262
5263 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
5264 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
5265
5266 2014-11-07 Martin Liska <mliska@suse.cz>
5267
5268 PR ipa/63580
5269 * cgraphunit.c (cgraph_node::create_wrapper):
5270 TREE_ADDRESSABLE is set to false for a newly created thunk.
5271
5272 2014-11-07 Martin Liska <mliska@suse.cz>
5273
5274 PR ipa/63747
5275 * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
5276 Missing checking for CASE_LOW and CASE_HIGH added.
5277
5278 2014-11-07 Martin Liska <mliska@suse.cz>
5279
5280 PR ipa/63595
5281 * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
5282 is correctly handled for thunks created by IPA ICF.
5283
5284 2014-11-07 Jiong Wang <jiong.wang@arm.com>
5285 2014-11-07 Richard Biener <rguenther@suse.de>
5286
5287 PR tree-optimization/63676
5288 * gimple-fold.c (fold_gimple_assign): Do not fold node when
5289 TREE_CLOBBER_P be true.
5290
5291 2014-11-07 Richard Biener <rguenther@suse.de>
5292
5293 PR middle-end/63770
5294 * match.pd: Guard conflicting GENERIC pattern properly.
5295
5296 2014-11-07 Richard Biener <rguenther@suse.de>
5297
5298 * match.pd: Add patterns for POINTER_PLUS_EXPR association
5299 and special patterns from tree-ssa-forwprop.c
5300 * fold-const.c (fold_binary_loc): Remove them here.
5301 * tree-ssa-forwprop.c (to_purge): New global bitmap.
5302 (fwprop_set_lattice_val): New function.
5303 (fwprop_invalidate_lattice): Likewise.
5304 (remove_prop_source_from_use): Instead of purging dead EH
5305 edges record blocks to do that in to_purge.
5306 (tidy_after_forward_propagate_addr): Likewise.
5307 (forward_propagate_addr_expr): Invalidate the lattice for
5308 SSA names we release.
5309 (simplify_conversion_from_bitmask): Likewise.
5310 (simplify_builtin_call): Likewise.
5311 (associate_pointerplus_align): Remove.
5312 (associate_pointerplus_diff): Likewise.
5313 (associate_pointerplus): Likewise.
5314 (fold_all_stmts): Merge with ...
5315 (pass_forwprop::execute): ... the original loop over all
5316 basic-blocks. Delay purging dead EH edges and invalidate
5317 the lattice for SSA names we release.
5318
5319 2014-11-07 Terry Guo <terry.guo@arm.com>
5320
5321 * config/arm/arm.opt (masm-syntax-unified): New option.
5322 * doc/invoke.texi (-masm-syntax-unified): Document new option.
5323 * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
5324 (ASM_APP_ON): Redefined.
5325 * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
5326 code always use UAL syntax.
5327 (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
5328 * config/arm/thumb1.md: Likewise.
5329
5330 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
5331
5332 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
5333 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
5334 or in_call_delay.
5335
5336 2014-11-06 Steve Ellcey <sellcey@imgtec.com>
5337
5338 * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
5339 Set default_mips_arch and default_mips_abi instead of tm_defines.
5340 (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
5341 of tm_defines.
5342 (mips*-*-*): Check with_arch and with_abi. Set tm_defines.
5343 * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
5344 based on MIPS_ABI_DEFAULT.
5345 (STANDARD_STARTFILE_PREFIX_2): Ditto.
5346
5347 2014-11-06 Joseph Myers <joseph@codesourcery.com>
5348
5349 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
5350 cases of extended identifiers.
5351
5352 2014-11-06 Eric Botcazou <ebotcazou@adacore.com>
5353
5354 * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
5355
5356 2014-11-06 DJ Delorie <dj@redhat.com>
5357
5358 * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
5359 conditional.
5360 (movhicc_<code>_<mode>): Likewise.
5361 * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
5362 subregs.
5363 (m32c_eh_return_data_regno): Change to using memregs to avoid
5364 tying up all the compute regs.
5365 (m32c_legitimate_address_p) Subregs are not valid addresses.
5366
5367 2014-11-06 Bernd Schmidt <bernds@codesourcery.com>
5368
5369 * function.c (thread_prologue_and_epilogue_insns): No longer static.
5370 * function.h (thread_prologue_and_epilogue_insns): Declare.
5371
5372 * target.def (assemble_undefined_decl): New hooks.
5373 * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
5374 * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
5375 * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
5376 * doc/tm.texi: Regenerate.
5377 * output.h (assemble_undefined_decl): Declare.
5378 (get_fnname_from_decl): Declare.
5379 * varasm.c (assemble_undefined_decl): New function.
5380 (get_fnname_from_decl): New function.
5381 * final.c (rest_of_handle_final): Use it.
5382 * varpool.c (varpool_output_variables): Call assemble_undefined_decl
5383 for nodes without a definition.
5384
5385 * target.def (call_args, end_call_args): New hooks.
5386 * hooks.c (hook_void_rtx_tree): New empty function.
5387 * hooks.h (hook_void_rtx_tree): Declare.
5388 * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
5389 * doc/tm.texi: Regenerate.
5390 * calls.c (expand_call): Slightly rearrange the code. Use the two new
5391 hooks.
5392 (expand_library_call_value_1): Use the two new hooks.
5393
5394 * expr.c (use_reg_mode): Just return for pseudo registers.
5395
5396 * combine.c (try_combine): Don't allow a call as one of the source
5397 insns.
5398
5399 * target.def (decl_end): New hook.
5400 * varasm.c (assemble_variable_contents, assemble_constant_contents):
5401 Use it.
5402 * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
5403 * doc/tm.texi: Regenerate.
5404
5405 2014-11-06 Renlin Li <renlin.li@arm.com>
5406
5407 * config/aarch64/aarch64.c (aarch64_architecture_version): New.
5408 (processor): New architecture_version field.
5409 (aarch64_override_options): Initialize aarch64_architecture_version.
5410 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
5411 __ARM_ARCH_PROFILE, aarch64_arch_name macro.
5412
5413 2014-11-06 James Greenhalgh <james.greenhalgh@arm.com>
5414
5415 * params.def (sra-max-scalarization-size-Ospeed): New.
5416 (sra-max-scalarization-size-Osize): Likewise.
5417 * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
5418 (sra-max-scalarization-size-Osize): Likewise.
5419 * toplev.c (process_options): Set default values for new
5420 parameters.
5421 * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
5422 * targhooks.c (get_move_ratio): Remove static designator.
5423 * target.h (get_move_ratio): Declare.
5424
5425 2014-11-06 Marek Polacek <polacek@redhat.com>
5426
5427 * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
5428 Remove vector limit.
5429
5430 2014-11-06 Richard Biener <rguenther@suse.de>
5431
5432 * match.pd: Implement bitwise binary and unary simplifications
5433 from tree-ssa-forwprop.c.
5434 * fold-const.c (fold_unary_loc): Remove them here.
5435 (fold_binary_loc): Likewise.
5436 * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
5437 (truth_valued_ssa_name): Likewise.
5438 (lookup_logical_inverted_value): Likewise.
5439 (simplify_bitwise_binary_1): Likewise.
5440 (hoist_conversion_for_bitop_p): Likewise.
5441 (simplify_bitwise_binary_boolean): Likewise.
5442 (simplify_bitwise_binary): Likewise.
5443 (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
5444 and simplify_bitwise_binary.
5445 * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
5446 (decision_tree::insert): Also insert non-expressions.
5447
5448 2014-11-06 Hale Wang <hale.wang@arm.com>
5449
5450 * config/arm/arm-cores.def: Add support for
5451 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
5452 cortex-m1.small-multiply.
5453 * config/arm/arm-tables.opt: Regenerate.
5454 * config/arm/arm-tune.md: Regenerate.
5455 * config/arm/arm.c: Update the rtx-costs for MUL.
5456 * config/arm/bpabi.h: Handle
5457 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
5458 cortex-m1.small-multiply.
5459 * doc/invoke.texi: Document
5460 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
5461 cortex-m1.small-multiply.
5462
5463 2014-11-06 Hale Wang <hale.wang@arm.com>
5464
5465 * config/arm/arm.c: Add cortex-m7 tune.
5466 * config/arm/arm-cores.def: Use cortex-m7 tune.
5467
5468 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
5469
5470 PR target/63538
5471 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
5472 (ix86_encode_section_info): Do not check for non-automatic varibles
5473 when setting SYMBOL_FLAG_FAR_ADDR flag.
5474 (x86_64_elf_select_section): Do not check ix86_cmodel here.
5475 (x86_64_elf_unique_section): Ditto.
5476 (x86_elf_aligned_common): Emit tab before .largecomm.
5477
5478 2014-11-05 Joseph Myers <joseph@codesourcery.com>
5479
5480 PR preprocessor/9449
5481 * doc/cpp.texi (Character sets, Tokenization)
5482 (Implementation-defined behavior): Don't refer to UCNs in
5483 identifiers requiring -fextended-identifiers.
5484 * doc/cppopts.texi (-fextended-identifiers): Document as enabled
5485 by default for C99 and later and C++.
5486 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
5487 identifiers needing -fextended-identifiers.
5488
5489 2014-11-05 Ilya Tocar <ilya.tocar@intel.com>
5490
5491 * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
5492 for 512-bit wide modes.
5493 (expand_vec_perm_1): Use correct versions of patterns.
5494 * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
5495 (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
5496
5497 2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
5498
5499 * ipa-chkp.c: New.
5500 * ipa-chkp.h: New.
5501 * tree-chkp.c: New.
5502 * tree-chkp.h: New.
5503 * tree-chkp-opt.c: New.
5504 * rtl-chkp.c: New.
5505 * rtl-chkp.h: New.
5506 * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
5507 tree-chkp-opt.o.
5508 (GTFILES): Add tree-chkp.c.
5509 * mode-classes.def (MODE_POINTER_BOUNDS): New.
5510 * tree.def (POINTER_BOUNDS_TYPE): New.
5511 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
5512 (POINTER_BOUNDS_MODE): New.
5513 (make_pointer_bounds_mode): New.
5514 * machmode.h (POINTER_BOUNDS_MODE_P): New.
5515 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
5516 (layout_type): Support POINTER_BOUNDS_TYPE.
5517 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
5518 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
5519 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
5520 (type_contains_placeholder_1): Likewise.
5521 (build_common_tree_nodes): Initialize
5522 pointer_bounds_type_node.
5523 * tree.h (POINTER_BOUNDS_TYPE_P): New.
5524 (pointer_bounds_type_node): New.
5525 (POINTER_BOUNDS_P): New.
5526 (BOUNDED_TYPE_P): New.
5527 (BOUNDED_P): New.
5528 (CALL_WITH_BOUNDS_P): New.
5529 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
5530 (gimple_call_with_bounds_p): New.
5531 (gimple_call_set_with_bounds): New.
5532 (gimple_return_retbnd): New.
5533 (gimple_return_set_retbnd): New
5534 * gimple.c (gimple_build_return): Increase number of ops
5535 for return statement.
5536 (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
5537 flag.
5538 * gimple-pretty-print.c (dump_gimple_return): Print second op.
5539 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
5540 * gimplify.c (gimplify_init_constructor): Avoid infinite
5541 loop during gimplification of bounds initializer.
5542 * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
5543 (special_function_p): Use original decl name when analyzing
5544 instrumentation clone.
5545 (arg_data): Add fields special_slot, pointer_arg and
5546 pointer_offset.
5547 (store_bounds): New.
5548 (emit_call_1): Propagate instrumentation flag for CALL.
5549 (initialize_argument_information): Compute pointer_arg,
5550 pointer_offset and special_slot for pointer bounds arguments.
5551 (finalize_must_preallocate): Preallocate when storing bounds
5552 in bounds table.
5553 (compute_argument_addresses): Skip pointer bounds.
5554 (expand_call): Store bounds into tables separately. Return
5555 result joined with resulting bounds.
5556 * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
5557 (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
5558 (expand_return): Add returned bounds arg. Handle returned bounds.
5559 (expand_gimple_stmt_1): Adjust to new expand_return signature.
5560 (gimple_expand_cfg): Reset rtx bounds map.
5561 * expr.c: Include tree-chkp.h, rtl-chkp.h.
5562 (expand_assignment): Handle returned bounds.
5563 (store_expr_with_bounds): New. Replaces store_expr with new bounds
5564 target argument. Handle bounds returned by calls.
5565 (store_expr): Now wraps store_expr_with_bounds.
5566 * expr.h (store_expr_with_bounds): New.
5567 * function.c: Include tree-chkp.h, rtl-chkp.h.
5568 (bounds_parm_data): New.
5569 (use_register_for_decl): Do not registerize decls used for bounds
5570 stores and loads.
5571 (assign_parms_augmented_arg_list): Add bounds of the result
5572 structure pointer as the second argument.
5573 (assign_parm_find_entry_rtl): Mark bounds are never passed on
5574 the stack.
5575 (assign_parm_is_stack_parm): Likewise.
5576 (assign_parm_load_bounds): New.
5577 (assign_bounds): New.
5578 (assign_parms): Load bounds and determine a location for
5579 returned bounds.
5580 (diddle_return_value_1): New.
5581 (diddle_return_value): Handle returned bounds.
5582 * function.h (rtl_data): Add field for returned bounds.
5583 * varasm.c: Include tree-chkp.h.
5584 (output_constant): Support POINTER_BOUNDS_TYPE.
5585 (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
5586 (ultimate_transparent_alias_target): Move up.
5587 (make_decl_rtl): For instrumented function use
5588 name of the original decl.
5589 (assemble_start_function): Mark function as global
5590 in case it is instrumentation clone of the global
5591 function.
5592 (do_assemble_alias): Follow transparent alias chain
5593 for identifier. Check if original alias is public.
5594 (maybe_assemble_visibility): Use visibility of the
5595 original function for instrumented version.
5596 (default_unique_section): Likewise.
5597 * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
5598 (init_emit_once): Build pointer bounds zero constants.
5599 * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
5600 * target.def (builtin_chkp_function): New.
5601 (chkp_bound_type): New.
5602 (chkp_bound_mode): New.
5603 (chkp_make_bounds_constant): New.
5604 (chkp_initialize_bounds): New.
5605 (load_bounds_for_arg): New.
5606 (store_bounds_for_arg): New.
5607 (load_returned_bounds): New.
5608 (store_returned_bounds): New.
5609 (chkp_function_value_bounds): New.
5610 (setup_incoming_vararg_bounds): New.
5611 (function_arg): Update hook description with new possible return
5612 value CONST_INT.
5613 * targhooks.h (default_load_bounds_for_arg): New.
5614 (default_store_bounds_for_arg): New.
5615 (default_load_returned_bounds): New.
5616 (default_store_returned_bounds): New.
5617 (default_chkp_bound_type): New.
5618 (default_chkp_bound_mode): New.
5619 (default_builtin_chkp_function): New.
5620 (default_chkp_function_value_bounds): New.
5621 (default_chkp_make_bounds_constant): New.
5622 (default_chkp_initialize_bounds): New.
5623 (default_setup_incoming_vararg_bounds): New.
5624 * targhooks.c (default_load_bounds_for_arg): New.
5625 (default_store_bounds_for_arg): New.
5626 (default_load_returned_bounds): New.
5627 (default_store_returned_bounds): New.
5628 (default_chkp_bound_type): New.
5629 (default_chkp_bound_mode); New.
5630 (default_builtin_chkp_function): New.
5631 (default_chkp_function_value_bounds): New.
5632 (default_chkp_make_bounds_constant): New.
5633 (default_chkp_initialize_bounds): New.
5634 (default_setup_incoming_vararg_bounds): New.
5635 * builtin-types.def (BT_BND): New.
5636 (BT_FN_PTR_CONST_PTR): New.
5637 (BT_FN_CONST_PTR_CONST_PTR): New.
5638 (BT_FN_BND_CONST_PTR): New.
5639 (BT_FN_CONST_PTR_BND): New.
5640 (BT_FN_PTR_CONST_PTR_SIZE): New.
5641 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
5642 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
5643 (BT_FN_VOID_CONST_PTR_SIZE): New.
5644 (BT_FN_VOID_PTR_BND): New.
5645 (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
5646 (BT_FN_BND_CONST_PTR_SIZE): New.
5647 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
5648 (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
5649 * chkp-builtins.def: New.
5650 * builtins.def: include chkp-builtins.def.
5651 (DEF_CHKP_BUILTIN): New.
5652 * builtins.c: Include tree-chkp.h and rtl-chkp.h.
5653 (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
5654 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
5655 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
5656 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
5657 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
5658 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
5659 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
5660 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
5661 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
5662 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
5663 (std_expand_builtin_va_start): Init bounds for va_list.
5664 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
5665 __CHKP__ macro when Pointer Bounds Checker is on.
5666 * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
5667 * passes.def (pass_ipa_chkp_versioning): New.
5668 (pass_early_local_passes): Renamed to pass_build_ssa_passes.
5669 (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
5670 (pass_chkp_instrumentation_passes): New.
5671 (pass_ipa_chkp_produce_thunks): New.
5672 (pass_local_optimization_passes): New.
5673 (pass_chkp_opt): New.
5674 * tree-pass.h (make_pass_ipa_chkp_versioning): New.
5675 (make_pass_ipa_chkp_produce_thunks): New.
5676 (make_pass_chkp): New.
5677 (make_pass_chkp_opt): New.
5678 (make_pass_early_local_passes): Renamed to ...
5679 (make_pass_build_ssa_passes): This.
5680 (make_pass_chkp_instrumentation_passes): New.
5681 (make_pass_local_optimization_passes): New.
5682 * passes.c (pass_manager::execute_early_local_passes): Execute
5683 early passes in three steps.
5684 (execute_all_early_local_passes): Renamed to ...
5685 (execute_build_ssa_passes): This.
5686 (pass_data_early_local_passes): Renamed to ...
5687 (pass_data_build_ssa_passes): This.
5688 (pass_early_local_passes): Renamed to ...
5689 (pass_build_ssa_passes): This.
5690 (pass_data_chkp_instrumentation_passes): New.
5691 (pass_chkp_instrumentation_passes): New.
5692 (pass_data_local_optimization_passes): New.
5693 (pass_local_optimization_passes): New.
5694 (make_pass_early_local_passes): Renamed to ...
5695 (make_pass_build_ssa_passes): This.
5696 (make_pass_chkp_instrumentation_passes): New.
5697 (make_pass_local_optimization_passes): New.
5698 * c-family/c.opt (fcheck-pointer-bounds): New.
5699 (fchkp-check-incomplete-type): New.
5700 (fchkp-zero-input-bounds-for-main): New.
5701 (fchkp-first-field-has-own-bounds): New.
5702 (fchkp-narrow-bounds): New.
5703 (fchkp-narrow-to-innermost-array): New.
5704 (fchkp-optimize): New.
5705 (fchkp-use-fast-string-functions): New.
5706 (fchkp-use-nochk-string-functions): New.
5707 (fchkp-use-static-bounds): New.
5708 (fchkp-use-static-const-bounds): New.
5709 (fchkp-treat-zero-dynamic-size-as-infinite): New.
5710 (fchkp-check-read): New.
5711 (fchkp-check-write): New.
5712 (fchkp-store-bounds): New.
5713 (fchkp-instrument-calls): New.
5714 (fchkp-instrument-marked-only): New.
5715 (Wchkp): New.
5716 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
5717 (handle_bnd_legacy): New.
5718 (handle_bnd_instrument): New.
5719 (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
5720 and bnd_instrument. Fix documentation.
5721 (c_common_format_attribute_table): Likewsie.
5722 * toplev.c: include tree-chkp.h.
5723 (process_options): Check Pointer Bounds Checker is supported.
5724 (compile_file): Add chkp_finish_file call.
5725 * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
5726 to handle instrumentation clones properly.
5727 (propagate_constants_accross_call): Do not propagate
5728 through instrumentation thunks.
5729 * ipa-pure-const.c (propagate_pure_const): Support
5730 IPA_REF_CHKP.
5731 * ipa-inline.c (early_inliner): Check edge has summary allocated.
5732 * ipa-split.c: Include tree-chkp.h.
5733 (find_retbnd): New.
5734 (split_part_set_ssa_name_p): New.
5735 (consider_split): Do not split retbnd and retval
5736 producers.
5737 (insert_bndret_call_after): new.
5738 (split_function): Propagate Pointer Bounds Checker
5739 instrumentation marks and handle returned bounds.
5740 * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
5741 into bit field and add with_bounds field.
5742 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
5743 with_bounds field for instrumented calls.
5744 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
5745 CALL_WITH_BOUNDS_P flag for calls.
5746 * tree-ssa-ccp.c: Include tree-chkp.h.
5747 (insert_clobber_before_stack_restore): Handle
5748 BUILT_IN_CHKP_BNDRET calls.
5749 * tree-ssa-dce.c: Include tree-chkp.h.
5750 (propagate_necessity): For free call fed by alloc check
5751 bounds are also provided by the same alloc.
5752 (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
5753 used by free calls.
5754 * tree-inline.c: Include tree-chkp.h.
5755 (declare_return_variable): Add arg holding
5756 returned bounds slot. Create and initialize returned bounds var.
5757 (remap_gimple_stmt): Handle returned bounds.
5758 Return sequence of statements instead of a single statement.
5759 (insert_init_stmt): Add declaration.
5760 (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
5761 (copy_bb): Adjust to changed return type of remap_gimple_stmt.
5762 Properly handle bounds in va_arg_pack and va_arg_pack_len.
5763 (expand_call_inline): Handle returned bounds. Add bounds copy
5764 for generated mem to mem assignments.
5765 * tree-inline.h (copy_body_data): Add fields retbnd and
5766 assign_stmts.
5767 * value-prof.c: Include tree-chkp.h.
5768 (gimple_ic): Support returned bounds.
5769 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
5770 with "chkp ctor" and "bnd_legacy" attributes.
5771 (symtab_remove_unreachable_nodes): Keep initial values for
5772 pointer bounds to be used for checks eliminations.
5773 (process_references): Handle IPA_REF_CHKP.
5774 (walk_polymorphic_call_targets): Likewise.
5775 * ipa-visibility.c (cgraph_externally_visible_p): Mark
5776 instrumented 'main' as externally visible.
5777 (function_and_variable_visibility): Filter instrumentation
5778 thunks.
5779 * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
5780 field.
5781 (cgraph_node): Add instrumented_version, orig_decl and
5782 instrumentation_clone fields.
5783 (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
5784 (varpool_node): Add need_bounds_init field.
5785 (cgraph_local_p): New.
5786 * cgraph.c: Include tree-chkp.h.
5787 (cgraph_node::remove): Fix instrumented_version
5788 of the referenced node if any.
5789 (cgraph_node::dump): Dump instrumentation_clone and
5790 instrumented_version fields.
5791 (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
5792 references and instrumentation thunks.
5793 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
5794 all not instrumented instrumentation clones alive.
5795 (cgraph_redirect_edge_call_stmt_to_callee): Support
5796 returned bounds.
5797 * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
5798 reference.
5799 (cgraph_rebuild_references): Likewise.
5800 * cgraphunit.c: Include tree-chkp.h.
5801 (assemble_thunks_and_aliases): Skip thunks calling instrumneted
5802 function version.
5803 (varpool_finalize_decl): Register statically initialized decls
5804 in Pointer Bounds Checker.
5805 (walk_polymorphic_call_targets): Do not mark generated call to
5806 __builtin_unreachable as with_bounds.
5807 (output_weakrefs): If there are both instrumented and original
5808 versions, output only one of them.
5809 (cgraph_node::expand_thunk): Set with_bounds flag
5810 for created call statement.
5811 * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
5812 (ipa_ref): increase size of use field.
5813 * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
5814 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
5815 (ctor_for_folding): Do not fold constant bounds vars.
5816 * lto-streamer.h (LTO_minor_version): Change minor version from
5817 0 to 1.
5818 * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
5819 pointer bounds.
5820 (lto_output_node): Output instrumentation_clone,
5821 thunk.add_pointer_bounds_args and orig_decl field.
5822 (lto_output_ref): Adjust to new ipa_ref::use field size.
5823 (input_overwrite_node): Read instrumentation_clone field.
5824 (input_node): Read thunk.add_pointer_bounds_args and orig_decl
5825 fields.
5826 (input_ref): Adjust to new ipa_ref::use field size.
5827 (input_cgraph_1): Compute instrumented_version fields and restore
5828 IDENTIFIER_TRANSPARENT_ALIAS chains.
5829 (lto_output_varpool_node): Output
5830 need_bounds_init value.
5831 (input_varpool_node): Read need_bounds_init value.
5832 * lto-partition.c (add_symbol_to_partition_1): Keep original
5833 and instrumented versions together.
5834 (privatize_symbol_name): Restore transparent alias chain if required.
5835 (add_references_to_partition): Add references to pointer bounds vars.
5836 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
5837 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
5838 (gen_type_die_with_usage): Skip pointer bounds.
5839 (dwarf2out_global_decl): Likewise.
5840 (is_base_type): Support POINTER_BOUNDS_TYPE.
5841 (gen_formal_types_die): Skip pointer bounds.
5842 (gen_decl_die): Likewise.
5843 * var-tracking.c (vt_add_function_parameters): Skip
5844 bounds parameters.
5845 * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
5846 thunk still exists.
5847 (sem_variable::merge): Reset need_bounds_init flag.
5848 * doc/extend.texi: Document Pointer Bounds Checker built-in functions
5849 and attributes.
5850 * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
5851 (TARGET_STORE_BOUNDS_FOR_ARG): New.
5852 (TARGET_LOAD_RETURNED_BOUNDS): New.
5853 (TARGET_STORE_RETURNED_BOUNDS): New.
5854 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
5855 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
5856 (TARGET_BUILTIN_CHKP_FUNCTION): New.
5857 (TARGET_CHKP_BOUND_TYPE): New.
5858 (TARGET_CHKP_BOUND_MODE): New.
5859 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
5860 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
5861 * doc/tm.texi: Regenerated.
5862 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
5863 (BND32mode): New.
5864 (BND64mode): New.
5865 * doc/invoke.texi (-mmpx): New.
5866 (-mno-mpx): New.
5867 (chkp-max-ctor-size): New.
5868 * config/i386/constraints.md (w): New.
5869 (Ti): New.
5870 (Tb): New.
5871 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
5872 * config/i386/i386-modes.def (BND32): New.
5873 (BND64): New.
5874 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
5875 * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
5876 (regclass_map): Add bound registers.
5877 (dbx_register_map): Likewise.
5878 (dbx64_register_map): Likewise.
5879 (svr4_dbx_register_map): Likewise.
5880 (isa_opts): Add -mmpx.
5881 (PTA_MPX): New.
5882 (ix86_option_override_internal): Support MPX ISA.
5883 (ix86_conditional_register_usage): Support bound registers.
5884 (ix86_code_end): Add MPX bnd prefix.
5885 (output_set_got): Likewise.
5886 (print_reg): Avoid prefixes for bound registers.
5887 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
5888 (ix86_print_operand_punct_valid_p): Likewise.
5889 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
5890 UNSPEC_BNDLDX_ADDR.
5891 (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
5892 (ix86_class_likely_spilled_p): Add bound regs support.
5893 (ix86_hard_regno_mode_ok): Likewise.
5894 (x86_order_regs_for_local_alloc): Likewise.
5895 (ix86_bnd_prefixed_insn_p): New.
5896 (ix86_builtins): Add
5897 IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
5898 IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
5899 IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
5900 IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
5901 IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
5902 IX86_BUILTIN_BNDUPPER.
5903 (builtin_isa): Add leaf_p and nothrow_p fields.
5904 (def_builtin): Initialize leaf_p and nothrow_p.
5905 (ix86_add_new_builtins): Handle leaf_p and nothrow_p
5906 flags.
5907 (bdesc_mpx): New.
5908 (bdesc_mpx_const): New.
5909 (ix86_init_mpx_builtins): New.
5910 (ix86_init_builtins): Call ix86_init_mpx_builtins.
5911 (ix86_emit_cmove): New.
5912 (ix86_emit_move_max): New.
5913 (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
5914 IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
5915 IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
5916 IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
5917 IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
5918 IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
5919 (ix86_function_value_bounds): New.
5920 (ix86_builtin_mpx_function): New.
5921 (ix86_get_arg_address_for_bt): New.
5922 (ix86_load_bounds): New.
5923 (ix86_store_bounds): New.
5924 (ix86_load_returned_bounds): New.
5925 (ix86_store_returned_bounds): New.
5926 (ix86_mpx_bound_mode): New.
5927 (ix86_make_bounds_constant): New.
5928 (ix86_initialize_bounds):
5929 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
5930 (TARGET_STORE_BOUNDS_FOR_ARG): New.
5931 (TARGET_LOAD_RETURNED_BOUNDS): New.
5932 (TARGET_STORE_RETURNED_BOUNDS): New.
5933 (TARGET_CHKP_BOUND_MODE): New.
5934 (TARGET_BUILTIN_CHKP_FUNCTION): New.
5935 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
5936 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
5937 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
5938 (ix86_option_override_internal): Do not
5939 support x32 with MPX.
5940 (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
5941 and force_bnd_pass.
5942 (function_arg_advance_32): Return number of used integer
5943 registers.
5944 (function_arg_advance_64): Likewise.
5945 (function_arg_advance_ms_64): Likewise.
5946 (ix86_function_arg_advance): Handle pointer bounds.
5947 (ix86_function_arg): Likewise.
5948 (ix86_function_value_regno_p): Mark fisrt bounds registers as
5949 possible function value.
5950 (ix86_function_value_1): Handle pointer bounds type/mode
5951 (ix86_return_in_memory): Likewise.
5952 (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
5953 (ix86_expand_call): Generate returned bounds.
5954 (ix86_setup_incoming_vararg_bounds): New.
5955 (ix86_va_start): Initialize bounds for pointers in va_list.
5956 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
5957 * config/i386/i386.h (TARGET_MPX): New.
5958 (TARGET_MPX_P): New.
5959 (FIRST_PSEUDO_REGISTER): Fix to new value.
5960 (FIXED_REGISTERS): Add bound registers.
5961 (CALL_USED_REGISTERS): Likewise.
5962 (REG_ALLOC_ORDER): Likewise.
5963 (HARD_REGNO_NREGS): Likewise.
5964 (VALID_BND_REG_MODE): New.
5965 (FIRST_BND_REG): New.
5966 (LAST_BND_REG): New.
5967 (reg_class): Add BND_REGS.
5968 (REG_CLASS_NAMES): Likewise.
5969 (REG_CLASS_CONTENTS): Likewise.
5970 (BND_REGNO_P): New.
5971 (ANY_BND_REG_P): New.
5972 (BNDmode): New.
5973 (HI_REGISTER_NAMES): Add bound registers.
5974 (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
5975 stdarg fields.
5976 * config/i386/i386.md (UNSPEC_BNDMK): New.
5977 (UNSPEC_BNDMK_ADDR): New.
5978 (UNSPEC_BNDSTX): New.
5979 (UNSPEC_BNDLDX): New.
5980 (UNSPEC_BNDLDX_ADDR): New.
5981 (UNSPEC_BNDCL): New.
5982 (UNSPEC_BNDCU): New.
5983 (UNSPEC_BNDCN): New.
5984 (UNSPEC_MPX_FENCE): New.
5985 (UNSPEC_SIZEOF): New.
5986 (BND0_REG): New.
5987 (BND1_REG): New.
5988 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
5989 (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
5990 (prefix_rep): Check for bnd prefix.
5991 (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
5992 (length_nobnd): New.
5993 (length): Use length_nobnd when specified.
5994 (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
5995 (BND): New.
5996 (bnd_ptr): New.
5997 (BNDCHECK): New.
5998 (bndcheck): New.
5999 (*jcc_1): Add MPX bnd prefix.
6000 (*jcc_2): Likewise.
6001 (jump): Likewise.
6002 (*indirect_jump): Likewise.
6003 (*tablejump_1): Likewise.
6004 (simple_return_internal): Likewise.
6005 (simple_return_internal_long): Likewise.
6006 (simple_return_pop_internal): Likewise.
6007 (simple_return_indirect_internal): Likewise.
6008 (<mode>_mk): New.
6009 (*<mode>_mk): New.
6010 (mov<mode>): New.
6011 (*mov<mode>_internal_mpx): New.
6012 (<mode>_<bndcheck>): New.
6013 (*<mode>_<bndcheck>): New.
6014 (<mode>_ldx): New.
6015 (*<mode>_ldx): New.
6016 (<mode>_stx): New.
6017 (*<mode>_stx): New.
6018 move_size_reloc_<mode>): New.
6019 * config/i386/predicates.md (address_mpx_no_base_operand): New.
6020 (address_mpx_no_index_operand): New.
6021 (bnd_mem_operator): New.
6022 (symbol_operand): New.
6023 (x86_64_immediate_size_operand): New.
6024 * config/i386/i386.opt (mmpx): New.
6025 * config/i386/i386-builtin-types.def (BND): New.
6026 (ULONG): New.
6027 (BND_FTYPE_PCVOID_ULONG): New.
6028 (VOID_FTYPE_BND_PCVOID): New.
6029 (VOID_FTYPE_PCVOID_PCVOID_BND): New.
6030 (BND_FTYPE_PCVOID_PCVOID): New.
6031 (BND_FTYPE_PCVOID): New.
6032 (BND_FTYPE_BND_BND): New.
6033 (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
6034 (PVOID_FTYPE_PCVOID_BND_ULONG): New.
6035 (ULONG_FTYPE_VOID): New.
6036 (PVOID_FTYPE_BND): New.
6037
6038 2014-11-05 Bernd Schmidt <bernds@codesourcery.com>
6039
6040 * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
6041 pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
6042 pass_cleanup_barriers, pass_delay_slots,
6043 pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
6044 pass_shorten_branches, pass_est_nothrow_function_flags,
6045 pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
6046 into pass_late_compilation.
6047 (pass_late_compilation): Add.
6048 * passes.c (pass_data_late_compilation, pass_late_compilation,
6049 make_pass_late_compilation): New.
6050 * timevar.def (TV_LATE_COMPILATION): New.
6051
6052 * target.def (omit_struct_return_reg): New data hook.
6053 * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
6054 * doc/tm.texi: Regenerate.
6055 * function.c (expand_function_end): Use it.
6056
6057 * target.def (no_register_allocation): New data hook.
6058 * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
6059 * doc/tm.texi: Regenerate.
6060 * ira.c (gate_ira): New function.
6061 (pass_data_ira): Set has_gate.
6062 (pass_ira): Add a gate function.
6063 (pass_data_reload): Likewise.
6064 (pass_reload): Add a gate function.
6065 (pass_ira): Use it.
6066 * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
6067 no register allocation happens on the target and return.
6068 * final.c (alter_subreg): Ensure register is not a pseudo before
6069 calling simplify_subreg.
6070 (output_operand): Assert that x isn't a pseudo only if doing
6071 register allocation.
6072
6073 * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
6074 global vars.
6075
6076 * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
6077 sorry if necessary.
6078
6079 2014-11-05 Alex Velenko <Alex.Velenko@arm.com>
6080
6081 * simplify-rtx.c (simplify_binary_operation_1): Div check added.
6082 * rtl.h (SUBREG_P): New macro added.
6083
6084 2014-11-05 Tejas Belagod <tejas.belagod@arm.com>
6085
6086 * config/aarch64/aarch64-builtins.c
6087 (aarch64_build_scalar_type): Remove.
6088 (aarch64_scalar_builtin_types, aarch64_simd_type,
6089 aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
6090 aarch64_mangle_builtin_vector_type,
6091 aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
6092 aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
6093 aarch64_init_simd_builtin_types,
6094 aarch64_init_simd_builtin_scalar_types): New.
6095 (aarch64_init_simd_builtins): Refactor.
6096 (aarch64_init_crc32_builtins): Fixup with qualifier.
6097 * config/aarch64/aarch64-protos.h
6098 (aarch64_mangle_builtin_type): Export.
6099 * config/aarch64/aarch64-simd-builtin-types.def: New.
6100 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
6101 (aarch64_mangle_type): Refactor.
6102 * config/aarch64/arm_neon.h: Declare vector types based on
6103 internal types.
6104 * config/aarch64/t-aarch64: Update dependency.
6105
6106 2014-11-04 Pat Haugen <pthaugen@us.ibm.com>
6107
6108 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
6109 atomic_update_decl): Guard declaration with #ifdef.
6110
6111 2014-11-04 Marek Polacek <polacek@redhat.com>
6112
6113 * sanopt.c (sanopt_optimize_walker): Remove unused variables.
6114
6115 2014-11-04 Marek Polacek <polacek@redhat.com>
6116
6117 * Makefile.in (OBJS): Add sanopt.o.
6118 (GTFILES): Add sanopt.c.
6119 * asan.h (asan_expand_check_ifn): Declare.
6120 * asan.c (asan_expand_check_ifn): No longer static.
6121 (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
6122 * sanopt.c: ...here. New file.
6123
6124 2014-11-04 Jiong Wang <jiong.wang@arm.com>
6125 2014-11-04 Wilco Dijkstra <wilco.dijkstra@arm.com>
6126
6127 PR target/63293
6128 * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
6129 stack adjustment.
6130
6131 2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
6132
6133 * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
6134 also verify that mode is equal to the mode of op0.
6135
6136 * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
6137 emit into a sequence instead.
6138
6139 2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6140
6141 * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
6142
6143 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
6144
6145 config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
6146 (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
6147 (reduc_smax_<mode> *2): Rename to...
6148 (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
6149 (reduc_umin_<mode> *2): Rename to...
6150 (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
6151 (reduc_umax_<mode> *2): Rename to...
6152 (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
6153
6154 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
6155
6156 config/arm/neon.md (reduc_plus_*): Rename to...
6157 (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
6158
6159 2014-11-04 Michael Collison <michael.collison@linaro.org>
6160
6161 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
6162 to support constraints for CONST_INT in atomic operations.
6163 * config/aarch64/atomics.md
6164 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
6165 (atomic_nand<mode>): Likewise.
6166 (atomic_fetch_<atomic_optab><mode>): Likewise.
6167 (atomic_fetch_nand<mode>): Likewise.
6168 (atomic_<atomic_optab>_fetch<mode>): Likewise.
6169 (atomic_nand_fetch<mode>): Likewise.
6170
6171 2014-11-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6172
6173 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
6174 of __ARM_FEATURE_IDIV.
6175
6176 2014-11-04 Marek Polacek <polacek@redhat.com>
6177
6178 * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
6179
6180 2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6181
6182 * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
6183
6184 2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com>
6185
6186 Revert:
6187 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
6188 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6189 Allow CC mode if HAVE_cbranchcc4.
6190
6191 2014-11-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
6192
6193 * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
6194 with -fdump-go-spec. Anonymous substructures are now flattened and
6195 replaced by their fields (record) or the first named, non-bitfield
6196 field (union).
6197
6198 2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
6199
6200 * input.c (expand_location_to_spelling_point): Fix typo.
6201 (expansion_point_location_if_in_system_header): Fix comment.
6202
6203 2014-11-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6204
6205 * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
6206
6207 2014-11-03 Richard Biener <rguenther@suse.de>
6208
6209 * tree-eh.c (operation_could_trap_helper_p): Handle conversions
6210 like ordinary operations.
6211 * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
6212 as NOP_EXPR.
6213
6214 2014-11-03 Joseph Myers <joseph@codesourcery.com>
6215
6216 * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
6217 macros.
6218 * configure, config.h.in: Regenerate.
6219 * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
6220 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
6221 (RS6000_GLIBC_ATOMIC_FENV): New macro.
6222 * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
6223 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
6224 (RS6000_GLIBC_ATOMIC_FENV): New macro.
6225 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
6226 (atomic_update_decl): New static variables.
6227 (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
6228 Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
6229 and __atomic_feupdateenv for soft-float and no-FPRs.
6230
6231 2014-11-03 Richard Biener <rguenther@suse.de>
6232
6233 * match.pd: Add two abs patterns. Announce tree_expr_nonnegative_p.
6234 Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
6235 * fold-const.c (fold_unary_loc): Remove them here.
6236 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
6237 * gimple-fold.c (fold_gimple_assign): Remove now obsolete
6238 GIMPLE_UNARY_RHS case.
6239 (gimple_fold_stmt_to_constant_1): Likewise.
6240 (replace_stmt_with_simplification): Fix inverted comparison.
6241
6242 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
6243
6244 PR tree-optimization/60770
6245 * tree-into-ssa.c (rewrite_update_stmt): Return whether the
6246 statement should be removed.
6247 (maybe_register_def): Likewise. Replace clobbers with default
6248 definitions.
6249 (rewrite_dom_walker::before_dom_children): Remove statement if
6250 rewrite_update_stmt says so.
6251 * tree-ssa-live.c: Include tree-ssa.h.
6252 (set_var_live_on_entry): Do not mark undefined variables as live.
6253 (verify_live_on_entry): Do not check undefined variables.
6254 * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
6255 of partially undefined variables.
6256 * tree-ssa.c (ssa_undefined_value_p): Likewise.
6257 (execute_update_addresses_taken): Do not drop clobbers.
6258
6259 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
6260
6261 PR tree-optimization/63666
6262 * fold-const.c: Include "optabs.h".
6263 (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
6264 can_vec_perm_p permutation to one that is not.
6265
6266 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
6267
6268 * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
6269
6270 2014-11-03 Andrew Pinski <apinski@cavium.com>
6271
6272 * config/mips/mips-cpus.def (octeon3): New cpu.
6273 * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
6274 (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
6275 of the comparison no longer matches mode of the operands.
6276 (mips_issue_rate): Handle PROCESSOR_OCTEON3.
6277 * config/mips/mips.h (TARGET_OCTEON): Add Octeon3.
6278 (TARGET_OCTEON2): Likewise.
6279 (TUNE_OCTEON): Add Octeon3.
6280 * config/mips/mips.md (processor): Add octeon3.
6281 * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
6282 (octeon_arith): Add octeon3.
6283 (octeon_condmove): Remove.
6284 (octeon_condmove_o1): New reservation.
6285 (octeon_condmove_o2): New reservation.
6286 (octeon_condmove_o3_int_on_cc): New reservation.
6287 (octeon_load_o2): Add octeon3.
6288 (octeon_cop_o2): Likewise.
6289 (octeon_store): Likewise.
6290 (octeon_brj_o2): Likewise.
6291 (octeon_imul3_o2): Likewise.
6292 (octeon_imul_o2): Likewise.
6293 (octeon_mfhilo_o2): Likewise.
6294 (octeon_imadd_o2): Likewise.
6295 (octeon_idiv_o2_si): Likewise.
6296 (octeon_idiv_o2_di): Likewise.
6297 (octeon_fpu): Add to the automaton.
6298 (octeon_fpu): New cpu unit.
6299 (octeon_condmove_o2): Check for non floating point modes.
6300 (octeon_load_o2): Add prefetchx.
6301 (octeon_cop_o2): Don't check for octeon3.
6302 (octeon3_faddsubcvt): New reservation.
6303 (octeon3_fmul): Likewise.
6304 (octeon3_fmadd): Likewise.
6305 (octeon3_div_sf): Likewise.
6306 (octeon3_div_df): Likewise.
6307 (octeon3_sqrt_sf): Likewise.
6308 (octeon3_sqrt_df): Likewise.
6309 (octeon3_rsqrt_sf): Likewise.
6310 (octeon3_rsqrt_df): Likewise.
6311 (octeon3_fabsnegmov): Likewise.
6312 (octeon_fcond): Likewise.
6313 (octeon_fcondmov): Likewise.
6314 (octeon_fpmtc1): Likewise.
6315 (octeon_fpmfc1): Likewise.
6316 (octeon_fpload): Likewise.
6317 (octeon_fpstore): Likewise.
6318 * config/mips/mips-tables.opt: Regenerate.
6319 * doc/invoke.texi (-march=@var{arch}): Add octeon3.
6320
6321 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
6322
6323 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6324 Allow CC mode if HAVE_cbranchcc4.
6325
6326 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
6327
6328 * config/arc/arc.c (write_ext_corereg_1): Delete.
6329 (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
6330
6331 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
6332
6333 * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
6334 (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
6335
6336 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
6337
6338 * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
6339 (small_data_pattern_1): Delete.
6340 (small_data_pattern): Use FOR_EACH_SUBRTX.
6341
6342 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
6343
6344 * config/arc/arc.c: Include rtl-iter.h.
6345 (arc_rewrite_small_data_1): Delete.
6346 (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
6347
6348 2014-11-02 Michael Collison <michael.collison@linaro.org>
6349
6350 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
6351 to support vector modes.
6352 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
6353
6354 2014-11-01 Andrew MacLeod <amacleod@redhat,com>
6355
6356 * optabs.h: Flatten insn-codes.h to source files. Move some prototypes
6357 and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
6358 * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
6359 * optabs.c: (gen_move_insn): Move to expr.c.
6360 * expr.h: Move protypes and enums to optabs.h.
6361 * expr.c: (gen_move_insn): Relocate from optabs.c.
6362 * genemit.c (main): Include insn-codes.h.
6363 * gengtype.c (open_base_files): Include insn-codes.h.
6364 * asan.c: Include insn-codes.h.
6365 * bb-reorder.c: Ditto.
6366 * builtins.c: Ditto.
6367 * calls.c: Ditto.
6368 * cfgexpand.c: Ditto.
6369 * cilk-common.c: Ditto.
6370 * combine.c: Ditto.
6371 * dojump.c: Ditto.
6372 * dse.c: Ditto.
6373 * except.c: Ditto.
6374 * explow.c: Ditto.
6375 * expmed.c: Ditto.
6376 * function.c: Ditto.
6377 * ifcvt.c: Ditto.
6378 * internal-fn.c: Ditto.
6379 * loop-unroll.c: Ditto.
6380 * lra.c: Ditto.
6381 * modulo-sched.c: Ditto.
6382 * omp-low.c: Ditto.
6383 * postreload.c: Ditto.
6384 * ree.c: Ditto.
6385 * reload.c: Ditto.
6386 * reload1.c: Ditto.
6387 * shrink-wrap.c: Ditto.
6388 * simplify-rtx.c: Ditto.
6389 * stmt.c: Ditto.
6390 * target-globals.c: Ditto.
6391 * targhooks.c: Ditto.
6392 * toplev.c: Ditto.
6393 * tree-if-conv.c: Ditto.
6394 * tree-ssa-forwprop.c: Ditto.
6395 * tree-ssa-loop-prefetch.c: Ditto.
6396 * tree-ssa-math-opts.c: Ditto.
6397 * tree-ssa-phiopt.c: Ditto.
6398 * tree-ssa-reassoc.c: Ditto.
6399 * tree-switch-conversion.c: Ditto.
6400 * tree-vect-data-refs.c: Ditto.
6401 * tree-vect-generic.c: Ditto.
6402 * tree-vect-loop.c: Ditto.
6403 * tree-vect-patterns.c: Ditto.
6404 * tree-vect-slp.c: Ditto.
6405 * tree-vect-stmts.c: Ditto.
6406 * tree-vrp.c: Ditto.
6407 * value-prof.c: Ditto.
6408 * config/aarch64/aarch64-builtins.c: Ditto.
6409 * config/alpha/alpha.c: Ditto.
6410 * config/arm/arm.c: Ditto.
6411 * config/cris/cris.c: Ditto.
6412 * config/epiphany/epiphany.c: Ditto.
6413 * config/frv/frv.c: Ditto.
6414 * config/h8300/h8300.c: Ditto.
6415 * config/ia64/ia64.c: Ditto.
6416 * config/iq2000/iq2000.c: Ditto.
6417 * config/m32c/m32c.c: Ditto.
6418 * config/mep/mep.c: Ditto.
6419 * config/microblaze/microblaze.c: Ditto.
6420 * config/mips/mips.c: Ditto.
6421 * config/mn10300/mn10300.c: Ditto.
6422 * config/moxie/moxie.c: Ditto.
6423 * config/msp430/msp430.c: Ditto.
6424 * config/nios2/nios2.c: Ditto.
6425 * config/pa/pa.c: Ditto.
6426 * config/rl78/rl78.c: Ditto.
6427 * config/rs6000/rs6000.c: Ditto.
6428 * config/rx/rx.c: Ditto.
6429 * config/s390/s390.c: Ditto.
6430 * config/sh/sh.c: Ditto.
6431 * config/sh/sh_treg_combine.cc: Ditto.
6432 * config/spu/spu.c: Ditto.
6433 * config/stormy16/stormy16.c: Ditto.
6434 * config/tilegx/mul-tables.c: Ditto.
6435 * config/tilegx/tilegx.c: Ditto.
6436 * config/tilepro/mul-tables.c: Ditto.
6437 * config/tilepro/tilepro.c: Ditto.
6438 * config/vax/vax.c: Ditto.
6439
6440 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6441
6442 * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
6443 (CLEAR_BY_PIECES_P): Likewise.
6444 (SET_BY_PIECES_P): Likewise.
6445 (STORE_BY_PIECES_P): Likewise.
6446 * doc/tm.texi: Regenerate.
6447 * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
6448 SET_BY_PIECES_P, STORE_BY_PIECES_P.
6449 * expr.c (MOVE_BY_PIECES_P): Remove.
6450 (CLEAR_BY_PIECES_P): Likewise.
6451 (SET_BY_PIECES_P): Likewise.
6452 (STORE_BY_PIECES_P): Likewise.
6453 (can_move_by_pieces): Rewrite in terms of
6454 targetm.use_by_pieces_infrastructure_p.
6455 (emit_block_move_hints): Likewise.
6456 (can_store_by_pieces): Likewise.
6457 (store_by_pieces): Likewise.
6458 (clear_storage_hints): Likewise.
6459 (emit_push_insn): Likewise.
6460 (expand_constructor): Likewise.
6461
6462 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6463
6464 * config/aarch64/aarch64.c
6465 (aarch64_use_by_pieces_infrastructre_p): New.
6466 (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
6467 * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
6468
6469 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6470
6471 * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
6472 (STORE_BY_PIECES_P): Likewise.
6473 * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
6474 (mips_move_by_pieces_p): Rename to...
6475 (mips_use_by_pieces_infrastructure_p): ...this, use new hook
6476 parameters, use the default hook implementation as a
6477 fall-back.
6478
6479 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6480
6481 * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
6482 (sh_use_by_pieces_infrastructure_p): Likewise.
6483 * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
6484 (STORE_BY_PIECES_P): Likewise.
6485 (SET_BY_PIECES_P): Likewise.
6486
6487 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6488
6489 * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
6490 (arc_use_by_pieces_infrastructure_p): Likewise.
6491 * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
6492 (CAN_MOVE_BY_PIECES): Likewise.
6493
6494 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6495
6496 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
6497 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
6498 * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
6499 (CLEAR_BY_PIECES): Likewise.
6500 (SET_BY_PIECES): Likewise.
6501 (STORE_BY_PIECES): Likewise.
6502
6503 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
6504
6505 * target.def (use_by_pieces_infrastructure_p): New.
6506 * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
6507 is deprecated.
6508 (STORE_BY_PIECES_P): Likewise.
6509 (CLEAR_BY_PIECES_P): Likewise.
6510 (SET_BY_PIECES_P): Likewise.
6511 (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
6512 * doc/tm.texi: Regenerate.
6513 * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
6514 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
6515 (STORE_BY_PIECES_P): Likewise.
6516 (CLEAR_BY_PIECES_P): Likewise.
6517 (SET_BY_PIECES_P): Likewise.
6518 (STORE_MAX_PIECES): Move to...
6519 * defaults.h (STORE_MAX_PIECES): ...here.
6520 * targhooks.c (get_move_ratio): New.
6521 (default_use_by_pieces_infrastructure_p): Likewise.
6522 * targhooks.h (default_use_by_pieces_infrastructure_p): New.
6523 * target.h (by_pieces_operation): New.
6524
6525 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
6526
6527 PR target/63702
6528 * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
6529 assignment to 'nargs' variable.
6530
6531 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
6532
6533 PR target/63620
6534 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
6535 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
6536 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
6537 be reloaded through memory.
6538 (*pushxf): Ditto.
6539 (*pushdf): Ditto.
6540
6541 2014-10-31 Jakub Jelinek <jakub@redhat.com>
6542
6543 PR rtl-optimization/63659
6544 * ree.c (update_reg_equal_equiv_notes): New function.
6545 (combine_set_extension, transform_ifelse): Use it.
6546
6547 2014-10-31 Jeff Law <law@redhat.com>
6548
6549 * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
6550 and Jonny Grant (collect2).
6551
6552 2014-10-31 Richard Biener <rguenther@suse.de>
6553
6554 * builtins.c (fold_builtin_atomic_always_lock_free): Use
6555 CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
6556 approprate.
6557 (fold_builtin_expect): Likewise.
6558 (integer_valued_real_p): Likewise.
6559 * cfgexpand.c (expand_debug_expr): Likewise.
6560 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
6561 (find_foldable_builtin_expect): Likewise.
6562 * trans-mem.c (thread_private_new_memory): Likewise.
6563 * tree-affine.c (aff_combination_expand): Likewise.
6564 * tree-data-ref.c (initialize_matrix_A): Likewise.
6565 * tree-inline.c (copy_bb): Likewise.
6566 * tree-pretty-print.c (dump_function_name): Likewise.
6567 (print_call_name): Likewise.
6568 * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
6569 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
6570 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
6571 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
6572 (vect_recog_widen_mult_pattern): Likewise.
6573 (vect_operation_fits_smaller_type): Likewise.
6574 * tree-vrp.c (find_assert_locations_1): Likewise.
6575 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
6576 converts to NOP_EXPR.
6577
6578 2014-10-31 Richard Biener <rguenther@suse.de>
6579
6580 * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
6581 CONVERT_EXPRs in generated code.
6582 (dt_simplify::gen): Likewise.
6583
6584 2014-10-31 Evgeny Stupachenko <evstupac@gmail.com>
6585
6586 PR target/63534
6587 * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
6588 REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
6589 (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
6590 using mcount in 32bit PIC mode.
6591 (ix86_elim_entry_set_got): New.
6592 (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
6593 in PROLOGUE, delete initial if possible.
6594
6595 2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
6596
6597 * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
6598 (want_inline_function_to_all_callers_p): Fix formatting and simplify.
6599
6600 2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
6601
6602 PR tree-optimization/63259
6603 * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
6604 rotation left if it is a 16 bit byte swap.
6605 (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
6606 and RROTATE_EXPR statements if it is a byte rotation.
6607
6608 2014-10-31 Jakub Jelinek <jakub@redhat.com>
6609
6610 PR sanitizer/63697
6611 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
6612 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
6613 instead of vr0.min - vr1.min and vr0.max - vr1.max.
6614
6615 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com>
6616
6617 PR ipa/63696
6618 * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
6619 alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
6620
6621 2014-10-30 Felix Yang <felix.yang@huawei.com>
6622
6623 * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
6624 * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
6625 (xtensa_reorg, xtensa_reorg_loops): New.
6626 (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
6627 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
6628 (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
6629 (xtensa_doloop_hooks): Define.
6630 * config/xtensa/xtensa.md (doloop_end, loop_end): New
6631 (zero_cost_loop_start): Rewritten.
6632 (zero_cost_loop_end): Likewise.
6633
6634 2014-10-30 Steve Ellcey <sellcey@imgtec.com>
6635
6636 * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
6637
6638 2014-10-30 Richard Biener <rguenther@suse.de>
6639
6640 * genmatch.c: Remove <map>, <utility> and <string> includes.
6641 Include ggc.h and hash-map.h.
6642 (ggc_internal_cleared_alloc): Provide stub definition.
6643 (ggc_free): Likewise.
6644 (struct capture_id_map_hasher): New traits for hash_map.
6645 (cid_map_t): New typedef.
6646 (everywhere else): Replace std::map use with cid_map_t.
6647 * hash-map.h (hash_map::elements): New member function.
6648 * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
6649 hash-map.h and $(GGC_H) as dependency.
6650
6651 2014-10-30 Richard Biener <rguenther@suse.de>
6652
6653 * genmatch.c (capture_info::walk_c_expr): Ignore capture
6654 uses inside TREE_TYPE ().
6655 * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
6656 (find_candidates_dom_walker::before_dom_children): Likewise.
6657 (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
6658 (replace_profitable_candidates): Likewise.
6659 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
6660 CONVERT_EXPR_CODE_P to CONVERT_EXPR.
6661 * convert.c (convert_to_integer): Use CASE_CONVERT.
6662
6663 2014-10-30 Richard Biener <rguenther@suse.de>
6664
6665 * match.pd: Implement more patterns that simplify to a single value.
6666 * fold-const.c (fold_binary_loc): Remove them here.
6667 * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
6668 (fwprop_ssa_val): Remove restriction on single uses.
6669
6670 2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6671
6672 * config/avr/driver-avr.c (avr_set_current_device): Remove.
6673
6674 2014-10-30 Martin Liska <mliska@suse.cz>
6675
6676 PR ipa/63574
6677 PR ipa/63664
6678 * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
6679 (func_checker::compare_gimple_label): Simlified comparison introduced.
6680 * ipa-icf-gimple.h: Missing comment added.
6681
6682 2014-10-30 Jeff Law <law@redhat.com>
6683
6684 * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
6685 argument from rtx to rtx_insn *.
6686 (compute_movmem_length, compute_clrmem_length): Likewise.
6687 (copy_fp_args, length_fp_args): Likewise.
6688 * config/pa/pa.c (legitimize_pic_address): Promote local variable
6689 "insn" from rtx to rtx_insn *.
6690 (legitimize_tls_address, pa_emit_move_sequence): Likewise.
6691 (pa_output_block_move, store_reg, store_reg_modify): Likewise.
6692 (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
6693 (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
6694 (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
6695 (compute_movmem_length, compute_clrmem_length): Likewise.
6696 (copy_fp-args, length_fp_args): Likewise.
6697
6698 2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6699
6700 * config/arm/arm.h (MACHMODE): Treat machine_mode as a
6701 scalar typedef.
6702 (CUMULATIVE_ARGS): Guard against target includes.
6703 (machine_function): Likewise.
6704
6705 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6706
6707 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
6708 recog state after aarch64_prev_real_insn call.
6709
6710 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6711
6712 * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
6713
6714 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6715
6716 * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
6717 (struct machine_function): Gate definition on
6718 !defined(USED_FOR_TARGET).
6719
6720 2014-10-29 DJ Delorie <dj@redhat.com>
6721
6722 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
6723
6724 2014-10-29 Martin Liska <mliska@suse.cz>
6725
6726 PR ipa/63587
6727 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
6728 to local declarations.
6729 * function.c (add_local_decl): Implementation moved from header
6730 file, assert introduced for tree type.
6731 * function.h: Likewise.
6732
6733 2014-10-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
6734
6735 * godump.c (go_format_type): Represent "float _Complex" and
6736 "double _Complex" as complex64 or complex128 in Go, as appropriate.
6737
6738 2014-10-29 Richard Biener <rguenther@suse.de>
6739
6740 * match.pd: Implement a first set of conversion patterns.
6741 * fold-const.c (fold_unary_loc): Remove them here.
6742 * tree-ssa-forwprop.c (simplify_vce): Remove.
6743 (pass_forwprop::execute): Do not call simplify_vce.
6744
6745 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
6746
6747 * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
6748 builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
6749 cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
6750 config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
6751 config/aarch64/aarch64.c, config/aarch64/aarch64.h,
6752 config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
6753 config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
6754 config/arc/arc.h, config/arc/predicates.md,
6755 config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
6756 config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
6757 config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
6758 config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
6759 config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
6760 config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
6761 config/cr16/cr16-protos.h, config/cr16/cr16.c,
6762 config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
6763 config/darwin-protos.h, config/darwin.c,
6764 config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
6765 config/epiphany/epiphany.md, config/fr30/fr30.c,
6766 config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
6767 config/h8300/h8300-protos.h, config/h8300/h8300.c,
6768 config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
6769 config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
6770 config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
6771 config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
6772 config/iq2000/iq2000.c, config/iq2000/iq2000.md,
6773 config/lm32/lm32-protos.h, config/lm32/lm32.c,
6774 config/m32c/m32c-protos.h, config/m32c/m32c.c,
6775 config/m32r/m32r-protos.h, config/m32r/m32r.c,
6776 config/m68k/m68k-protos.h, config/m68k/m68k.c,
6777 config/mcore/mcore-protos.h, config/mcore/mcore.c,
6778 config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
6779 config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
6780 config/mips/mips-protos.h, config/mips/mips.c,
6781 config/mmix/mmix-protos.h, config/mmix/mmix.c,
6782 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
6783 config/moxie/moxie.c, config/msp430/msp430-protos.h,
6784 config/msp430/msp430.c, config/nds32/nds32-cost.c,
6785 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
6786 config/nds32/nds32-protos.h, config/nds32/nds32.c,
6787 config/nios2/nios2-protos.h, config/nios2/nios2.c,
6788 config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
6789 config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
6790 config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
6791 config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6792 config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
6793 config/s390/predicates.md, config/s390/s390-protos.h,
6794 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
6795 config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
6796 config/sh/sh.md, config/sparc/predicates.md,
6797 config/sparc/sparc-protos.h, config/sparc/sparc.c,
6798 config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
6799 config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
6800 config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
6801 config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
6802 config/tilepro/tilepro.c, config/v850/v850-protos.h,
6803 config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
6804 config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
6805 config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
6806 dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
6807 doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
6808 dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
6809 except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
6810 fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
6811 fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
6812 genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
6813 graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
6814 internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
6815 ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
6816 libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
6817 loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
6818 lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
6819 lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
6820 output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
6821 recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
6822 regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
6823 rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
6824 sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
6825 simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
6826 targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
6827 tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
6828 tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
6829 tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
6830 tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
6831 tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
6832 tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
6833 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
6834 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
6835 tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
6836 var-tracking.c, varasm.c: Remove redundant enum from
6837 machine_mode.
6838 * gengtype.c (main): Treat machine_mode as a scalar typedef.
6839 * genmodes.c (emit_insn_modes_h): Hide inline functions if
6840 USED_FOR_TARGET.
6841
6842 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
6843
6844 PR rtl-optimization/63340 (part 2)
6845 * rtl.h (invalid_mode_change_p): Delete.
6846 (valid_mode_changes_for_regno): New function.
6847 * reginfo.c (invalid_mode_change_p): Delete.
6848 (valid_mode_changes_for_regno): New function.
6849 * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
6850 classes to registers that are allowed by valid_mode_changes_for_regno.
6851 (setup_regno_cost_classes_by_mode): Likewise.
6852 (print_allocno_costs): Remove invalid_mode_change_p test.
6853 (print_pseudo_costs, find_costs_and_classes): Likewise.
6854
6855 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
6856
6857 PR rtl-optimization/63340 (part 1)
6858 * ira-costs.c (all_cost_classes): New variable.
6859 (complete_cost_classes): New function, split out from...
6860 (setup_cost_classes): ...here.
6861 (initiate_regno_cost_classes): Set up all_cost_classes.
6862 (restrict_cost_classes): New function.
6863 (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
6864 registers that are valid for the register's mode.
6865 (setup_regno_cost_classes_by_mode): Model the mode cache as a
6866 restriction of all_cost_classes to a particular mode.
6867 (print_allocno_costs): Remove contains_reg_of_mode check.
6868 (print_pseudo_costs, find_costs_and_classes): Likewise.
6869
6870 2014-10-29 Richard Biener <rguenther@suse.de>
6871
6872 PR tree-optimization/63666
6873 * tree-vect-slp.c (vect_get_mask_element): Properly handle
6874 accessing out-of-bound elements.
6875
6876 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
6877 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6878 Anna Tikhonova <anna.tikhonova@intel.com>
6879 Ilya Tocar <ilya.tocar@intel.com>
6880 Andrey Turetskiy <andrey.turetskiy@intel.com>
6881 Ilya Verbin <ilya.verbin@intel.com>
6882 Kirill Yukhin <kirill.yukhin@intel.com>
6883 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6884
6885 * config/i386/i386.md
6886 (movhi_internal): Always detect maskmov.
6887 (movqi_internal): Fix target check.
6888
6889 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
6890 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6891 Anna Tikhonova <anna.tikhonova@intel.com>
6892 Ilya Tocar <ilya.tocar@intel.com>
6893 Andrey Turetskiy <andrey.turetskiy@intel.com>
6894 Ilya Verbin <ilya.verbin@intel.com>
6895 Kirill Yukhin <kirill.yukhin@intel.com>
6896 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6897
6898 * config/i386/avx512bwintrin.h: Add new intrinsics.
6899 * config/i386/avx512vlbwintrin.h: Ditto.
6900 * config/i386/avx512vlintrin.h: Ditto.
6901
6902 2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
6903
6904 * godump.c (precision_to_units): New helper function.
6905 (go_append_artificial_name): Ditto.
6906 (go_append_decl_name): Ditto.
6907 (go_append_bitfield): Ditto.
6908 (go_get_uinttype_for_precision): Ditto.
6909 (go_append_padding): Ditto.
6910 (go_force_record_alignment): Ditto.
6911 (go_format_type): Represent unions with an array of uints of the size
6912 of the alignment in go. This fixes the 'random' size of the union's
6913 representation using just the first field.
6914 (go_format_type): Add argument that indicates whether a record is
6915 nested (used for generation of artificial go names).
6916 (go_output_fndecl): Adapt to new go_format_type signature.
6917 (go_output_typedef): Ditto.
6918 (go_output_var): Ditto.
6919 (go_output_var): Prefer to output type as alias (typedef).
6920 (go_format_type): Bitfields in records are simulated as arrays of bytes
6921 in go.
6922
6923 * godump.c (go_format_type): Fix handling of arrays with zero elements.
6924
6925 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
6926
6927 * cgraph.h: Flatten. Remove all include files.
6928 (symbol_table::initialize): Move to cgraph.c.
6929 * cgraph.c: Adjust include files.
6930 (symbol_table::initialize): Relocate from cgraph.h.
6931 * gengtype.c (open_base_files): Adjust include files.
6932 * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
6933 included files.
6934 * ipa-inline.h: Remove all include files.
6935 * ipa-prop.h: Ditto.
6936 * ipa-reference.h: Ditto.
6937 * ipa-utils.h: Ditto:
6938 * lto-streamer.h: Remove cgraph.h from include list.
6939 * asan.c: Adjust include files.
6940 * auto-profile.c: Ditto.
6941 * bb-reorder.c: Ditto.
6942 * calls.c: Ditto.
6943 * cfgexpand.c: Ditto.
6944 * cgraphbuild.c: Ditto.
6945 * cgraphclones.c: Ditto.
6946 * cgraphunit.c: Ditto.
6947 * combine.c: Ditto.
6948 * coverage.c: Ditto.
6949 * data-streamer.c: Ditto.
6950 * data-streamer-in.c: Ditto.
6951 * data-streamer-out.c: Ditto.
6952 * dbxout.c: Ditto.
6953 * dwarf2out.c: Ditto.
6954 * except.c: Ditto.
6955 * expr.c: Ditto.
6956 * final.c: Ditto.
6957 * fold-const.c: Ditto.
6958 * ggc-page.c: Ditto.
6959 * gimple-fold.c: Ditto.
6960 * gimple-iterator.c: Ditto.
6961 * gimple-pretty-print.c: Ditto.
6962 * gimple-streamer-in.c: Ditto.
6963 * gimple-streamer-out.c: Ditto.
6964 * gimplify.c: Ditto.
6965 * ipa.c: Ditto.
6966 * ipa-comdats.c: Ditto.
6967 * ipa-cp.c: Ditto.
6968 * ipa-devirt.c: Ditto.
6969 * ipa-icf.c: Ditto.
6970 * ipa-icf-gimple.c: Ditto.
6971 * ipa-inline-analysis.c: Ditto.
6972 * ipa-inline.c: Ditto.
6973 * ipa-inline-transform.c: Ditto.
6974 * ipa-polymorphic-call.c: Ditto.
6975 * ipa-profile.c: Ditto.
6976 * ipa-prop.c: Ditto.
6977 * ipa-pure-const.c: Ditto.
6978 * ipa-ref.c: Ditto.
6979 * ipa-reference.c: Ditto.
6980 * ipa-split.c: Ditto.
6981 * ipa-utils.c: Ditto.
6982 * ipa-visibility.c: Ditto.
6983 * langhooks.c: Ditto.
6984 * lto-cgraph.c: Ditto.
6985 * lto-compress.c: Ditto.
6986 * lto-opts.c: Ditto.
6987 * lto-section-in.c: Ditto.
6988 * lto-section-out.c: Ditto.
6989 * lto-streamer.c: Ditto.
6990 * lto-streamer-in.c: Ditto.
6991 * lto-streamer-out.c: Ditto.
6992 * omp-low.c: Ditto.
6993 * opts-global.c: Ditto.
6994 * passes.c: Ditto.
6995 * predict.c: Ditto.
6996 * print-tree.c: Ditto.
6997 * profile.c: Ditto.
6998 * ree.c: Ditto.
6999 * stor-layout.c: Ditto.
7000 * symtab.c: Ditto.
7001 * toplev.c: Ditto.
7002 * trans-mem.c: Ditto.
7003 * tree.c: Ditto.
7004 * tree-cfg.c: Ditto.
7005 * tree-eh.c: Ditto.
7006 * tree-emutls.c: Ditto.
7007 * tree-inline.c: Ditto.
7008 * tree-nested.c: Ditto.
7009 * tree-pretty-print.c: Ditto.
7010 * tree-profile.c: Ditto.
7011 * tree-sra.c: Ditto.
7012 * tree-ssa-alias.c: Ditto.
7013 * tree-ssa-loop-ivcanon.c: Ditto.
7014 * tree-ssa-loop-ivopts.c: Ditto.
7015 * tree-ssa-pre.c: Ditto.
7016 * tree-ssa-structalias.c: Ditto.
7017 * tree-streamer.c: Ditto.
7018 * tree-streamer-in.c: Ditto.
7019 * tree-streamer-out.c: Ditto.
7020 * tree-switch-conversion.c: Ditto.
7021 * tree-tailcall.c: Ditto.
7022 * tree-vect-data-refs.c: Ditto.
7023 * tree-vectorizer.c: Ditto.
7024 * tree-vect-stmts.c: Ditto.
7025 * tsan.c: Ditto.
7026 * ubsan.c: Ditto.
7027 * value-prof.c: Ditto.
7028 * varasm.c: Ditto.
7029 * varpool.c: Ditto.
7030 * config/arm/arm.c: Ditto.
7031 * config/bfin/bfin.c: Ditto.
7032 * config/c6x/c6x.c: Ditto.
7033 * config/cris/cris.c: Ditto.
7034 * config/darwin.c: Ditto.
7035 * config/darwin-c.c: Ditto.
7036 * config/i386/i386.c: Ditto.
7037 * config/i386/winnt.c: Ditto.
7038 * config/microblaze/microblaze.c: Ditto.
7039 * config/mips/mips.c: Ditto.
7040 * config/rs6000/rs6000.c: Ditto.
7041 * config/rx/rx.c: Ditto.
7042
7043 2014-10-28 Richard Biener <rguenther@suse.de>
7044
7045 * gimple-fold.h (follow_single_use_edges): Declare.
7046 * gimple-fold.c (follow_single_use_edges): New function.
7047 (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
7048 * tree-ssa-propagate.c
7049 (substitute_and_fold_dom_walker::before_dom_children): Allow
7050 following single-use edges when folding stmts we propagated into.
7051
7052 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
7053 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7054 Anna Tikhonova <anna.tikhonova@intel.com>
7055 Ilya Tocar <ilya.tocar@intel.com>
7056 Andrey Turetskiy <andrey.turetskiy@intel.com>
7057 Ilya Verbin <ilya.verbin@intel.com>
7058 Kirill Yukhin <kirill.yukhin@intel.com>
7059 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7060
7061 * config/i386/avx512bwintrin.h: New.
7062 * config/i386/avx512dqintrin.h: Ditto.
7063 * config/i386/avx512vlbwintrin.h: Ditto.
7064 * config/i386/avx512vldqintrin.h: Ditto.
7065 * config/i386/avx512vlintrin.h: Ditto.
7066 * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
7067 avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
7068
7069 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
7070 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7071 Anna Tikhonova <anna.tikhonova@intel.com>
7072 Ilya Tocar <ilya.tocar@intel.com>
7073 Andrey Turetskiy <andrey.turetskiy@intel.com>
7074 Ilya Verbin <ilya.verbin@intel.com>
7075 Kirill Yukhin <kirill.yukhin@intel.com>
7076 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7077
7078 * config/i386/i386.c
7079 (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
7080 avx_shufpd256_mask, avx_vpermilv2df_mask.
7081
7082 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
7083 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7084 Anna Tikhonova <anna.tikhonova@intel.com>
7085 Ilya Tocar <ilya.tocar@intel.com>
7086 Andrey Turetskiy <andrey.turetskiy@intel.com>
7087 Ilya Verbin <ilya.verbin@intel.com>
7088 Kirill Yukhin <kirill.yukhin@intel.com>
7089 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7090
7091 * config/i386/i386.c
7092 (ix86_init_mmx_sse_builtins):
7093 Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
7094 __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
7095 __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
7096 __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
7097 __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
7098 __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
7099 __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
7100 __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
7101 __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
7102 __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
7103 __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
7104 __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
7105 __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
7106 __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
7107 __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
7108 __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
7109 __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
7110 __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
7111
7112 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
7113 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7114 Anna Tikhonova <anna.tikhonova@intel.com>
7115 Ilya Tocar <ilya.tocar@intel.com>
7116 Andrey Turetskiy <andrey.turetskiy@intel.com>
7117 Ilya Verbin <ilya.verbin@intel.com>
7118 Kirill Yukhin <kirill.yukhin@intel.com>
7119 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7120
7121 * config/i386/i386.c
7122 (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
7123 IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
7124 IX86_BUILTIN_GATHER3ALTDIV8SI.
7125 (ix86_expand_builtin):
7126 Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
7127 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
7128 IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
7129 IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
7130 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
7131 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
7132 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
7133 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
7134 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
7135 IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
7136 IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
7137 IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
7138 IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
7139 IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
7140 IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
7141 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
7142 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
7143 IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
7144 (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
7145 V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
7146
7147 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
7148 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7149 Anna Tikhonova <anna.tikhonova@intel.com>
7150 Ilya Tocar <ilya.tocar@intel.com>
7151 Andrey Turetskiy <andrey.turetskiy@intel.com>
7152 Ilya Verbin <ilya.verbin@intel.com>
7153 Kirill Yukhin <kirill.yukhin@intel.com>
7154 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7155
7156 * config/i386/i386-builtin-types.def
7157 (SHORT): New.
7158 (V32HI): Ditto.
7159 (V12QI): Ditto.
7160 (V14QI): Ditto.
7161 (V32SI): Ditto.
7162 (V8UDI): Ditto.
7163 (V16USI): Ditto.
7164 (V32UHI): Ditto.
7165 (PSHORT): Ditto.
7166 (PV32QI): Ditto.
7167 (PV32HI): Ditto.
7168 (PV64QI): Ditto.
7169 (PCV8HI): Ditto.
7170 (PCV16QI): Ditto.
7171 (PCV16HI): Ditto.
7172 (PCV32QI): Ditto.
7173 (PCV32HI): Ditto.
7174 (PCV64QI): Ditto.
7175 (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
7176 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
7177 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
7178 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
7179 (V16SF_FTYPE_V16HI): Ditto.
7180 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
7181 (V16SF_FTYPE_V16SI): Ditto.
7182 (V4DI_FTYPE_V4DI): Ditto.
7183 (V16SI_FTYPE_V16SF): Ditto.
7184 (V8DI_FTYPE_PV2DI): Ditto.
7185 (V8DF_FTYPE_PV2DF): Ditto.
7186 (V4DI_FTYPE_PV2DI): Ditto.
7187 (V4DF_FTYPE_PV2DF): Ditto.
7188 (V16SI_FTYPE_PV2SI): Ditto.
7189 (V16SF_FTYPE_PV2SF): Ditto.
7190 (V8SF_FTYPE_FLOAT): Ditto.
7191 (V4SF_FTYPE_FLOAT): Ditto.
7192 (V4DF_FTYPE_DOUBLE): Ditto.
7193 (V8SF_FTYPE_PV4SF): Ditto.
7194 (V8SI_FTYPE_PV4SI): Ditto.
7195 (V4SI_FTYPE_PV2SI): Ditto.
7196 (V8SF_FTYPE_PV2SF): Ditto.
7197 (V8SI_FTYPE_PV2SI): Ditto.
7198 (V16SF_FTYPE_PV8SF): Ditto.
7199 (V16SI_FTYPE_PV8SI): Ditto.
7200 (V8DI_FTYPE_V8SF): Ditto.
7201 (V4DI_FTYPE_V4SF): Ditto.
7202 (V2DI_FTYPE_V4SF): Ditto.
7203 (V64QI_FTYPE_QI): Ditto.
7204 (V32HI_FTYPE_HI): Ditto.
7205 (V16UHI_FTYPE_V16UHI): Ditto.
7206 (V32UHI_FTYPE_V32UHI): Ditto.
7207 (V2UDI_FTYPE_V2UDI): Ditto.
7208 (V4UDI_FTYPE_V4UDI): Ditto.
7209 (V8UDI_FTYPE_V8UDI): Ditto.
7210 (V4USI_FTYPE_V4USI): Ditto.
7211 (V16USI_FTYPE_V16USI): Ditto.
7212 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
7213 (V2DF_FTYPE_V8DF_INT): Ditto.
7214 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
7215 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
7216 (V8DF_FTYPE_V8DF_INT): Ditto.
7217 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
7218 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
7219 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
7220 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
7221 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
7222 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
7223 (V8DI_FTYPE_V8DI_INT): Ditto.
7224 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
7225 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
7226 (V8SF_FTYPE_V16SF_INT): Ditto.
7227 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
7228 (V64QI_FTYPE_V32HI_V32HI): Ditto.
7229 (V32HI_FTYPE_V16SI_V16SI): Ditto.
7230 (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
7231 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
7232 (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
7233 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
7234 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
7235 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
7236 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
7237 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
7238 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
7239 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
7240 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
7241 (V32HI_FTYPE_V64QI_V64QI): Ditto.
7242 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
7243 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
7244 (V32HI_FTYPE_V32HI_V32HI): Ditto.
7245 (V32HI_FTYPE_V32HI_INT): Ditto.
7246 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
7247 (V16SI_FTYPE_V32HI_V32HI): Ditto.
7248 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
7249 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
7250 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
7251 (V8SI_FTYPE_V16SI_INT): Ditto.
7252 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
7253 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
7254 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
7255 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
7256 (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
7257 (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
7258 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
7259 (V8DI_FTYPE_V16SI_V16SI): Ditto.
7260 (V8DI_FTYPE_V64QI_V64QI): Ditto.
7261 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
7262 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
7263 (V2DI_FTYPE_V8DI_INT): Ditto.
7264 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
7265 (QI_FTYPE_QI): Ditto.
7266 (SI_FTYPE_SI): Ditto.
7267 (DI_FTYPE_DI): Ditto.
7268 (HI_FTYPE_V16QI): Ditto.
7269 (SI_FTYPE_V32QI): Ditto.
7270 (DI_FTYPE_V64QI): Ditto.
7271 (QI_FTYPE_V8HI): Ditto.
7272 (HI_FTYPE_V16HI): Ditto.
7273 (SI_FTYPE_V32HI): Ditto.
7274 (QI_FTYPE_V4SI): Ditto.
7275 (QI_FTYPE_V8SI): Ditto.
7276 (HI_FTYPE_V16SI): Ditto.
7277 (QI_FTYPE_V2DI): Ditto.
7278 (QI_FTYPE_V4DI): Ditto.
7279 (QI_FTYPE_V8DI): Ditto.
7280 (V16QI_FTYPE_HI): Ditto.
7281 (V32QI_FTYPE_SI): Ditto.
7282 (V64QI_FTYPE_DI): Ditto.
7283 (V8HI_FTYPE_QI): Ditto.
7284 (V16HI_FTYPE_HI): Ditto.
7285 (V32HI_FTYPE_SI): Ditto.
7286 (V4SI_FTYPE_QI): Ditto.
7287 (V4SI_FTYPE_HI): Ditto.
7288 (V8SI_FTYPE_QI): Ditto.
7289 (V8SI_FTYPE_HI): Ditto.
7290 (V2DI_FTYPE_QI): Ditto.
7291 (V4DI_FTYPE_QI): Ditto.
7292 (QI_FTYPE_QI_QI): Ditto.
7293 (SI_FTYPE_SI_SI): Ditto.
7294 (DI_FTYPE_DI_DI): Ditto.
7295 (QI_FTYPE_QI_INT): Ditto.
7296 (SI_FTYPE_SI_INT): Ditto.
7297 (DI_FTYPE_DI_INT): Ditto.
7298 (HI_FTYPE_V16QI_V16QI): Ditto.
7299 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
7300 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
7301 (SI_FTYPE_V32QI_V32QI): Ditto.
7302 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
7303 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
7304 (DI_FTYPE_V64QI_V64QI): Ditto.
7305 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
7306 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
7307 (QI_FTYPE_V8HI_V8HI): Ditto.
7308 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
7309 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
7310 (HI_FTYPE_V16HI_V16HI): Ditto.
7311 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
7312 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
7313 (SI_FTYPE_V32HI_V32HI): Ditto.
7314 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
7315 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
7316 (QI_FTYPE_V4SI_V4SI): Ditto.
7317 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
7318 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
7319 (QI_FTYPE_V8SI_V8SI): Ditto.
7320 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
7321 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
7322 (QI_FTYPE_V2DI_V2DI): Ditto.
7323 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
7324 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
7325 (QI_FTYPE_V4DI_V4DI): Ditto.
7326 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
7327 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
7328 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
7329 (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
7330 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
7331 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
7332 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
7333 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
7334 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
7335 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
7336 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
7337 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
7338 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
7339 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
7340 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
7341 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
7342 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
7343 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
7344 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
7345 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
7346 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
7347 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
7348 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
7349 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
7350 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
7351 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
7352 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
7353 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
7354 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
7355 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
7356 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
7357 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
7358 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
7359 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
7360 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
7361 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
7362 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
7363 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
7364 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
7365 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
7366 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
7367 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
7368 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
7369 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
7370 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
7371 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
7372 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
7373 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
7374 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
7375 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
7376 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
7377 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
7378 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
7379 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
7380 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
7381 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
7382 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
7383 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
7384 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
7385 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
7386 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
7387 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
7388 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
7389 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
7390 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
7391 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
7392 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
7393 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
7394 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
7395 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
7396 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
7397 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
7398 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
7399 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
7400 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
7401 (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
7402 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
7403 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
7404 (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
7405 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
7406 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
7407 (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
7408 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
7409 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
7410 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
7411 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
7412 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
7413 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
7414 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
7415 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
7416 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
7417 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
7418 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
7419 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
7420 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
7421 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
7422 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
7423 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
7424 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
7425 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
7426 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
7427 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
7428 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
7429 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
7430 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
7431 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
7432 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
7433 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
7434 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
7435 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
7436 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
7437 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
7438 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
7439 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
7440 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
7441 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
7442 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
7443 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
7444 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
7445 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
7446 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
7447 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
7448 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
7449 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
7450 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
7451 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
7452 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
7453 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
7454 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
7455 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
7456 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
7457 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
7458 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
7459 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
7460 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
7461 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
7462 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
7463 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
7464 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
7465 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
7466 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
7467 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
7468 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
7469 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
7470 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
7471 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
7472 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
7473 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
7474 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
7475 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
7476 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
7477 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
7478 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
7479 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
7480 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
7481 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
7482 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
7483 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
7484 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
7485 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
7486 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
7487 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
7488 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
7489 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
7490 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
7491 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
7492 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
7493 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
7494 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
7495 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
7496 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
7497 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
7498 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
7499 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
7500 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
7501 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
7502 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
7503 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
7504 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
7505 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
7506 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
7507 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
7508 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
7509 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
7510 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
7511 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
7512 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
7513 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
7514 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
7515 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
7516 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
7517 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
7518 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
7519 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
7520 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
7521 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
7522 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
7523 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
7524 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
7525 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
7526 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
7527 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
7528 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
7529 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
7530 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
7531 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
7532 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
7533 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
7534 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
7535 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
7536 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
7537 (QI_FTYPE_V8DF_INT): Ditto.
7538 (QI_FTYPE_V4DF_INT): Ditto.
7539 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
7540 (QI_FTYPE_V2DF_INT): Ditto.
7541 (HI_FTYPE_V16SF_INT): Ditto.
7542 (QI_FTYPE_V8SF_INT): Ditto.
7543 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
7544 (QI_FTYPE_V4SF_INT): Ditto.
7545 (QI_FTYPE_V8DF_INT_QI): Ditto.
7546 (QI_FTYPE_V4DF_INT_QI): Ditto.
7547 (QI_FTYPE_V2DF_INT_QI): Ditto.
7548 (HI_FTYPE_V16SF_INT_HI): Ditto.
7549 (QI_FTYPE_V8SF_INT_QI): Ditto.
7550 (QI_FTYPE_V4SF_INT_QI): Ditto.
7551 (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
7552 (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
7553 (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
7554 (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
7555 (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
7556 (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
7557 (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
7558 (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
7559 (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
7560 (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
7561 (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
7562 (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
7563 (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
7564 (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
7565 (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
7566 (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
7567 (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
7568 (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
7569 (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
7570 (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
7571 (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
7572 (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
7573 (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
7574 (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
7575 (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
7576 (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
7577 (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
7578 (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
7579 (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
7580 (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
7581 (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
7582 (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
7583 (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
7584 (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
7585 (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
7586 (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
7587 (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
7588 (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
7589 (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
7590 (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
7591 (V8DI_FTYPE_V8DI_INT): Ditto.
7592 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
7593 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
7594 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
7595 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
7596 (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
7597 (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
7598 (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
7599 (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
7600 (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
7601 (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
7602 (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
7603 (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
7604 (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
7605 (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
7606 * config/i386/i386.c (ix86_builtins):
7607 Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
7608 IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
7609 IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
7610 IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
7611 IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
7612 IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
7613 IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
7614 IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
7615 IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
7616 IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
7617 IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
7618 IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
7619 IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
7620 IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
7621 IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
7622 IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
7623 IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
7624 IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
7625 IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
7626 IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
7627 IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
7628 IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
7629 IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
7630 IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
7631 IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
7632 IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
7633 IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
7634 IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
7635 IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
7636 IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
7637 IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
7638 IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
7639 IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
7640 IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
7641 IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
7642 IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
7643 IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
7644 IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
7645 IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
7646 IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
7647 IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
7648 IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
7649 IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
7650 IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
7651 IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
7652 IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
7653 IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
7654 IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
7655 IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
7656 IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
7657 IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
7658 IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
7659 IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
7660 IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
7661 IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
7662 IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
7663 IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
7664 IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
7665 IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
7666 IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
7667 IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
7668 IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
7669 IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
7670 IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
7671 IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
7672 IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
7673 IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
7674 IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
7675 IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
7676 IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
7677 IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
7678 IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
7679 IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
7680 IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
7681 IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
7682 IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
7683 IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
7684 IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
7685 IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
7686 IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
7687 IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
7688 IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
7689 IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
7690 IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
7691 IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
7692 IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
7693 IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
7694 IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
7695 IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
7696 IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
7697 IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
7698 IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
7699 IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
7700 IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
7701 IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
7702 IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
7703 IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
7704 IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
7705 IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
7706 IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
7707 IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
7708 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
7709 IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
7710 IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
7711 IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
7712 IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
7713 IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
7714 IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
7715 IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
7716 IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
7717 IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
7718 IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
7719 IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
7720 IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
7721 IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
7722 IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
7723 IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
7724 IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
7725 IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
7726 IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
7727 IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
7728 IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
7729 IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
7730 IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
7731 IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
7732 IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
7733 IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
7734 IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
7735 IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
7736 IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
7737 IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
7738 IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
7739 IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
7740 IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
7741 IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
7742 IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
7743 IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
7744 IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
7745 IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
7746 IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
7747 IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
7748 IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
7749 IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
7750 IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
7751 IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
7752 IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
7753 IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
7754 IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
7755 IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
7756 IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
7757 IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
7758 IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
7759 IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
7760 IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
7761 IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
7762 IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
7763 IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
7764 IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
7765 IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
7766 IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
7767 IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
7768 IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
7769 IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
7770 IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
7771 IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
7772 IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
7773 IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
7774 IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
7775 IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
7776 IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
7777 IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
7778 IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
7779 IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
7780 IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
7781 IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
7782 IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
7783 IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
7784 IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
7785 IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
7786 IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
7787 IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
7788 IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
7789 IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
7790 IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
7791 IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
7792 IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
7793 IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
7794 IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
7795 IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
7796 IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
7797 IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
7798 IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
7799 IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
7800 IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
7801 IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
7802 IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
7803 IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
7804 IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
7805 IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
7806 IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
7807 IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
7808 IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
7809 IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
7810 IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
7811 IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
7812 IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
7813 IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
7814 IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
7815 IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
7816 IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
7817 IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
7818 IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
7819 IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
7820 IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
7821 IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
7822 IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
7823 IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
7824 IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
7825 IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
7826 IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
7827 IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
7828 IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
7829 IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
7830 IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
7831 IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
7832 IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
7833 IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
7834 IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
7835 IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
7836 IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
7837 IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
7838 IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
7839 IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
7840 IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
7841 IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
7842 IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
7843 IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
7844 IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
7845 IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
7846 IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
7847 IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
7848 IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
7849 IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
7850 IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
7851 IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
7852 IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
7853 IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
7854 IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
7855 IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
7856 IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
7857 IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
7858 IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
7859 IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
7860 IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
7861 IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
7862 IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
7863 IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
7864 IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
7865 IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
7866 IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
7867 IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
7868 IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
7869 IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
7870 IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
7871 IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
7872 IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
7873 IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
7874 IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
7875 IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
7876 IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
7877 IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
7878 IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
7879 IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
7880 IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
7881 IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
7882 IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
7883 IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
7884 IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
7885 IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
7886 IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
7887 IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
7888 IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
7889 IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
7890 IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
7891 IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
7892 IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
7893 IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
7894 IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
7895 IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
7896 IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
7897 IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
7898 IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
7899 IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
7900 IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
7901 IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
7902 IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
7903 IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
7904 IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
7905 IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
7906 IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
7907 IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
7908 IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
7909 IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
7910 IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
7911 IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
7912 IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
7913 IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
7914 IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
7915 IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
7916 IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
7917 IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
7918 IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
7919 IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
7920 IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
7921 IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
7922 IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
7923 IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
7924 IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
7925 IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
7926 IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
7927 IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
7928 IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
7929 IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
7930 IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
7931 IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
7932 IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
7933 IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
7934 IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
7935 IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
7936 IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
7937 IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
7938 IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
7939 IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
7940 IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
7941 IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
7942 IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
7943 IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
7944 IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
7945 IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
7946 IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
7947 IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
7948 IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
7949 IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
7950 IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
7951 IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
7952 IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
7953 IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
7954 IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
7955 IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
7956 IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
7957 IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
7958 IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
7959 IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
7960 IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
7961 IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
7962 IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
7963 IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
7964 IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
7965 IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
7966 IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
7967 IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
7968 IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
7969 IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
7970 IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
7971 IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
7972 IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
7973 IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
7974 IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
7975 IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
7976 IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
7977 IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
7978 IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
7979 IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
7980 IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
7981 IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
7982 IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
7983 IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
7984 IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
7985 IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
7986 IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
7987 IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
7988 IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
7989 IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
7990 IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
7991 IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
7992 IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
7993 IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
7994 IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
7995 IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
7996 IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
7997 IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
7998 IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
7999 IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
8000 IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
8001 IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
8002 IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
8003 IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
8004 IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
8005 IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
8006 IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
8007 IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
8008 IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
8009 IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
8010 IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
8011 IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
8012 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
8013 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
8014 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
8015 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
8016 IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
8017 IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
8018 IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
8019 IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
8020 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
8021 IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
8022 IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
8023 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
8024 IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
8025 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
8026 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
8027 IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
8028 IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
8029 IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
8030 IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
8031 IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
8032 IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
8033 IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
8034 IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
8035 IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
8036 IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
8037 IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
8038 IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
8039 IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
8040 IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
8041 IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
8042 IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
8043 IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
8044 IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
8045 IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
8046 IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
8047 IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
8048 IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
8049 IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
8050 IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
8051 IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
8052 IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
8053 IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
8054 IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
8055 IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
8056 IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
8057 IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
8058 IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
8059 IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
8060 IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
8061 IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
8062 IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
8063 IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
8064 IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
8065 IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
8066 IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
8067 IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
8068 IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
8069 IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
8070 IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
8071 IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
8072 IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
8073 IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
8074 IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
8075 IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
8076 IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
8077 IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
8078 IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
8079 IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
8080 IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
8081 IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
8082 IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
8083 IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
8084 IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
8085 IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
8086 IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
8087 IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
8088 IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
8089 IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
8090 IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
8091 IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
8092 IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
8093 IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
8094 IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
8095 IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
8096 IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
8097 IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
8098 (bdesc_special_args):
8099 Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
8100 __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
8101 __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
8102 __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
8103 __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
8104 __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
8105 __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
8106 __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
8107 __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
8108 __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
8109 __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
8110 __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
8111 __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
8112 __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
8113 __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
8114 __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
8115 __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
8116 __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
8117 __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
8118 __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
8119 __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
8120 __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
8121 __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
8122 __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
8123 __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
8124 __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
8125 __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
8126 __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
8127 __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
8128 __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
8129 __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
8130 __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
8131 __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
8132 __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
8133 __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
8134 __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
8135 __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
8136 __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
8137 __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
8138 __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
8139 __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
8140 __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
8141 __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
8142 __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
8143 __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
8144 __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
8145 __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
8146 __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
8147 __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
8148 __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
8149 __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
8150 __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
8151 __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
8152 __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
8153 __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
8154 __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
8155 __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
8156 __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
8157 __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
8158 __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
8159 __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
8160 __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
8161 __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
8162 __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
8163 __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
8164 __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
8165 __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
8166 __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
8167 __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
8168 __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
8169 __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
8170 __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
8171 __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
8172 __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
8173 __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
8174 __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
8175 __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
8176 __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
8177 __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
8178 __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
8179 __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
8180 __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
8181 __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
8182 __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
8183 __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
8184 __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
8185 __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
8186 __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
8187 __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
8188 __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
8189 __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
8190 __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
8191 __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
8192 __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
8193 __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
8194 __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
8195 __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
8196 __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
8197 __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
8198 __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
8199 __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
8200 __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
8201 __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
8202 __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
8203 __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
8204 __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
8205 __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
8206 __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
8207 __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
8208 __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
8209 __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
8210 __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
8211 __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
8212 __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
8213 __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
8214 __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
8215 __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
8216 __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
8217 __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
8218 __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
8219 __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
8220 __builtin_ia32_reducesd, __builtin_ia32_reducess,
8221 __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
8222 __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
8223 __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
8224 __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
8225 __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
8226 __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
8227 __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
8228 __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
8229 __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
8230 __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
8231 __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
8232 __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
8233 __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
8234 __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
8235 __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
8236 __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
8237 __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
8238 __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
8239 __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
8240 __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
8241 __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
8242 __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
8243 __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
8244 __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
8245 __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
8246 __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
8247 __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
8248 __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
8249 __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
8250 __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
8251 __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
8252 __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
8253 __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
8254 __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
8255 __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
8256 __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
8257 __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
8258 __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
8259 __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
8260 __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
8261 __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
8262 __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
8263 __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
8264 __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
8265 __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
8266 __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
8267 __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
8268 __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
8269 __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
8270 __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
8271 __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
8272 __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
8273 __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
8274 __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
8275 __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
8276 __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
8277 __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
8278 __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
8279 __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
8280 __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
8281 __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
8282 __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
8283 __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
8284 __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
8285 __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
8286 __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
8287 __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
8288 __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
8289 __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
8290 __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
8291 __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
8292 __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
8293 __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
8294 __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
8295 __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
8296 __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
8297 __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
8298 __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
8299 __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
8300 __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
8301 __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
8302 __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
8303 __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
8304 __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
8305 __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
8306 __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
8307 __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
8308 __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
8309 __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
8310 __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
8311 __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
8312 __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
8313 __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
8314 __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
8315 __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
8316 __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
8317 __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
8318 __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
8319 __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
8320 __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
8321 __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
8322 __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
8323 __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
8324 __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
8325 __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
8326 __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
8327 __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
8328 __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
8329 __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
8330 __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
8331 __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
8332 __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
8333 __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
8334 __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
8335 __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
8336 __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
8337 __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
8338 __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
8339 __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
8340 __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
8341 __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
8342 __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
8343 __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
8344 __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
8345 __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
8346 __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
8347 __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
8348 __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
8349 __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
8350 __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
8351 __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
8352 __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
8353 __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
8354 __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
8355 __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
8356 __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
8357 __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
8358 __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
8359 __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
8360 __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
8361 __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
8362 __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
8363 __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
8364 __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
8365 __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
8366 __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
8367 __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
8368 __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
8369 __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
8370 __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
8371 __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
8372 __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
8373 __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
8374 __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
8375 __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
8376 __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
8377 __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
8378 __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
8379 __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
8380 __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
8381 __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
8382 __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
8383 __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
8384 __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
8385 __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
8386 __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
8387 __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
8388 __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
8389 __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
8390 __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
8391 __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
8392 __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
8393 __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
8394 __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
8395 __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
8396 __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
8397 __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
8398 __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
8399 __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
8400 __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
8401 __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
8402 __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
8403 __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
8404 __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
8405 __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
8406 __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
8407 __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
8408 __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
8409 __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
8410 __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
8411 __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
8412 __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
8413 __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
8414 __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
8415 __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
8416 __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
8417 __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
8418 __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
8419 __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
8420 __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
8421 __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
8422 __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
8423 __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
8424 __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
8425 __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
8426 __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
8427 __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
8428 __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
8429 __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
8430 __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
8431 __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
8432 __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
8433 __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
8434 __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
8435 __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
8436 __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
8437 __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
8438 __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
8439 __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
8440 __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
8441 __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
8442 __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
8443 __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
8444 __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
8445 __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
8446 __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
8447 __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
8448 __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
8449 __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
8450 __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
8451 __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
8452 __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
8453 __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
8454 __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
8455 __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
8456 __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
8457 __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
8458 __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
8459 __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
8460 __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
8461 __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
8462 __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
8463 __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
8464 __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
8465 __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
8466 __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
8467 __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
8468 __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
8469 __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
8470 __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
8471 __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
8472 __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
8473 __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
8474 __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
8475 __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
8476 __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
8477 __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
8478 __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
8479 __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
8480 __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
8481 __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
8482 __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
8483 __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
8484 __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
8485 __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
8486 __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
8487 __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
8488 __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
8489 __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
8490 __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
8491 __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
8492 __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
8493 __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
8494 __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
8495 __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
8496 __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
8497 __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
8498 __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
8499 __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
8500 __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
8501 __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
8502 __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
8503 __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
8504 __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
8505 __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
8506 __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
8507 __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
8508 __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
8509 __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
8510 __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
8511 __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
8512 __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
8513 __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
8514 __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
8515 __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
8516 __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
8517 __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
8518 __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
8519 __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
8520 __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
8521 __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
8522 __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
8523 __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
8524 __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
8525 __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
8526 __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
8527 __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
8528 __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
8529 __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
8530 __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
8531 __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
8532 __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
8533 __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
8534 __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
8535 __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
8536 __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
8537 __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
8538 __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
8539 __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
8540 __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
8541 __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
8542 __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
8543 __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
8544 __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
8545 __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
8546 __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
8547 __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
8548 __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
8549 __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
8550 __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
8551 __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
8552 __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
8553 __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
8554 __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
8555 __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
8556 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
8557 __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
8558 __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
8559 __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
8560 __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
8561 __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
8562 __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
8563 __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
8564 __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
8565 __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
8566 __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
8567 __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
8568 __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
8569 __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
8570 __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
8571 __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
8572 __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
8573 __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
8574 __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
8575 __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
8576 (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
8577 DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
8578 V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
8579 V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
8580 HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
8581 HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
8582 V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
8583 SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
8584 QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
8585 V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
8586 V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
8587 V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
8588 V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
8589 V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
8590 V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
8591 V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
8592 V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
8593 V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
8594 V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
8595 V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
8596 V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
8597 V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
8598 V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
8599 V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
8600 V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
8601 V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
8602 V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
8603 V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
8604 V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
8605 V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
8606 V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
8607 V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
8608 V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
8609 V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
8610 HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
8611 DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
8612 HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
8613 QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
8614 QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
8615 V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
8616 V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
8617 V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
8618 V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
8619 V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
8620 V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
8621 V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
8622 V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
8623 V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
8624 V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
8625 V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
8626 V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
8627 V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
8628 V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
8629 V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
8630 V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
8631 V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
8632 V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
8633 V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
8634 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
8635 QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
8636 HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
8637 QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
8638 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
8639 V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
8640 V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
8641 V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
8642 V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
8643 V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
8644 V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
8645 V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
8646 V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
8647 V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
8648 V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
8649 V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
8650 V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
8651 V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
8652 V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
8653 V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
8654 V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
8655 V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
8656 V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
8657 V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
8658 QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
8659 QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
8660 QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
8661 SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
8662 SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
8663 QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
8664 V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
8665 V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
8666 V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
8667 V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
8668 V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
8669 V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
8670 V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
8671 V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
8672 V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
8673 V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
8674 V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
8675 V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
8676 V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
8677 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
8678 V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
8679 V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
8680 V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
8681 V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
8682 V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
8683 V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
8684 V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
8685 V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
8686 V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
8687 V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
8688 V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
8689 VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
8690 VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
8691 VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
8692 VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
8693 VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
8694 VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
8695 VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
8696 VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
8697 VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
8698 VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
8699 VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
8700 VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
8701 V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
8702 V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
8703 V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
8704 V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
8705 V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
8706 V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
8707 V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
8708
8709 2014-10-28 Jakub Jelinek <jakub@redhat.com>
8710
8711 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
8712 type for the left shift in CASE_CONVERT case.
8713
8714 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com>
8715
8716 * asan.h (asan_intercepted_p): New function.
8717 * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
8718 hash value construction. Call iterative_hash_expr instead of explicit
8719 hash building.
8720 (asan_mem_ref_hasher::equal): Change condition.
8721 (has_mem_ref_been_instrumented): Likewise.
8722 (update_mem_ref_hash_table): Likewise.
8723 (maybe_update_mem_ref_hash_table): New function.
8724 (instrument_strlen_call): Removed.
8725 (get_mem_refs_of_builtin_call): Handle new parameter.
8726 (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
8727 of instrument_mem_region_access if intercepted_p is true.
8728 (instrument_mem_region_access): Instrument only base with len instead of
8729 base and end with 1.
8730 (build_check_stmt): Remove start_instrumented and end_instrumented
8731 parameters.
8732 (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
8733 ASAN_CHECK_END_INSTRUMENTED. Change ASAN_CHECK_LAST.
8734 (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
8735 * builtins.c (expand_builtin): Include asan.h. Don't expand string/memory
8736 builtin functions that have interceptors if ASan is enabled.
8737
8738 2014-10-28 Richard Biener <rguenther@suse.de>
8739
8740 PR middle-end/63665
8741 * fold-const.c (fold_comparison): Properly guard simplifying
8742 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
8743
8744 2014-10-28 Alan Lawrence <alan.lawrence@arm.com>
8745
8746 * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
8747 * fold-const.c (const_binop): Likewise.
8748 * cfgexpand.c (expand_debug_expr): Likewise.
8749 * tree-inline.c (estimate_operator_cost): Likewise.
8750 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
8751 * optabs.c (optab_for_tree_code): Likewise.
8752 (expand_vec_shift_expr): Likewise, update comment.
8753 * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
8754 * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
8755 * optabs.def: Remove vec_shl_optab.
8756 * doc/md.texi: Remove references to vec_shr_m.
8757
8758 2014-10-28 Yury Gribov <y.gribov@samsung.com>
8759
8760 * asan.c (report_error_func): Add noabort path.
8761 (check_func): Ditto. Formatting.
8762 (asan_expand_check_ifn): Handle noabort path.
8763 * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
8764 to default value.
8765 * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
8766 * opts.c (finish_options): Reword comment.
8767 * sanitizer.def: Add noabort ASan builtins.
8768
8769 2014-10-28 Yury Gribov <y.gribov@samsung.com>
8770
8771 * asan.c (set_asan_shadow_offset): New function.
8772 (asan_shadow_offset): Likewise.
8773 (asan_emit_stack_protection): Call asan_shadow_offset.
8774 (build_shadow_mem_access): Likewise.
8775 * asan.h (set_asan_shadow_offset): Declare.
8776 * common.opt (fasan-shadow-offset): New option.
8777 (frandom-seed): Fixed parameter name.
8778 * doc/invoke.texi (fasan-shadow-offset): Describe new option.
8779 (frandom-seed): Fixed parameter name.
8780 * opts-global.c (handle_common_deferred_options): Handle
8781 -fasan-shadow-offset.
8782 * opts.c (common_handle_option): Likewise.
8783
8784 2014-10-27 Jiong Wang <jiong.wang@arm.com>
8785
8786 PR target/63442
8787 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
8788
8789 2014-10-27 DJ Delorie <dj@redhat.com>
8790
8791 * tree.c (build_common_tree_nodes): Don't even store the
8792 __int128 types if they're not supported.
8793
8794 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8795
8796 * config/i386/i386.c (ix86_loop_memcount): Delete.
8797 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
8798
8799 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8800
8801 * config/i386/i386.c (find_constant_1): Delete.
8802 (find_constant): Use FOR_EACH_SUBRTX.
8803
8804 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8805
8806 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
8807 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
8808
8809 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8810
8811 * config/i386/i386.c: Include rtl-iter.h
8812 (ix86_check_avx256_register): Take a const_rtx and return a bool.
8813 (ix86_check_avx256_stores): Update call accordingly.
8814 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
8815 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
8816
8817 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8818
8819 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
8820 Take an rtx and return a bool.
8821 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
8822 Use FOR_EACH_SUBRTX_VAR.
8823 * config/alpha/predicates.md (some_small_symbolic_operand): Update
8824 accordingly.
8825
8826 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8827
8828 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
8829 a bool.
8830 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
8831 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
8832
8833 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8834
8835 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
8836 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
8837
8838 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8839
8840 * config/alpha/alpha.c: Include rtl-iter.h.
8841 (split_small_symbolic_operand_1): Delete.
8842 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
8843
8844 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8845
8846 * config/s390/s390.c: Include rtl-iter.h.
8847 (check_dpu): Delete.
8848 (s390_loop_unroll_adjust): Only iterate over patterns.
8849 Use FOR_EACH_SUBRTX.
8850
8851 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8852
8853 * config/spu/spu.c: Include rtl-iter.h
8854 (ea_symbol_ref): Replace with...
8855 (ea_symbol_ref_p): ...this new function.
8856 (spu_legitimate_address_p): Update call accordingly.
8857 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
8858
8859 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
8860 Tom Tromey <tromey@redhat.com>
8861
8862 * aclocal.m4, configure: Rebuild.
8863 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
8864 * configure.ac: Use GCC_ENABLE_PLUGINS.
8865 * stor-layout.c (finish_bitfield_layout): Now public. Change
8866 argument type to 'tree'.
8867 (finish_record_layout): Update.
8868 * stor-layout.h (finish_bitfield_layout): Declare.
8869
8870 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
8871
8872 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
8873 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
8874 Restore, enable for bigendian, update to use __builtin..._scal...
8875
8876 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
8877
8878 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
8879 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
8880 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
8881 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
8882
8883 * config/aarch64/aarch64-simd.md
8884 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
8885 (reduc_<maxmin_uns>_internal<mode>): ...this.
8886 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
8887 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
8888
8889 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
8890 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
8891 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
8892
8893 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
8894 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
8895 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
8896 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
8897 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
8898 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
8899 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
8900 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
8901
8902 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
8903
8904 * config/aarch64/aarch64-simd-builtins.def
8905 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
8906 Remove.
8907 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
8908
8909 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
8910 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
8911
8912 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
8913 (aarch64_reduc_plus_internal<mode>): ...this.
8914
8915 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
8916 (aarch64_reduc_plus_internalv2si): ...this.
8917
8918 (reduc_splus_<mode>/V2F): Rename to...
8919 (aarch64_reduc_plus_internal<mode>): ...this.
8920
8921 * config/aarch64/iterators.md
8922 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
8923 (UNSPEC_ADDV): New.
8924 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
8925
8926 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
8927 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
8928 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
8929 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
8930 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
8931
8932 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
8933
8934 PR tree-optimization/61114
8935 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
8936 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
8937
8938 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
8939 back to old reduc_... + BIT_FIELD_REF only if not.
8940
8941 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
8942 return the reduce-to-scalar (reduc_..._scal) optab.
8943 (scalar_reduc_to_vector): New.
8944
8945 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
8946 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
8947 New.
8948
8949 * optabs.h (scalar_reduc_to_vector): Declare.
8950
8951 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
8952 to either scalar or vector.
8953
8954 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
8955
8956 PR tree-optimization/61114
8957 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
8958 extract_bit_field around optab result.
8959
8960 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
8961 scalar not vector.
8962
8963 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
8964 for REDUC_{MIN,MAX,PLUS}_EXPR.
8965
8966 * tree-vect-loop.c (vect_analyze_loop): Update comment.
8967 (vect_create_epilog_for_reduction): For direct vector reduction, use
8968 result of tree code directly without extract_bit_field.
8969
8970 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
8971 comment.
8972
8973 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
8974
8975 * basic-block.h: Remove all includes.
8976 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
8977 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
8978 * Makefile.in (GTFILES): Add cfg.h to list.
8979 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
8980 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
8981 * genconditions.c (write_header): Add predict.h and basic-block.h to
8982 lits of includes.
8983 * genemit.c (main): Ditto.
8984 * genpreds.c (write_insn_preds_c): Ditto.
8985 * genrecog.c (write_header): Ditto.
8986 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
8987 to list of includes.
8988 * alias.c: Adjust include files.
8989 * asan.c: Ditto.
8990 * auto-inc-dec.c: Ditto.
8991 * auto-profile.c: Ditto.
8992 * bb-reorder.c: Ditto.
8993 * bt-load.c: Ditto.
8994 * builtins.c: Ditto.
8995 * caller-save.c: Ditto.
8996 * calls.c: Ditto.
8997 * cfg.c: Ditto.
8998 * cfganal.c: Ditto.
8999 * cfgbuild.c: Ditto.
9000 * cfgcleanup.c: Ditto.
9001 * cfgexpand.c: Ditto.
9002 * cfghooks.c: Ditto.
9003 * cfgloop.c: Ditto.
9004 * cfgloopanal.c: Ditto.
9005 * cfgloopmanip.c: Ditto.
9006 * cfgrtl.c: Ditto.
9007 * cgraphbuild.c: Ditto.
9008 * cgraphclones.c: Ditto.
9009 * cgraphunit.c: Ditto.
9010 * combine-stack-adj.c: Ditto.
9011 * combine.c: Ditto.
9012 * compare-elim.c: Ditto.
9013 * coverage.c: Ditto.
9014 * cprop.c: Ditto.
9015 * cse.c: Ditto.
9016 * cselib.c: Ditto.
9017 * data-streamer-in.c: Ditto.
9018 * data-streamer-out.c: Ditto.
9019 * data-streamer.c: Ditto.
9020 * dce.c: Ditto.
9021 * ddg.c: Ditto.
9022 * ddg.h: Ditto.
9023 * df-core.c: Ditto.
9024 * df-problems.c: Ditto.
9025 * df-scan.c: Ditto.
9026 * df.h: Ditto.
9027 * dojump.c: Ditto.
9028 * dominance.c: Ditto.
9029 * domwalk.c: Ditto.
9030 * dse.c: Ditto.
9031 * dwarf2cfi.c: Ditto.
9032 * emit-rtl.c: Ditto.
9033 * et-forest.c: Ditto.
9034 * except.c: Ditto.
9035 * expmed.c: Ditto.
9036 * expr.c: Ditto.
9037 * final.c: Ditto.
9038 * fold-const.c: Ditto.
9039 * function.c: Ditto.
9040 * fwprop.c: Ditto.
9041 * gcc-plugin.h: Ditto.
9042 * gcse.c: Ditto.
9043 * generic-match-head.c: Ditto.
9044 * ggc-page.c: Ditto.
9045 * gimple-builder.c: Ditto.
9046 * gimple-expr.c: Ditto.
9047 * gimple-fold.c: Ditto.
9048 * gimple-iterator.c: Ditto.
9049 * gimple-low.c: Ditto.
9050 * gimple-match-head.c: Ditto.
9051 * gimple-pretty-print.c: Ditto.
9052 * gimple-ssa-isolate-paths.c: Ditto.
9053 * gimple-ssa-strength-reduction.c: Ditto.
9054 * gimple-streamer-in.c: Ditto.
9055 * gimple-streamer-out.c: Ditto.
9056 * gimple-streamer.h: Ditto.
9057 * gimple-walk.c: Ditto.
9058 * gimple.c: Ditto.
9059 * gimplify-me.c: Ditto.
9060 * gimplify.c: Ditto.
9061 * graph.c: Ditto.
9062 * graphite-blocking.c: Ditto.
9063 * graphite-clast-to-gimple.c: Ditto.
9064 * graphite-dependences.c: Ditto.
9065 * graphite-interchange.c: Ditto.
9066 * graphite-isl-ast-to-gimple.c: Ditto.
9067 * graphite-optimize-isl.c: Ditto.
9068 * graphite-poly.c: Ditto.
9069 * graphite-scop-detection.c: Ditto.
9070 * graphite-sese-to-poly.c: Ditto.
9071 * graphite.c: Ditto.
9072 * haifa-sched.c: Ditto.
9073 * hw-doloop.c: Ditto.
9074 * ifcvt.c: Ditto.
9075 * init-regs.c: Ditto.
9076 * internal-fn.c: Ditto.
9077 * ipa-cp.c: Ditto.
9078 * ipa-devirt.c: Ditto.
9079 * ipa-icf-gimple.c: Ditto.
9080 * ipa-icf.c: Ditto.
9081 * ipa-inline-analysis.c: Ditto.
9082 * ipa-inline.c: Ditto.
9083 * ipa-polymorphic-call.c: Ditto.
9084 * ipa-profile.c: Ditto.
9085 * ipa-prop.c: Ditto.
9086 * ipa-pure-const.c: Ditto.
9087 * ipa-reference.c: Ditto.
9088 * ipa-split.c: Ditto.
9089 * ipa-utils.c: Ditto.
9090 * ipa.c: Ditto.
9091 * ira-build.c: Ditto.
9092 * ira-color.c: Ditto.
9093 * ira-conflicts.c: Ditto.
9094 * ira-costs.c: Ditto.
9095 * ira-emit.c: Ditto.
9096 * ira-lives.c: Ditto.
9097 * ira.c: Ditto.
9098 * jump.c: Ditto.
9099 * lcm.c: Ditto.
9100 * loop-doloop.c: Ditto.
9101 * loop-init.c: Ditto.
9102 * loop-invariant.c: Ditto.
9103 * loop-iv.c: Ditto.
9104 * loop-unroll.c: Ditto.
9105 * lower-subreg.c: Ditto.
9106 * lra-assigns.c: Ditto.
9107 * lra-coalesce.c: Ditto.
9108 * lra-constraints.c: Ditto.
9109 * lra-eliminations.c: Ditto.
9110 * lra-lives.c: Ditto.
9111 * lra-spills.c: Ditto.
9112 * lra.c: Ditto.
9113 * lto-cgraph.c: Ditto.
9114 * lto-compress.c: Ditto.
9115 * lto-opts.c: Ditto.
9116 * lto-section-in.c: Ditto.
9117 * lto-section-out.c: Ditto.
9118 * lto-streamer-in.c: Ditto.
9119 * lto-streamer-out.c: Ditto.
9120 * lto-streamer.c: Ditto.
9121 * mcf.c: Ditto.
9122 * mode-switching.c: Ditto.
9123 * modulo-sched.c: Ditto.
9124 * omp-low.c: Ditto.
9125 * optabs.c: Ditto.
9126 * opts-global.c: Ditto.
9127 * passes.c: Ditto.
9128 * postreload-gcse.c: Ditto.
9129 * postreload.c: Ditto.
9130 * predict.c: Ditto.
9131 * print-rtl.c: Ditto.
9132 * profile.c: Ditto.
9133 * recog.c: Ditto.
9134 * ree.c: Ditto.
9135 * reg-stack.c: Ditto.
9136 * regcprop.c: Ditto.
9137 * regcprop.h: Ditto.
9138 * reginfo.c: Ditto.
9139 * regrename.c: Ditto.
9140 * regstat.c: Ditto.
9141 * reload.c: Ditto.
9142 * reload1.c: Ditto.
9143 * reorg.c: Ditto.
9144 * resource.c: Ditto.
9145 * rtlanal.c: Ditto.
9146 * sched-deps.c: Ditto.
9147 * sched-ebb.c: Ditto.
9148 * sched-int.h: Ditto.
9149 * sched-rgn.c: Ditto.
9150 * sched-vis.c: Ditto.
9151 * sel-sched-dump.c: Ditto.
9152 * sel-sched-ir.c: Ditto.
9153 * sel-sched-ir.h: Ditto.
9154 * sel-sched.c: Ditto.
9155 * sese.c: Ditto.
9156 * shrink-wrap.c: Ditto.
9157 * stack-ptr-mod.c: Ditto.
9158 * stmt.c: Ditto.
9159 * store-motion.c: Ditto.
9160 * symtab.c: Ditto.
9161 * toplev.c: Ditto.
9162 * tracer.c: Ditto.
9163 * trans-mem.c: Ditto.
9164 * tree-affine.c: Ditto.
9165 * tree-call-cdce.c: Ditto.
9166 * tree-cfg.c: Ditto.
9167 * tree-cfgcleanup.c: Ditto.
9168 * tree-chrec.c: Ditto.
9169 * tree-complex.c: Ditto.
9170 * tree-data-ref.c: Ditto.
9171 * tree-dfa.c: Ditto.
9172 * tree-eh.c: Ditto.
9173 * tree-emutls.c: Ditto.
9174 * tree-if-conv.c: Ditto.
9175 * tree-inline.c: Ditto.
9176 * tree-into-ssa.c: Ditto.
9177 * tree-loop-distribution.c: Ditto.
9178 * tree-nested.c: Ditto.
9179 * tree-nrv.c: Ditto.
9180 * tree-object-size.c: Ditto.
9181 * tree-outof-ssa.c: Ditto.
9182 * tree-parloops.c: Ditto.
9183 * tree-phinodes.c: Ditto.
9184 * tree-predcom.c: Ditto.
9185 * tree-pretty-print.c: Ditto.
9186 * tree-profile.c: Ditto.
9187 * tree-scalar-evolution.c: Ditto.
9188 * tree-sra.c: Ditto.
9189 * tree-ssa-address.c: Ditto.
9190 * tree-ssa-alias.c: Ditto.
9191 * tree-ssa-ccp.c: Ditto.
9192 * tree-ssa-coalesce.c: Ditto.
9193 * tree-ssa-copy.c: Ditto.
9194 * tree-ssa-copyrename.c: Ditto.
9195 * tree-ssa-dce.c: Ditto.
9196 * tree-ssa-dom.c: Ditto.
9197 * tree-ssa-dse.c: Ditto.
9198 * tree-ssa-forwprop.c: Ditto.
9199 * tree-ssa-ifcombine.c: Ditto.
9200 * tree-ssa-live.c: Ditto.
9201 * tree-ssa-loop-ch.c: Ditto.
9202 * tree-ssa-loop-im.c: Ditto.
9203 * tree-ssa-loop-ivcanon.c: Ditto.
9204 * tree-ssa-loop-ivopts.c: Ditto.
9205 * tree-ssa-loop-manip.c: Ditto.
9206 * tree-ssa-loop-niter.c: Ditto.
9207 * tree-ssa-loop-prefetch.c: Ditto.
9208 * tree-ssa-loop-unswitch.c: Ditto.
9209 * tree-ssa-loop.c: Ditto.
9210 * tree-ssa-math-opts.c: Ditto.
9211 * tree-ssa-operands.c: Ditto.
9212 * tree-ssa-phiopt.c: Ditto.
9213 * tree-ssa-phiprop.c: Ditto.
9214 * tree-ssa-pre.c: Ditto.
9215 * tree-ssa-propagate.c: Ditto.
9216 * tree-ssa-reassoc.c: Ditto.
9217 * tree-ssa-sccvn.c: Ditto.
9218 * tree-ssa-sink.c: Ditto.
9219 * tree-ssa-strlen.c: Ditto.
9220 * tree-ssa-structalias.c: Ditto.
9221 * tree-ssa-tail-merge.c: Ditto.
9222 * tree-ssa-ter.c: Ditto.
9223 * tree-ssa-threadedge.c: Ditto.
9224 * tree-ssa-threadupdate.c: Ditto.
9225 * tree-ssa-uncprop.c: Ditto.
9226 * tree-ssa-uninit.c: Ditto.
9227 * tree-ssa.c: Ditto.
9228 * tree-ssanames.c: Ditto.
9229 * tree-stdarg.c: Ditto.
9230 * tree-streamer-in.c: Ditto.
9231 * tree-streamer-out.c: Ditto.
9232 * tree-streamer.c: Ditto.
9233 * tree-switch-conversion.c: Ditto.
9234 * tree-tailcall.c: Ditto.
9235 * tree-vect-data-refs.c: Ditto.
9236 * tree-vect-generic.c: Ditto.
9237 * tree-vect-loop-manip.c: Ditto.
9238 * tree-vect-loop.c: Ditto.
9239 * tree-vect-patterns.c: Ditto.
9240 * tree-vect-slp.c: Ditto.
9241 * tree-vect-stmts.c: Ditto.
9242 * tree-vectorizer.c: Ditto.
9243 * tree-vrp.c: Ditto.
9244 * tree.c: Ditto.
9245 * tsan.c: Ditto.
9246 * ubsan.c: Ditto.
9247 * valtrack.c: Ditto.
9248 * valtrack.h: Ditto.
9249 * value-prof.c: Ditto.
9250 * var-tracking.c: Ditto.
9251 * varasm.c: Ditto.
9252 * varpool.c: Ditto.
9253 * vtable-verify.c: Ditto.
9254 * web.c: Ditto.
9255 * config/aarch64/aarch64-builtins.c: Ditto.
9256 * config/aarch64/aarch64.c: Ditto.
9257 * config/alpha/alpha.c: Ditto.
9258 * config/arc/arc.c: Ditto.
9259 * config/arm/arm.c: Ditto.
9260 * config/avr/avr.c: Ditto.
9261 * config/bfin/bfin.c: Ditto.
9262 * config/c6x/c6x.c: Ditto.
9263 * config/cr16/cr16.c: Ditto.
9264 * config/cris/cris.c: Ditto.
9265 * config/darwin-c.c: Ditto.
9266 * config/darwin.c: Ditto.
9267 * config/epiphany/epiphany.c: Ditto.
9268 * config/epiphany/mode-switch-use.c: Ditto.
9269 * config/epiphany/resolve-sw-modes.c: Ditto.
9270 * config/fr30/fr30.c: Ditto.
9271 * config/frv/frv.c: Ditto.
9272 * config/h8300/h8300.c: Ditto.
9273 * config/i386/i386.c: Ditto.
9274 * config/i386/winnt.c: Ditto.
9275 * config/ia64/ia64.c: Ditto.
9276 * config/iq2000/iq2000.c: Ditto.
9277 * config/lm32/lm32.c: Ditto.
9278 * config/m32c/m32c.c: Ditto.
9279 * config/m32r/m32r.c: Ditto.
9280 * config/m68k/m68k.c: Ditto.
9281 * config/mcore/mcore.c: Ditto.
9282 * config/mep/mep.c: Ditto.
9283 * config/microblaze/microblaze.c: Ditto.
9284 * config/mips/mips.c: Ditto.
9285 * config/mmix/mmix.c: Ditto.
9286 * config/mn10300/mn10300.c: Ditto.
9287 * config/moxie/moxie.c: Ditto.
9288 * config/msp430/msp430.c: Ditto.
9289 * config/nds32/nds32-cost.c: Ditto.
9290 * config/nds32/nds32-fp-as-gp.c: Ditto.
9291 * config/nds32/nds32-intrinsic.c: Ditto.
9292 * config/nds32/nds32-isr.c: Ditto.
9293 * config/nds32/nds32-md-auxiliary.c: Ditto.
9294 * config/nds32/nds32-memory-manipulation.c: Ditto.
9295 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
9296 * config/nds32/nds32-predicates.c: Ditto.
9297 * config/nds32/nds32.c: Ditto.
9298 * config/nios2/nios2.c: Ditto.
9299 * config/pa/pa.c: Ditto.
9300 * config/pdp11/pdp11.c: Ditto.
9301 * config/rl78/rl78.c: Ditto.
9302 * config/rs6000/rs6000.c: Ditto.
9303 * config/rx/rx.c: Ditto.
9304 * config/s390/s390.c: Ditto.
9305 * config/sh/sh-mem.cc: Ditto.
9306 * config/sh/sh.c: Ditto.
9307 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
9308 * config/sh/sh_treg_combine.cc: Ditto.
9309 * config/sparc/sparc.c: Ditto.
9310 * config/spu/spu.c: Ditto.
9311 * config/stormy16/stormy16.c: Ditto.
9312 * config/tilegx/tilegx.c: Ditto.
9313 * config/tilepro/tilepro.c: Ditto.
9314 * config/v850/v850.c: Ditto.
9315 * config/vax/vax.c: Ditto.
9316 * config/xtensa/xtensa.c: Ditto.
9317
9318 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
9319
9320 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
9321 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
9322 Remove using preprocessor directives.
9323
9324 2014-10-27 Richard Biener <rguenther@suse.de>
9325
9326 * match.pd (0 % X): Properly use the iterator iterating over
9327 all modulo operators.
9328 (X % 1): Likewise.
9329
9330 2014-10-27 Richard Biener <rguenther@suse.de>
9331
9332 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
9333 (lattice): New global.
9334 (fwprop_ssa_val): New function.
9335 (fold_all_stmts): Likewise.
9336 (pass_forwprop::execute): Finally fold all stmts.
9337
9338 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
9339
9340 PR c++/53061
9341 * doc/invoke.texi (fmessage-length): Update text to match reality.
9342
9343 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9344
9345 * config/microblaze/microblaze.c: Include rtl-iter.h.
9346 (microblaze_tls_referenced_p_1): Delete.
9347 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
9348
9349 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9350
9351 * config/mips/mips.c (mips_at_reg_p): Delete.
9352 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
9353
9354 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9355
9356 * config/mips/mips.c (mips_record_lo_sum): Replace with...
9357 (mips_record_lo_sums): ...this new function.
9358 (mips_reorg_process_insns): Update accordingly.
9359
9360 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9361
9362 * config/mips/mips.c (mips_sim_insn): Update comment.
9363 (mips_sim_wait_regs_2): Delete.
9364 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
9365
9366 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9367
9368 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
9369 and return a bool. Iterate over all subrtxes here.
9370 (r10k_needs_protection_p): Update accordingly.
9371
9372 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9373
9374 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
9375 rather than an rtx pointer. Change type of insn from "void *"
9376 to its real type. Return bool rather than int. Iterate over
9377 all subrtxes here.
9378 (r10k_needs_protection_p_store): Update accordingly.
9379 (r10k_needs_protection_p): Likewise.
9380
9381 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9382
9383 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
9384 (mips16_rewrite_pool_refs): Take the insn and constant pool as
9385 parameters. Iterate over the instruction's pattern and return void.
9386 (mips16_lay_out_constants): Update accordingly.
9387
9388 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9389
9390 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
9391 (mips_refers_to_kernel_reg_p): ...this new function.
9392 (mips_expand_prologue): Update accordingly.
9393
9394 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9395
9396 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
9397 as a parameter instead of the containing MEM. Iterate over all
9398 subrtxes. Don't return a value.
9399 (mips_rewrite_small_data): Update call accordingly.
9400
9401 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9402
9403 * config/mips/mips.c: Include rtl-iter.h.
9404 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
9405 Take the context as a parameter instead of the containing MEM.
9406 Iterate over all subrtxes.
9407 (mips_small_data_pattern_p): Update call accordingly.
9408
9409 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9410
9411 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
9412 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
9413
9414 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9415
9416 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
9417 return a bool. Replace "void *" with specific type. Iterate
9418 over all subrtxes.
9419 (mep_store_data_bypass_1): Update calls accordingly.
9420
9421 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9422
9423 * config/mep/mep.c: Include rtl-iter.h.
9424 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
9425 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
9426
9427 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9428
9429 * config/xtensa/xtensa.c: Include rtl-iter.h.
9430 (xtensa_tls_referenced_p_1): Delete.
9431 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
9432
9433 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9434
9435 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
9436 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
9437
9438 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9439
9440 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
9441 rtx as argument and return the number of changes.
9442 * config/sh/sh.c: Include rtl-iter.h.
9443 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
9444 over all subrtxes. Return the number of changes made.
9445 * config/sh/sh.md: Update caller accordingly.
9446
9447 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9448
9449 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
9450 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
9451
9452 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
9453
9454 * config/m68k/m68k.c: Include rtl-iter.h.
9455 (m68k_final_prescan_insn_1): Delete.
9456 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
9457
9458 2014-10-25 Jakub Jelinek <jakub@redhat.com>
9459
9460 PR tree-optimization/63641
9461 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
9462 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
9463
9464 2014-10-25 Alan Modra <amodra@gmail.com>
9465
9466 PR rtl-optimization/63615
9467 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
9468 decomposing PLUS or MINUS if operands are not placed adjacent
9469 in the "ops" array.
9470
9471 2014-10-25 Joseph Myers <joseph@codesourcery.com>
9472
9473 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
9474 not allow e500 double in registers not satisyfing
9475 SPE_SIMD_REGNO_P.
9476
9477 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
9478
9479 * dwarf2out.c (declare_in_namespace): Only emit external
9480 declarations in the local scope once.
9481
9482 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
9483
9484 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
9485
9486 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
9487
9488 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
9489 update uses to use new macro arguments.
9490 (__LD3_LANE_FUNC): Likewise.
9491 (__LD4_LANE_FUNC): Likewise.
9492
9493 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
9494
9495 * config/aarch64/aarch64-builtins.c
9496 (aarch64_types_loadstruct_lane_qualifiers): Define.
9497 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
9498 ld4_lane): New builtins.
9499 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
9500 New pattern.
9501 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
9502 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
9503 (aarch64_ld2_lane<mode>): New expand.
9504 (aarch64_ld3_lane<mode>): Likewise.
9505 (aarch64_ld4_lane<mode>): Likewise.
9506 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
9507 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
9508
9509 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
9510
9511 * avr-protos.h (avr_out_sign_extend): New.
9512 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
9513 (avr_out_sign_extend): New function.
9514 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
9515 (extendhisi2, extendpsisi2): Use it.
9516 (adjust_len) [sext]: New.
9517
9518 2014-10-24 Martin Liska <mliska@suse.cz>
9519
9520 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
9521 added.
9522
9523 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9524
9525 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
9526 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
9527 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
9528 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
9529
9530 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9531
9532 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
9533 do while (0).
9534 * config/aarch64/aarch64.c (is_mem_p): Delete.
9535 (is_memory_op): Rename to...
9536 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
9537 (dep_between_memop_and_curr): Assert that the input is a SET.
9538 (aarch64_madd_needs_nop): Add comment. Do not call
9539 dep_between_memop_and_curr on NULL body.
9540 (aarch64_final_prescan_insn): Add comment.
9541 Include rtl-iter.h.
9542
9543 2014-10-24 Richard Biener <rguenther@suse.de>
9544
9545 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
9546 to genmatch BUILD_LIBS instead.
9547
9548 2014-10-24 Richard Biener <rguenther@suse.de>
9549
9550 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
9551 and build_call_expr_loc.
9552 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
9553 non_lvalue_loc to build it for GENERIC.
9554 (decision_tree::gen_generic): Add location argument to
9555 generic_simplify prototype.
9556 (capture_info): New class.
9557 (capture_info::capture_info): New constructor.
9558 (capture_info::walk_match): New method.
9559 (capture_info::walk_result): New method.
9560 (capture_info::walk_c_expr): New method.
9561 (dt_simplify::gen): Handle preserving side-effects for
9562 GENERIC code generation.
9563 (decision_tree::gen_generic): Do not reject operands
9564 with TREE_SIDE_EFFECTS.
9565 * generic-match.h: New file.
9566 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
9567 * match.pd: Add some constant folding patterns from fold-const.c.
9568 * fold-const.c: Include generic-match.h.
9569 (fold_unary_loc): Dispatch to generic_simplify.
9570 (fold_ternary_loc): Likewise.
9571 (fold_binary_loc): Likewise. Remove patterns now implemented
9572 by generic_simplify.
9573 * gimple-fold.c (replace_stmt_with_simplification): New function.
9574 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
9575 (no_follow_ssa_edges): New function.
9576 (fold_stmt): New overload with valueization hook. Use
9577 no_follow_ssa_edges for the overload without hook.
9578 (fold_stmt_inplace): Likewise.
9579 * gimple-fold.h (no_follow_ssa_edges): Declare.
9580
9581 2014-10-24 Felix Yang <felix.yang@huawei.com>
9582 Jiji Jiang <jiangjiji@huawei.com>
9583
9584 PR target/63173
9585 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
9586 (__LD3R_FUNC): Ditto.
9587 (__LD4R_FUNC): Ditto.
9588 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
9589 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
9590 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
9591 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
9592 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
9593 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
9594 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
9595 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
9596 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
9597 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
9598 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
9599 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
9600 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
9601 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
9602 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
9603 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
9604 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
9605 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
9606 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
9607 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
9608 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
9609 builtins.
9610 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
9611 (aarch64_simd_ld3r<mode>): Likewise.
9612 (aarch64_simd_ld4r<mode>): Likewise.
9613 (aarch64_ld2r<mode>): New expand.
9614 (aarch64_ld3r<mode>): Likewise.
9615 (aarch64_ld4r<mode>): Likewise.
9616
9617 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
9618
9619 * rtlanal.c (get_base_term): Handle SCRATCH.
9620
9621 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
9622
9623 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
9624 register pressure.
9625
9626 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
9627
9628 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
9629 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
9630 (max_issue, choose_ready, sched_init): Update.
9631
9632 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
9633
9634 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
9635 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
9636 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
9637 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
9638 (print_rank_for_schedule_stats): Print out elements of ready list that
9639 ended up on their respective places due to each of the sorting
9640 heuristics.
9641 (ready_sort): Update.
9642 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
9643 (schedule_block): Update.
9644
9645 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
9646
9647 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
9648 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
9649 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
9650 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
9651 (model_start_schedule): Update.
9652 (sched_pressure_start_bb): New static function. Calculate
9653 sched_class_regs_num.
9654 (schedule_block): Use it.
9655 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
9656
9657 2014-10-24 Richard Biener <rguenther@suse.de>
9658
9659 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
9660 host library and make sure to pull in the required libintl
9661 and libiconv dependencies.
9662
9663 2014-10-24 Richard Biener <rguenther@suse.de>
9664
9665 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
9666
9667 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
9668
9669 PR bootstrap/63632
9670 * collect2.c (main): Filter out -fno-lto.
9671
9672 2014-10-24 Martin Liska <mliska@suse.cz>
9673
9674 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
9675 division by zero in dumps.
9676 (sem_item_optimizer::merge_classes): Ditto.
9677
9678 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
9679
9680 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
9681
9682 2014-10-23 Ian Lance Taylor <iant@google.com>
9683
9684 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
9685
9686 2014-10-23 Ian Lance Taylor <iant@google.com>
9687
9688 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
9689
9690 2014-10-23 Jakub Jelinek <jakub@redhat.com>
9691
9692 PR debug/63623
9693 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
9694 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
9695 instead of only handling autoinc in dest if it is a MEM.
9696 (vt_stack_adjustments): Fix up formatting.
9697
9698 2014-10-23 DJ Delorie <dj@redhat.com>
9699
9700 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
9701 independend of -mlarge.
9702 * config/msp430/constraints.md (Ys): Update comment.
9703
9704 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
9705
9706 PR target/63534
9707 PR target/63618
9708 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
9709 while it is pseudo.
9710 * dse.c (deletable_insn_p): Likewise.
9711
9712 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
9713
9714 * config/avr/avr.c: Fix GNU coding rules and typos.
9715 * config/avr/avr.h: Dito.
9716 * config/avr/avr-c.c: Dito.
9717 * config/avr/avr.md: Dito.
9718
9719 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
9720
9721 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
9722 New.
9723 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
9724 iterator.
9725 (define_expand "abs<mode>2"): Ditto.
9726
9727 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
9728
9729 * tree-core.h (tree_var_decl): Extend `function_code' field
9730 by one bit, move `regdecl_flag' field to ...
9731 (tree_decl_with_vis): Here.
9732 * tree.h (DECL_STATIC_CHAIN): Update struct name.
9733
9734 2014-10-23 Richard Biener <rguenther@suse.de>
9735
9736 * Makefile.in (BUILD_CPPLIB): Add.
9737 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
9738 Drop LIBIBERTY.
9739
9740 2014-10-23 Richard Biener <rguenther@suse.de>
9741
9742 * fold-const.c (fold_binary_loc): Preserve side-effects of
9743 X - X when simplifying to 0.
9744 * stor-layout.c (finish_bitfield_representative): Strip
9745 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
9746
9747 2014-10-22 Richard Biener <rguenther@suse.de>
9748 Tobias Burnus <burnus@net-b.de>
9749
9750 PR lto/63603
9751 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
9752
9753 2014-10-22 Dehao Chen <dehao@google.com>
9754
9755 * auto-profile.c: Change order of header files.
9756
9757 2014-10-22 Guozhi Wei <carrot@google.com>
9758
9759 PR tree-optimization/63530
9760 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
9761 pointer alignment according to DR_MISALIGNMENT.
9762
9763 2014-10-22 David Malcolm <dmalcolm@redhat.com>
9764
9765 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
9766
9767 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
9768
9769 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
9770 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
9771 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
9772 * dominance.h: New. Add prototypes for dominance.c.
9773 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
9774 * cfghooks.h: (struct profile_record) Relocate here.
9775 Relocate 2 prototypes from basic-block.h.
9776 * basic-block.h: Move prototypes and struct to new header files.
9777 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
9778 * rtl.h: Move a few prototypes to new header files.
9779 * cfgcleanup.c (merge_memattrs): Make static.
9780 * genopinit.c (main): Add predict.h to list of includes.
9781 * predict.h: Update prototype list to match predict.c.
9782 * predict.c (maybe_hot_count_p): Export.
9783 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
9784 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
9785 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
9786 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
9787 * profile.h: Adjust prototypes.
9788 * ifcvt.h: New. Relocate struct ce_if_block here.
9789 * ifcvt.c: Include ifcvt.h.
9790 * config/frv/frv.c: Include ifcvt.h.
9791 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
9792
9793 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
9794
9795 * lra.c (lra): Remove call to recog_init.
9796 * config/i386/i386.md (preferred_for_speed): New attribute
9797 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
9798 "enabled". Remove check for sched1.
9799
9800 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
9801
9802 * recog.h (recog_data_d): Remove enabled_alternatives.
9803 * recog.c (extract_insn): Don't set it.
9804 * reload.c (find_reloads): Call get_enabled_alternatives.
9805
9806 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
9807
9808 * recog.h (constrain_operands): Add an alternative_mask parameter.
9809 (constrain_operands_cached): Likewise.
9810 (get_preferred_alternatives): Declare new form.
9811 * recog.c (get_preferred_alternatives): New bb-taking instance.
9812 (constrain_operands): Take the set of available alternatives as
9813 a parameter.
9814 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
9815 (extract_constrain_insn_cached): Update calls to constrain_operands.
9816 * caller-save.c (reg_save_code): Likewise.
9817 * ira.c (setup_prohibited_mode_move_regs): Likewise.
9818 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
9819 * ree.c (combine_reaching_defs): Likewise.
9820 * reload.c (can_reload_into): Likewise.
9821 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
9822 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
9823 (emit_insn_if_valid_for_reload): Likewise.
9824 * reorg.c (fill_slots_from_thread): Likewise.
9825 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
9826 * config/pa/pa.c (pa_can_combine_p): Likewise.
9827 * config/rl78/rl78.c (insn_ok_now): Likewise.
9828 * config/sh/sh.md (define_peephole2): Likewise.
9829 * final.c (final_scan_insn): Update call to constrain_operands_cached.
9830
9831 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
9832
9833 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
9834 attributes.
9835 * genattr.c (main): Handle "preferred_for_size" and
9836 "preferred_for_speed" in the same way as "enabled".
9837 * recog.h (bool_attr): New enum.
9838 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
9839 (get_preferred_alternatives, check_bool_attrs): Declare.
9840 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
9841 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
9842 New functions.
9843 (get_enabled_alternatives): Use get_bool_attr_mask.
9844 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
9845 instead of recog_data.enabled_alternatives.
9846 * ira.c (ira_setup_alts): Likewise.
9847 * postreload.c (reload_cse_simplify_operands): Likewise.
9848 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
9849 * ira-lives.c (preferred_alternatives): New variable.
9850 (process_bb_node_lives): Set it.
9851 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
9852 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
9853 of recog_data.enabled_alternatives.
9854 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
9855 to preferred_alternatives.
9856 * lra-constraints.c (process_alt_operands): Update accordingly.
9857 * lra.c (lra_set_insn_recog_data): Likewise.
9858 (lra_update_insn_recog_data): Assert check_bool_attrs.
9859
9860 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
9861
9862 * recog.h (extract_constrain_insn): Declare.
9863 * recog.c (extract_constrain_insn): New function.
9864 * lra.c (check_rtl): Use it.
9865 * postreload.c (reload_cse_simplify_operands): Likewise.
9866 * reg-stack.c (check_asm_stack_operands): Likewise.
9867 (subst_asm_stack_regs): Likewise.
9868 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
9869 * regrename.c (build_def_use): Likewise.
9870 * sel-sched.c (get_reg_class): Likewise.
9871 * config/arm/arm.c (note_invalid_constants): Likewise.
9872 * config/s390/predicates.md (execute_operation): Likewise.
9873
9874 2014-10-22 Jakub Jelinek <jakub@redhat.com>
9875 Yury Gribov <y.gribov@samsung.com>
9876
9877 * common.opt (flag_sanitize_recover): New variable.
9878 (fsanitize-recover): Remove Var/Init, deprecate.
9879 (fsanitize-recover=): New option.
9880 * doc/invoke.texi (fsanitize-recover): Update docs.
9881 * opts.c (finish_options): Use opts->x_flag_sanitize
9882 instead of flag_sanitize. Prohibit -fsanitize-recover
9883 for anything besides UBSan. Formatting.
9884 (common_handle_option): Handle OPT_fsanitize_recover_
9885 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
9886 instead of flag_sanitize.
9887 * asan.c (pass_sanopt::execute): Fix up formatting.
9888 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
9889 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
9890 instrument_bool_enum_load, ubsan_instrument_float_cast,
9891 instrument_nonnull_arg, instrument_nonnull_return): Check
9892 bits in flag_sanitize_recover bitmask instead of
9893 flag_sanitize_recover as bool flag.
9894
9895 2014-10-22 Jiong Wang <jiong.wang@arm.com>
9896
9897 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
9898
9899 2014-10-22 Renlin Li <renlin.li@arm.com>
9900
9901 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
9902 __ARM_FEATURE_IDIV__.
9903
9904 2014-10-22 Richard Biener <rguenther@suse.de>
9905
9906 * Makefile.in (s-match): Adjust dependencies to only catch
9907 match.pd.
9908
9909 2014-10-22 Richard Biener <rguenther@suse.de>
9910 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
9911
9912 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
9913 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
9914 (gimple-match.c): Generate by triggering s-match.
9915 (generic-match.c): Likewise.
9916 (s-match): Rule to build gimple-match.c and generic-match.c
9917 by running the genmatch generator program.
9918 (build/hash-table.o): Dependencies to build hash-table.c for the host.
9919 (build/genmatch.o): Dependencies to build genmatch.
9920 (genprog): Add match.
9921 (build/genmatch): Likewise.
9922 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
9923 * generic-match-head.c: New file.
9924 * gimple-match-head.c: Likewise.
9925 * gimple-match.h: Likewise.
9926 * genmatch.c: Likewise.
9927 * match.pd: Likewise.
9928 * builtins.h (fold_builtin_n): Export.
9929 * builtins.c (fold_builtin_n): Likewise.
9930 * gimple-fold.h (gimple_build): Declare various overloads.
9931 (gimple_simplify): Likewise.
9932 (gimple_convert): Re-implement in terms of gimple_build.
9933 * gimple-fold.c (gimple_convert): Remove.
9934 (gimple_build): New functions.
9935 * doc/match-and-simplify.texi: New file.
9936 * doc/gccint.texi: Add menu item Match and Simplify and include
9937 match-and-simplify.texi.
9938
9939 2014-10-22 Jakub Jelinek <jakub@redhat.com>
9940
9941 PR target/63594
9942 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
9943 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
9944 even for just TARGET_AVX2, not only for
9945 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
9946 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
9947 otherwise build it using concatenation of 256-bit
9948 broadcast.
9949 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
9950 avx512 broadcast patterns.
9951 (vec_dup<mode>): Likewise. For avx2 use
9952 v<sseintprefix>broadcast<bcstscalarsuff> instead of
9953 vbroadcast<ssescalarmodesuffix>.
9954 (AVX2_VEC_DUP_MODE): New mode iterator.
9955 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
9956 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
9957
9958 PR target/63542
9959 * config/i386/i386.c (ix86_pic_register_p): Also return
9960 true if x is a hard register with ORIGINAL_REGNO equal to
9961 pic_offset_table_rtx pseudo REGNO.
9962 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
9963 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
9964
9965 2014-10-22 Alan Modra <amodra@gmail.com>
9966
9967 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
9968 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
9969 (gcc_obstack_init): Use obstack_specify_allocation in place of
9970 _obstack_begin.
9971 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
9972 (regexp_representation): Likewise.
9973 * godump.c (go_output_type): Likewise.
9974
9975 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
9976
9977 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
9978 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
9979 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
9980
9981 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
9982
9983 * doc/invoke.texi (pedantic-errors): Explain better.
9984
9985 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
9986 Vidya Praveen <vidya.praveen@atmel.com>
9987 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
9988 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
9989 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
9990
9991 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
9992 __MEMX for avrtiny.
9993 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
9994 (avr_nonconst_pointer_addrspace): Likewise.
9995 * config/avr/avr.h (AVR_HAVE_LPM): Define.
9996
9997 Added AVRTINY architecture to avr target.
9998 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
9999 (base_arch_s): member added for AVRTINY architecture.
10000 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
10001 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
10002 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
10003 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
10004 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
10005 in callee saved register list.
10006 (avr_option_override): CCP address updated for AVRTINY.
10007 (avr_init_expanders): tmp and zero rtx initialized as per arch.
10008 Reset avr_have_dimode if AVRTINY.
10009 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
10010 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
10011 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
10012 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
10013 (expand_epilogue): Likewise.
10014 (avr_print_operand): Print CCP address in case of AVRTINY also.
10015 <TBD>bad address
10016 (function_arg_regno_p): Check different register list for arguments
10017 if AVRTINY.
10018 (init_cumulative_args): Check for AVRTINY to update number of argument
10019 registers.
10020 (tiny_valid_direct_memory_access_range): New function. Return false if
10021 direct memory access range is not in accepted range for AVRTINY.
10022 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
10023 indirect load (with displacement) for AVRTINY.
10024 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
10025 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
10026 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
10027 indirect load (no displacement) for AVRTINY.
10028 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
10029 indirect load (with displacement) for AVRTINY.
10030 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
10031 indirect load for pre-decrement address.
10032 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
10033 functions. Update instruction length for AVRTINY.
10034 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
10035 SImode.
10036 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
10037 (out_movsi_r_mr): Likewise, for SImode.
10038 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
10039 indirect store (no displacement) for AVRTINY.
10040 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
10041 indirect store (with displacement) for AVRTINY.
10042 (out_movsi_mr_r): Emit out insn for IO address store. Update store
10043 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
10044 store functions.
10045 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
10046 indirect load (no displacement) for PSImode in AVRTINY.
10047 (avr_out_load_psi_reg_disp_tiny): New function to handle register
10048 indirect load (with displacement) for PSImode in AVRTINY.
10049 (avr_out_load_psi): Call PSImode register indirect load functions for
10050 AVRTINY. Update instruction length for AVRTINY.
10051 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
10052 indirect store (no displacement) for PSImode in AVRTINY.
10053 (avr_out_store_psi_reg_disp_tiny): New function to handle register
10054 indirect store (with displacement) for PSImode in AVRTINY.
10055 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
10056 register indirect store functions for AVRTINY.
10057 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
10058 register indirect store (with displacement) for AVRTINY.
10059 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
10060 register indirect store function for QImode in AVRTINY.
10061 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
10062 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
10063 indirect store (no displacement) for HImode in AVRTINY.
10064 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
10065 indirect store (with displacement) for HImode in AVRTINY.
10066 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
10067 indirect store for post-increment address in HImode.
10068 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
10069 register indirect store function for HImode in AVRTINY.
10070 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
10071 in case of AVRTINY.
10072 (order_regs_for_local_alloc): Updated register allocation order for
10073 AVRTINY.
10074 (avr_conditional_register_usage): New function. It is a target hook
10075 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
10076 used registers list and register allocation order for AVRTINY.
10077 (avr_return_in_memory): Update return value size for AVRTINY.
10078 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
10079 for AVRTINY arch and tiny program memory base address.
10080 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
10081 (avr_texinfo): Added description for AVRTINY arch.
10082 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
10083 STATIC_CHAIN_REGNUM for AVRTINY.
10084 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
10085 * config/avr/avr.md: Added constants for tmp/ zero registers in
10086 AVRTINY. Attributes for AVRTINY added.
10087 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
10088 memory access range.
10089 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
10090 in AVRTINY memory access range.
10091 (*mov<mode>): Likewise for HImode and SImode.
10092 (*movsf): Likewise for SFmode.
10093 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
10094 not have sbiw.
10095 * config/avr/avr-protos.h: Added function prototype for
10096 tiny_valid_direct_memory_access_range.
10097 * config/avr/avr-tables.opt: Regenerate.
10098 * gcc/config/avr/t-multilib: Regenerate.
10099 * doc/avr-mmcu.texi: Regenerate.
10100
10101 2014-10-21 Andrew Pinski <apinski@cavium.com>
10102
10103 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
10104 available option also.
10105 * config/aarch64/aarch64-cost-tables.h: New file.
10106 * config/aarch64/aarch64-cores.def (thunderx): New core.
10107 * config/aarch64/aarch64-tune.md: Regenerate.
10108 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
10109 of config/arm/aarch-cost-tables.h.
10110 (thunderx_regmove_cost): New variable.
10111 (thunderx_tunings): New variable.
10112
10113 2014-10-21 Dehao Chen <dehao@google.com>
10114
10115 * auto-profile.c: New file.
10116 * auto-profile.h: New file.
10117 * basic-block.h (maybe_hot_count_p): New export func.
10118 (add_working_set): New export func.
10119 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
10120 (GCOV_TAG_AFDO_FUNCTION): Likewise.
10121 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
10122 * opts.c (enable_fdo_optimizations): New func.
10123 (common_handle_option): Handle -fauto-profile flag.
10124 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
10125 (class pass_early_inline): Export early_inliner.
10126 (early_inliner): Likewise.
10127 (pass_early_inline::execute): Likewise.
10128 * ipa-inline.h (early_inliner): Likewise.
10129 * predict.c (maybe_hot_count_p): New export func.
10130 (counts_to_freqs): AutoFDO logic.
10131 (rebuild_frequencies): Likewise.
10132 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
10133 * profile.c (add_working_set): New func.
10134 * Makefile.in (auto-profile.o): New object file.
10135 * passes.def (pass_ipa_auto_profile): New pass.
10136 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
10137 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
10138 * toplev.c (compile_file): AutoFDO logic.
10139 * doc/invoke.texi (-fauto-profile): New doc.
10140 * coverage.c (coverage_init): AutoFDO logic.
10141 * common.opt (-fauto-profile): New flag.
10142 * timevar.def (TV_IPA_AUTOFDO): New tag.
10143 * value-prof.c (gimple_alloc_histogram_value): New export func.
10144 (check_ic_target): Likewise.
10145 * value-prof.h (gimple_alloc_histogram_value): Likewise.
10146 (check_ic_target): Likewise.
10147
10148 2014-10-21 David Malcolm <dmalcolm@redhat.com>
10149
10150 * cgraph.c (cgraph_c_finalize): New function.
10151 * cgraph.h (cgraph_c_finalize): New prototype.
10152 (cgraphunit_c_finalize): New prototype.
10153 * cgraphunit.c (first_analyzed): Move from analyze_functions
10154 to file-scope.
10155 (first_analyzed_var): Likewise.
10156 (analyze_functions): Move static variables into file-scope.
10157 (cgraphunit_c_finalize): New function.
10158 * diagnostic.c (diagnostic_finish): Free the memory for
10159 context->classify_diagnostic and context->printer, running the
10160 destructor for the latter.
10161 (bt_stop): Use toplev::main.
10162 * dwarf2out.c (dwarf2out_finalize): New function.
10163 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
10164 * gcse.c (gcse_c_finalize): New function.
10165 * gcse.h (gcse_c_finalize): New prototype.
10166 * ggc-page.c (init_ggc): Make idempotent.
10167 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
10168 * ipa-cp.c (ipa_cp_c_finalize): New function.
10169 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
10170 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
10171 a field of class pass_ipa_pure_const.
10172 (node_duplication_hook_holder): Likewise.
10173 (node_removal_hook_holder): Likewise.
10174 (register_hooks): Convert to method...
10175 (pass_ipa_pure_const::register_hooks): ...here, converting
10176 static variable init_p into...
10177 (pass_ipa_pure_const::init_p): ...new field.
10178 (pure_const_generate_summary): Update invocation of
10179 register_hooks to invoke as a method of current_pass.
10180 (pure_const_read_summary): Likewise.
10181 (propagate): Convert to...
10182 (pass_ipa_pure_const::execute): ...method.
10183 * ipa-reference.c (ipa_init): Move static bool init_p from here
10184 to...
10185 (ipa_init_p): New file-scope variable, so that it can be reset
10186 when repeatedly invoking the compiler within one process by...
10187 (ipa_reference_c_finalize): New function.
10188 * ipa-reference.h (ipa_reference_c_finalize): New.
10189 * main.c (main): Replace invocation of toplev_main with
10190 construction of a toplev instance, and call its "main" method.
10191 * params.c (global_init_params): Add an assert that
10192 params_finished is false.
10193 (params_c_finalize): New.
10194 * params.h (params_c_finalize): New.
10195 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
10196 invoking generate_summary, for the benefit of pass_ipa_pure_const.
10197 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
10198 before calling write_summary hook.
10199 (ipa_write_optimization_summaries_1): Likewise when calling
10200 write_optimization_summary hook.
10201 (ipa_read_summaries_1): Likewise for read_summary hook.
10202 (ipa_read_optimization_summaries_1): Likewise for
10203 read_optimization_summary hook.
10204 (execute_ipa_stmt_fixups): Likewise.
10205 * stringpool.c (init_stringpool): Clean up if we're called more
10206 than once.
10207 * timevar.c (timevar_init): Ignore repeated calls.
10208 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
10209 "ipa-prop.h".
10210 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
10211 (initialize_rtl): Move static local "initialized_once"
10212 into file scope, and rename to...
10213 (rtl_initialized): New variable.
10214 (do_compile): Move timevar initialization from here to
10215 toplev::start_timevars.
10216 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
10217 toplev::finalize): New functions.
10218 (toplev_main): Rename to...
10219 (toplev::main): ...this.
10220 * toplev.h (class toplev): New class.
10221
10222 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
10223
10224 * loop-doloop.c: Include loop-unroll.h.
10225
10226 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
10227
10228 * cfg.h: New. Header file for cfg.c.
10229 * cfganal.h: New. Header file for cfganal.c.
10230 * lcm.h: New. Header file for lcm.c.
10231 * loop-unroll.h: New. Header file for loop-unroll.h.
10232 * cfgloop.h: (unroll_loops): Remove prototype.
10233 * basic-block.h: Move prototypes and structs to new header files.
10234 Include cfg.h, cfganal.h, and lcm.h.
10235 * loop-init.c: Include loop-unroll.h.
10236 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
10237 * modulo-sched.c: Include loop-unroll.h.
10238
10239 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
10240
10241 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
10242 MARKER_BYTE_UNKNOWN markers when handling casts.
10243
10244 2014-10-21 Richard Biener <rguenther@suse.de>
10245
10246 * tree-ssa-phiopt.c (value_replacement): Properly verify we
10247 are the non-singleton PHI.
10248
10249 2014-10-21 Jakub Jelinek <jakub@redhat.com>
10250
10251 PR tree-optimization/63563
10252 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
10253 if either dra or drb stmts are not normal loads/stores.
10254
10255 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
10256
10257 * config/i386/i386.c (expand_vec_perm_1): Fix
10258 expand_vec_perm_palignr case.
10259 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
10260 VI1_AVX512.
10261
10262 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
10263
10264 * cfgloopanal.c (seq_cost): Delete.
10265 * rtl.h (seq_cost): New prototype.
10266 * rtlanal.c (seq_cost): New function.
10267 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
10268
10269 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
10270
10271 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
10272 * basic-block.h: Remove prototypes for cfgrtl.c.
10273 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
10274 prototypes to cfgrtl.h.
10275 * profile.h (profile_info): Add extern export declaration.
10276 * rtl.h: Remove prototypes for cfgrtl.h.
10277 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
10278 * ipa-inline.c: Include profile.h.
10279 * loop-unroll.c: Ditto.
10280 * modulo-sched.c: Ditto.
10281 * postreload-gcse.c: Ditto.
10282 * predict.c: Ditto.
10283 * sched-ebb.c: Ditto.
10284 * sched-rgn.c: Ditto.
10285 * tracer.c: Ditto.
10286 * tree-ssa-loop-ivcanon.c: Ditto.
10287
10288 2014-10-20 Richard Biener <rguenther@suse.de>
10289
10290 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
10291 operands to get a def operand kind match. Signal mismatches
10292 to the parent so we can try swapping its operands.
10293 (vect_build_slp_tree): Try swapping operands if they have
10294 a mismatched operand kind.
10295
10296 2014-10-20 Alan Modra <amodra@gmail.com>
10297
10298 PR debug/60655
10299 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
10300 Increase "ops" array size. Correct array size tests. Init
10301 n_constants in loop. Break out of innermost loop when finding
10302 a trivial CONST expression.
10303
10304 2014-10-20 Martin Liska <mliska@suse.cz>
10305
10306 PR ipa/63583
10307 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
10308 Gimple tempate string is compared.
10309
10310 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
10311
10312 * varasm.c (const_alias_set): Remove.
10313 (init_varasm_once): Remove initialization of const_alias_set.
10314 (build_constant_desc): Do not set alias set to const_alias_set.
10315
10316 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
10317
10318 * configure: Regenerate.
10319 * configure.ac: Move the test for section attribute specifier "e" in GAS
10320 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
10321 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
10322 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
10323 ifdef HAVE_GAS_SECTION_EXCLUDE.
10324
10325 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
10326
10327 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
10328 match_operand expression.
10329
10330 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
10331 David Edelsohn <dje.gcc@gmail.com>
10332
10333 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
10334 function.
10335 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
10336
10337 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
10338
10339 * doc/invoke.texi (Options to Request or Suppress Warnings):
10340 Explain options precedence.
10341 (Wtrampolines): Do not indent paragraph.
10342
10343 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
10344
10345 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
10346 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
10347 (pa_jump_in_call_delay): Likewise.
10348 * config/pa/pa.c (pa_option_override): Remove jump in call delay
10349 override.
10350 (pa_output_millicode_call): Remove support for jump in call delay.
10351 (pa_output_call): Likewise.
10352 (pa_jump_in_call_delay): Delete.
10353 (pa_following_call): Likewise.
10354 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
10355 (uncond_branch): Remove following call check from attribute length.
10356
10357 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
10358
10359 PR target/53513
10360 * config/sh/sh-modes.def (PSI): Remove.
10361 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
10362 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
10363 (sh_reorg): Remove commented out FPSCR code.
10364 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
10365 insn instead of move insn.
10366 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
10367 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
10368 handling.
10369 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
10370 (sh1_builtin_p): Uncomment.
10371 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
10372 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
10373 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
10374 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
10375 (general_movsrc_operand, general_movdst_operand): Disallow
10376 fpscr_operand.
10377 * config/sh/sh.md (FPSCR_FR): New constant.
10378 (push_fpscr): Emit sts_fpscr insn.
10379 (pop_fpscr): Emit lds_fpscr_insn.
10380 (movsi_ie): Disallow FPSCR operands.
10381 (fpu_switch, unnamed related split, extend_psi_si,
10382 truncate_si_psi): Remove insns.
10383 (lds_fpscr, sts_fpscr): New insns.
10384 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
10385
10386 >>>>>>> .r217525
10387 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
10388
10389 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
10390 (clone_inlined_nodes): Do not overwrite the clone if above predicate
10391 returns true.
10392
10393 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
10394
10395 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
10396 (expand_vec_perm_d): Ditto.
10397 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
10398 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
10399 V4DFmode.
10400 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
10401 (ix86_expand_sse_unpack): Handle V64QImode.
10402 (expand_vec_perm_blend): Update conditions for TARGET, handle
10403 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
10404 (expand_vec_perm_pshufb): Handle V64QImode.
10405 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
10406 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
10407 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
10408 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
10409 (ix86_expand_vecop_qihi): Handle V64QImode.
10410 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
10411 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
10412 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
10413 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
10414 (mul<mode>3): Use VI1_AVX512.
10415 (<sse2_avx2>_packsswb): Ditto.
10416 (<sse2_avx2>_packuswb): Ditto.
10417 (<ssse3_avx2>_pshufb<mode>3): Ditto.
10418 (<shift_insn><mode>3): Ditto.
10419
10420 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
10421
10422 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
10423 conditions to fix bootstrap.
10424
10425 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
10426
10427 gcc-plugin.h: Add tm.h and flattened includes from function.h.
10428
10429 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
10430 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10431 Anna Tikhonova <anna.tikhonova@intel.com>
10432 Ilya Tocar <ilya.tocar@intel.com>
10433 Andrey Turetskiy <andrey.turetskiy@intel.com>
10434 Ilya Verbin <ilya.verbin@intel.com>
10435 Kirill Yukhin <kirill.yukhin@intel.com>
10436 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10437
10438 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
10439 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
10440 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
10441 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
10442 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
10443 (define_expand "vec_init<mode>"): Use VF48_I1248.
10444
10445 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
10446 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10447 Anna Tikhonova <anna.tikhonova@intel.com>
10448 Ilya Tocar <ilya.tocar@intel.com>
10449 Andrey Turetskiy <andrey.turetskiy@intel.com>
10450 Ilya Verbin <ilya.verbin@intel.com>
10451 Kirill Yukhin <kirill.yukhin@intel.com>
10452 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10453
10454 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
10455 expand_sse2_mulvxdi3.
10456
10457 2014-10-17 Richard Biener <rguenther@suse.de>
10458
10459 * fold-const.c (fold_comparison): Remove redundant constant
10460 folding and operand swapping.
10461 (fold_binary_loc): Do comparison operand swapping here.
10462 (fold_ternary_loc): Canonicalize operand order for
10463 commutative ternary operations.
10464 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
10465 and FMA_EXPR.
10466
10467 2014-10-17 Jakub Jelinek <jakub@redhat.com>
10468
10469 PR tree-optimization/63464
10470 * gimple.h (gimple_seq_discard): New prototype.
10471 * gimple.c: Include stringpool.h and tree-ssanames.h.
10472 (gimple_seq_discard): New function.
10473 * optabs.h (lshift_cheap_p): New prototype.
10474 * optabs.c (lshift_cheap_p): New function, moved from...
10475 * tree-switch-conversion.c (lshift_cheap_p): ... here.
10476 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
10477 (reassoc_branch_fixups): New variable.
10478 (update_range_test): Add otherrangep and seq arguments.
10479 Unshare exp. If otherrange is NULL, use for other ranges
10480 array of pointers pointed by otherrangep instead.
10481 Emit seq before gimplified statements for tem.
10482 (optimize_range_tests_diff): Adjust update_range_test
10483 caller.
10484 (optimize_range_tests_xor): Likewise. Fix up comment.
10485 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
10486 functions.
10487 (optimize_range_tests): Adjust update_range_test caller.
10488 Call optimize_range_tests_to_bit_test.
10489 (branch_fixup): New function.
10490 (execute_reassoc): Call branch_fixup.
10491
10492 PR tree-optimization/63302
10493 * tree-ssa-reassoc.c (optimize_range_tests_xor,
10494 optimize_range_tests_diff): Use !integer_pow2p () instead of
10495 tree_log2 () < 0.
10496
10497 2014-10-17 Martin Liska <mliska@suse.cz>
10498
10499 * ipa-icf.c (sem_function::merge): Local flags are set to false
10500 to enforce equal calling convention to be used.
10501 * opts.c (common_handle_option): Indentation fix.
10502
10503 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
10504
10505 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
10506
10507 2014-10-17 Tom de Vries <tom@codesourcery.com>
10508
10509 PR rtl-optimization/61605
10510 * regcprop.c (copyprop_hardreg_forward_1): Use
10511 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
10512
10513 2014-10-17 Tom de Vries <tom@codesourcery.com>
10514
10515 PR rtl-optimization/61605
10516 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
10517 notice stores for noops. Don't regard noops as copies.
10518
10519 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
10520
10521 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
10522 register in a special way.
10523 (__cpuid_count): Ditto.
10524 * config/i386/driver-i386.h: Protect with
10525 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
10526 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
10527 is required to compile the function.
10528
10529 2014-10-16 DJ Delorie <dj@redhat.com>
10530
10531 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
10532 integers.
10533
10534 * config/rs6000/rs6000-c.c (rid_int128): New.
10535 (rs6000_macro_to_expand): Use instead of RID_INT128.
10536
10537 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
10538
10539 * function.h: Flatten file. Remove includes, adjust prototypes to
10540 reflect only what is in function.h.
10541 (enum direction, struct args_size, struct locate_and_pad_arg_data,
10542 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
10543 from expr.h.
10544 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
10545 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
10546 prototypes to predict.h.
10547 (init_varasm_status): Move prototype to varasm.h.
10548 * expr.h: Adjust include files.
10549 (enum direction, struct args_size, struct locate_and_pad_arg_data,
10550 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
10551 to function.h.
10552 (locate_and_pad_parm): Move prototype to function.h.
10553 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
10554 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
10555 assign_temp, reposition_prologue_and_epilogue_notes,
10556 prologue_epilogue_contains, sibcall_epilogue_contains,
10557 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
10558 set_return_jump_label): Move prototypes to function.h.
10559 * predict.h (optimize_function_for_size_p,
10560 optimize_function_for_speed_p): Relocate prototypes from function.h.
10561 * shrink-wrap.h (emit_return_into_block, active_insn_between,
10562 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
10563 function.h.
10564 * varasm.h (init_varasm_status): Relocate prototype from function.h.
10565 * genattrtab.c (write_header): Add predict.h to include list.
10566 * genconditions.c (write_header): Add predict.h to include list.
10567 * genemit.c (main): Adjust header file includes.
10568 * gengtype.c (ifiles): Add flattened function.h header files.
10569 * genoutput.c (output_prologue): Add predict.h to include list.
10570 * genpreds.c (write_insn_preds_c): Adjust header file includes.
10571 * genrecog.c (write_header): Add flattened function.h header files.
10572 * alias.c: Adjust include files.
10573 * auto-inc-dec.c: Likewise.
10574 * basic-block.h: Likewise.
10575 * bb-reorder.c: Likewise.
10576 * bt-load.c: Likewise.
10577 * builtins.c: Likewise.
10578 * caller-save.c: Likewise.
10579 * calls.c: Likewise.
10580 * cfgbuild.c: Likewise.
10581 * cfgcleanup.c: Likewise.
10582 * cfgexpand.c: Likewise.
10583 * cfgloop.c: Likewise.
10584 * cfgloop.h: Likewise.
10585 * cfgrtl.c: Likewise.
10586 * cgraph.h: Likewise.
10587 * cgraphclones.c: Likewise.
10588 * cgraphunit.c: Likewise.
10589 * combine-stack-adj.c: Likewise.
10590 * combine.c: Likewise.
10591 * coverage.c: Likewise.
10592 * cprop.c: Likewise.
10593 * cse.c: Likewise.
10594 * cselib.c: Likewise.
10595 * dbxout.c: Likewise.
10596 * ddg.c: Likewise.
10597 * df-core.c: Likewise.
10598 * df-problems.c: Likewise.
10599 * df-scan.c: Likewise.
10600 * dojump.c: Likewise.
10601 * dwarf2cfi.c: Likewise.
10602 * dwarf2out.c: Likewise.
10603 * emit-rtl.c: Likewise.
10604 * except.c: Likewise.
10605 * explow.c: Likewise.
10606 * expr.c: Likewise.
10607 * final.c: Likewise.
10608 * function.c: Likewise.
10609 * gcse.c: Likewise.
10610 * gimple-fold.c: Likewise.
10611 * gimple-low.c: Likewise.
10612 * gimple-streamer.h: Likewise.
10613 * haifa-sched.c: Likewise.
10614 * ifcvt.c: Likewise.
10615 * ira.c: Likewise.
10616 * jump.c: Likewise.
10617 * lcm.c: Likewise.
10618 * loop-invariant.c: Likewise.
10619 * lra-assigns.c: Likewise.
10620 * lra-coalesce.c: Likewise.
10621 * lra-constraints.c: Likewise.
10622 * lra-eliminations.c: Likewise.
10623 * lra-lives.c: Likewise.
10624 * lra-spills.c: Likewise.
10625 * lra.c: Likewise.
10626 * lto-cgraph.c: Likewise.
10627 * lto-section-in.c: Likewise.
10628 * lto-section-out.c: Likewise.
10629 * lto-streamer-in.c: Likewise.
10630 * lto-streamer-out.c: Likewise.
10631 * mode-switching.c: Likewise.
10632 * modulo-sched.c: Likewise.
10633 * omp-low.c: Likewise.
10634 * optabs.c: Likewise.
10635 * passes.c: Likewise.
10636 * postreload-gcse.c: Likewise.
10637 * postreload.c: Likewise.
10638 * predict.c: Likewise.
10639 * profile.c: Likewise.
10640 * recog.c: Likewise.
10641 * ree.c: Likewise.
10642 * reg-stack.c: Likewise.
10643 * regcprop.c: Likewise.
10644 * reginfo.c: Likewise.
10645 * regrename.c: Likewise.
10646 * reload.c: Likewise.
10647 * reload1.c: Likewise.
10648 * reorg.c: Likewise.
10649 * resource.c: Likewise.
10650 * rtlanal.c: Likewise.
10651 * sched-deps.c: Likewise.
10652 * sched-ebb.c: Likewise.
10653 * sched-rgn.c: Likewise.
10654 * sel-sched-dump.c: Likewise.
10655 * sel-sched-ir.c: Likewise.
10656 * sel-sched.c: Likewise.
10657 * shrink-wrap.c: Likewise.
10658 * simplify-rtx.c: Likewise.
10659 * statistics.c: Likewise.
10660 * stmt.c: Likewise.
10661 * stor-layout.c: Likewise.
10662 * store-motion.c: Likewise.
10663 * symtab.c: Likewise.
10664 * targhooks.c: Likewise.
10665 * toplev.c: Likewise.
10666 * trans-mem.c: Likewise.
10667 * tree-cfg.c: Likewise.
10668 * tree-cfgcleanup.c: Likewise.
10669 * tree-dfa.c: Likewise.
10670 * tree-eh.c: Likewise.
10671 * tree-inline.c: Likewise.
10672 * tree-into-ssa.c: Likewise.
10673 * tree-nested.c: Likewise.
10674 * tree-nrv.c: Likewise.
10675 * tree-profile.c: Likewise.
10676 * tree-ssa-alias.c: Likewise.
10677 * tree-ssa-ccp.c: Likewise.
10678 * tree-ssa-copy.c: Likewise.
10679 * tree-ssa-copyrename.c: Likewise.
10680 * tree-ssa-dom.c: Likewise.
10681 * tree-ssa-operands.c: Likewise.
10682 * tree-ssa-propagate.c: Likewise.
10683 * tree-ssa-structalias.c: Likewise.
10684 * tree-ssa-tail-merge.c: Likewise.
10685 * tree-ssa-threadedge.c: Likewise.
10686 * tree-ssa-threadupdate.c: Likewise.
10687 * tree-ssa-uncprop.c: Likewise.
10688 * tree-ssa-uninit.c: Likewise.
10689 * tree-ssa.c: Likewise.
10690 * tree-stdarg.c: Likewise.
10691 * tree-tailcall.c: Likewise.
10692 * tree.c: Likewise.
10693 * tsan.c: Likewise.
10694 * valtrack.c: Likewise.
10695 * varasm.c: Likewise.
10696 * vmsdbgout.c: Likewise.
10697 * web.c: Likewise.
10698 * config/aarch64/aarch64.c: Add flattened includes from function.h.
10699 * config/alpha/alpha.c: Likewise.
10700 * config/arc/arc.c: Likewise.
10701 * config/arm/arm.c: Likewise.
10702 * config/avr/avr-log.c: Likewise.
10703 * config/avr/avr.c: Likewise.
10704 * config/bfin/bfin.c: Likewise.
10705 * config/c6x/c6x.c: Likewise.
10706 * config/cr16/cr16.c: Likewise.
10707 * config/cris/cris.c: Likewise.
10708 * config/darwin.c: Likewise.
10709 * config/epiphany/epiphany.c: Likewise.
10710 * config/epiphany/mode-switch-use.c: Likewise.
10711 * config/epiphany/resolve-sw-modes.c: Likewise.
10712 * config/fr30/fr30.c: Likewise.
10713 * config/frv/frv.c: Likewise.
10714 * config/h8300/h8300.c: Likewise.
10715 * config/i386/i386.c: Likewise.
10716 * config/ia64/ia64.c: Likewise.
10717 * config/iq2000/iq2000.c: Likewise.
10718 * config/lm32/lm32.c: Likewise.
10719 * config/m32c/m32c.c: Likewise.
10720 * config/m32r/m32r.c: Likewise.
10721 * config/m68k/m68k.c: Likewise.
10722 * config/mcore/mcore.c: Likewise.
10723 * config/mep/mep-pragma.c: Likewise.
10724 * config/mep/mep.c: Likewise.
10725 * config/microblaze/microblaze.c: Likewise.
10726 * config/mips/mips.c: Likewise.
10727 * config/mmix/mmix.c: Likewise.
10728 * config/mn10300/mn10300.c: Likewise.
10729 * config/moxie/moxie.c: Likewise.
10730 * config/msp430/msp430.c: Likewise.
10731 * config/nds32/nds32-cost.c: Likewise.
10732 * config/nds32/nds32-fp-as-gp.c: Likewise.
10733 * config/nds32/nds32-intrinsic.c: Likewise.
10734 * config/nds32/nds32-isr.c: Likewise.
10735 * config/nds32/nds32-md-auxiliary.c: Likewise.
10736 * config/nds32/nds32-memory-manipulation.c: Likewise.
10737 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
10738 * config/nds32/nds32-predicates.c: Likewise.
10739 * config/nds32/nds32.c: Likewise.
10740 * config/nios2/nios2.c: Likewise.
10741 * config/pa/pa.c: Likewise.
10742 * config/pdp11/pdp11.c: Likewise.
10743 * config/rl78/rl78.c: Likewise.
10744 * config/rs6000/rs6000.c: Likewise.
10745 * config/rx/rx.c: Likewise.
10746 * config/s390/s390.c: Likewise.
10747 * config/score/score.c: Likewise.
10748 * config/sh/sh.c: Likewise.
10749 * config/sparc/sparc.c: Likewise.
10750 * config/spu/spu.c: Likewise.
10751 * config/stormy16/stormy16.c: Likewise.
10752 * config/tilegx/tilegx.c: Likewise.
10753 * config/tilepro/tilepro.c: Likewise.
10754 * config/v850/v850.c: Likewise.
10755 * config/vax/vax.c: Likewise.
10756 * config/xtensa/xtensa.c: Likewise.
10757
10758 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
10759
10760 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
10761 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
10762
10763 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
10764
10765 * config/sh/sh-protos.h (fldi_ok): Remove.
10766 * config/sh/sh.c (fldi_ok): Likewise.
10767 (sh_secondary_reload): Don't use fldi_ok.
10768 * config/sh/constraints.md (G constraint, H constraint): Don't use
10769 fldi_ok.
10770
10771 2014-10-16 Martin Liska <mliska@suse.cz>
10772
10773 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
10774 Cast to unsigned long.
10775 (sem_item_optimizer::dump_cong_classes): Likewise.
10776
10777 2014-10-16 Tom de Vries <tom@codesourcery.com>
10778
10779 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
10780 with SSA_NAME_IN_FREELIST.
10781
10782 2014-10-16 Richard Biener <rguenther@suse.de>
10783
10784 PR middle-end/63554
10785 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
10786 (fold_builtin_strncat_chk): Move ...
10787 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
10788 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
10789
10790 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
10791
10792 PR target/59401
10793 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
10794 GBR to 0.
10795
10796 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
10797 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10798 Anna Tikhonova <anna.tikhonova@intel.com>
10799 Ilya Tocar <ilya.tocar@intel.com>
10800 Andrey Turetskiy <andrey.turetskiy@intel.com>
10801 Ilya Verbin <ilya.verbin@intel.com>
10802 Kirill Yukhin <kirill.yukhin@intel.com>
10803 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10804
10805 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
10806 V64QI modes.
10807
10808 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
10809 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10810 Anna Tikhonova <anna.tikhonova@intel.com>
10811 Ilya Tocar <ilya.tocar@intel.com>
10812 Andrey Turetskiy <andrey.turetskiy@intel.com>
10813 Ilya Verbin <ilya.verbin@intel.com>
10814 Kirill Yukhin <kirill.yukhin@intel.com>
10815 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10816
10817 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
10818 V16SI, V32HI, V64QI modes.
10819
10820 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
10821
10822 PR target/53513
10823 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
10824 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
10825
10826 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
10827 to match fp insn patterns.
10828 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
10829 list.
10830 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
10831 expand_df_unop, expand_df_binop): Remove.
10832 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
10833 FPSCR_STAT_REG as not call clobbered.
10834 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
10835 invoking fpscr_set_from_mem.
10836
10837 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
10838 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
10839 FPSCR_STAT_REG.
10840 (REGISTER_NAMES): Adjust.
10841 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
10842 (FIRST_PSEUDO_REGISTER): Increase to 156.
10843 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
10844 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
10845 FPSCR_STAT_REG.
10846 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
10847 FPSCR_MODES_REG and FPSCR_STAT_REG.
10848 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
10849
10850 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
10851 FPSCR_SZ): Add new constants.
10852 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
10853
10854 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
10855 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
10856 Use TARGET_FPU_ANY condition.
10857 (fpu_switch peephole2): Remove.
10858 (fpu_switch split): Use simple_mem_operand to capture the mem and
10859 adjust split implementation.
10860 (extend_psi_si, truncate_si_psi): New insns.
10861 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
10862 set of FPSCR_MODES_REG.
10863
10864 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
10865 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
10866 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
10867 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
10868 call_value_compact, call_value_compact_rettramp, call,
10869 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
10870 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
10871 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
10872 sibcall_value_compact, sibcall_value, call_value_pop_compact,
10873 call_value_pop_compact_rettramp, various unnamed splits):
10874 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
10875 function uses.
10876
10877 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
10878 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
10879 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
10880 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
10881 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
10882
10883 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
10884 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
10885 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
10886 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
10887 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
10888 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
10889 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
10890
10891 2014-10-16 Martin Liska <mliska@suse.cz>
10892 Jan Hubicka <hubicka@ucw.cz>
10893
10894 * Makefile.in: New object files included.
10895 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
10896 is printed.
10897 (verify_edge_corresponds_to_fndecl): More sensitive verification
10898 of nodes that are merged by IPA ICF.
10899 * cgraph.h (cgraph_node::num_references): New function.
10900 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
10901 * common.opt: New options ipa-icf, ipa-icf-functions and
10902 ipa-icf-variables introduced.
10903 * doc/invoke.texi: Documentation of new options introduced.
10904 * ipa-icf-gimple.c: New file.
10905 * ipa-icf-gimple.h: New file.
10906 * ipa-icf.c: New file.
10907 * ipa-icf.h: New file.
10908 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
10909 (input_overwrite_node): Likewise.
10910 * lto-section-in.c: New icf section added.
10911 * lto-streamer.h (enum lto_section_type): Likewise.
10912 * opts.c (common_handle_option): New option added.
10913 * passes.def: New pass included.
10914 * timevar.def: Time variable for IPA ICF added.
10915 * tree-pass.h: New IPA ICF pass entry point added.
10916
10917 2014-10-16 Richard Biener <rguenther@suse.de>
10918
10919 PR tree-optimization/63168
10920 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
10921 latches if after merging they are no longer simple.
10922 * cfghooks.c (merge_blocks): Handle merging a latch block
10923 into another block.
10924
10925 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
10926 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10927 Anna Tikhonova <anna.tikhonova@intel.com>
10928 Ilya Tocar <ilya.tocar@intel.com>
10929 Andrey Turetskiy <andrey.turetskiy@intel.com>
10930 Ilya Verbin <ilya.verbin@intel.com>
10931 Kirill Yukhin <kirill.yukhin@intel.com>
10932 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10933
10934 * config/i386/sse.md
10935 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
10936 support AVX-512VL instructions.
10937
10938 2014-10-16 DJ Delorie <dj@redhat.com>
10939
10940 * tree-core.h: Fix comment to not assume pointers are multiples of
10941 bytes.
10942
10943 2014-10-15 Tom Tromey <tromey@redhat.com>
10944
10945 * timevar.h (class auto_timevar): New class.
10946
10947 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
10948
10949 PR go/59432
10950 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
10951 Remove the second alternative.
10952 (regprefix): Remove mode attribute.
10953 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
10954 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
10955
10956 Revert:
10957 2013-11-05 Ian Lance Taylor <iant@google.com>
10958
10959 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
10960 If possible, add .cfi directives to record change to bx.
10961 * config/i386/i386.c (ix86_emit_cfi): New function.
10962 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
10963
10964 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
10965
10966 PR lto/62026
10967 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
10968 to duplicate.
10969 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
10970 at WPA time.
10971
10972 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
10973
10974 PR rtl-optimization/63448
10975 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
10976 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
10977 (LRA_MAX_INHERITANCE_PASSES): Use it.
10978 (lra_constraint_iter_after_spill): Remove.
10979 (lra_assignment_iter): New.
10980 (lra_assignment_iter_after_spill): New.
10981 * lra-assigns.c (lra_assignment_iter): New.
10982 (lra_assignment_iter_after_spill): New.
10983 (former_reload_pseudo_spill_p): New.
10984 (spill_for): Set up former_reload_pseudo_spill_p.
10985 (setup_live_pseudos_and_spill_after_risky): Ditto.
10986 (assign_by_spills): Ditto.
10987 (lra_assign): Increment lra_assignment_iter. Print the iteration
10988 number. Reset former_reload_pseudo_spill_p. Check
10989 lra_assignment_iter_after_spill.
10990 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
10991 lra_assignment_iter and lra_assignment_iter_after_spill.
10992 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
10993 (lra_constraints): Remove code with
10994 lra_assignment_iter_after_spill.
10995
10996 2014-10-15 Teresa Johnson <tejohnson@google.com>
10997
10998 PR bootstrap/63432
10999 * tree-ssa-threadupdate.c (recompute_probabilities): Better
11000 overflow checking.
11001
11002 2014-10-15 Renlin Li <renlin.li@arm.com>
11003
11004 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
11005 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
11006 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
11007 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
11008
11009 2014-10-15 Richard Biener <rguenther@suse.de>
11010
11011 * gimple-fold.c (gimple_fold_call): Properly keep virtual
11012 SSA form up-to-date when devirtualizing a call to
11013 __builtin_unreachable and avoid fixing up EH info here.
11014
11015 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
11016 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11017 Anna Tikhonova <anna.tikhonova@intel.com>
11018 Ilya Tocar <ilya.tocar@intel.com>
11019 Andrey Turetskiy <andrey.turetskiy@intel.com>
11020 Ilya Verbin <ilya.verbin@intel.com>
11021 Kirill Yukhin <kirill.yukhin@intel.com>
11022 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11023
11024 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
11025 to support AVX-512BW.
11026 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
11027 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
11028 (define_insn "*<plusminus_insn><mode>3"): Ditto.
11029 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
11030 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
11031 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
11032 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
11033 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
11034 (define_insn "*andnot<mode>3"): Ditto.
11035 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
11036 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
11037 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
11038 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
11039 (define_insn "*abs<mode>2"): Remove masking support.
11040 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
11041 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
11042 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
11043
11044 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
11045 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11046 Anna Tikhonova <anna.tikhonova@intel.com>
11047 Ilya Tocar <ilya.tocar@intel.com>
11048 Andrey Turetskiy <andrey.turetskiy@intel.com>
11049 Ilya Verbin <ilya.verbin@intel.com>
11050 Kirill Yukhin <kirill.yukhin@intel.com>
11051 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11052
11053 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
11054 * config/i386/sse.md
11055 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
11056 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
11057 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
11058 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
11059 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
11060 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
11061 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
11062
11063 2014-10-15 Renlin Li <renlin.li@arm.com>
11064
11065 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
11066
11067 2014-10-15 Jakub Jelinek <jakub@redhat.com>
11068
11069 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
11070 MINUS_EXPR in unsigned type to avoid undefined behavior.
11071
11072 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
11073
11074 * stor-layout.c (self_referential_size): Do not promote arguments.
11075
11076 2014-10-15 Marek Polacek <polacek@redhat.com>
11077
11078 * doc/invoke.texi: Update to reflect that GNU11 is the default
11079 mode for C.
11080 * c-common.h (c_language_kind): Update comment.
11081
11082 2014-10-15 Richard Biener <rguenther@suse.de>
11083
11084 * hash-table.c: Include bconfig.h if building for the host.
11085 * hash-table.h: Do not include ggc.h on the host but just declare
11086 a few ggc allocation templates.
11087
11088 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
11089 Jeff Law <law@redhat.com>
11090
11091 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
11092 multiple hard registers, use smaller mode derived from MODE.
11093
11094 2014-10-15 Andreas Schwab <schwab@suse.de>
11095
11096 * explow.c (convert_memory_address_addr_space_1): Mark in_const
11097 as ATTRIBUTE_UNUSED.
11098
11099 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
11100
11101 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
11102 (decide_unrolling): ... this one.
11103 (peel_loops_completely): Remove.
11104 (decide_peel_simple): Remove.
11105 (decide_peel_once_rolling): Remove.
11106 (decide_peel_completely): Remove.
11107 (peel_loop_simple): Remove.
11108 (peel_loop_completely): Remove.
11109 (unroll_and_peel_loops): Rename to ...
11110 (unroll_loops): ... this one; handle only unrolling.
11111 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
11112 LPT_PEEL_SIMPLE.
11113 (UAP_PEEL): Remove.
11114 (unroll_and_peel_loops): Remove.
11115 (unroll_loops): New.
11116 * passes.def: Replace
11117 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
11118 * loop-init.c (gate_rtl_unroll_and_peel_loops,
11119 rtl_unroll_and_peel_loops): Rename to ...
11120 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
11121 (pass_rtl_unroll_and_peel_loops): Rename to ...
11122 (pass_rtl_unroll_loops): ... this one.
11123 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
11124 (make_pass_rtl_unroll_loops): New.
11125 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
11126 (canonicalize_loop_induction_variables): Update.
11127
11128 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
11129
11130 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
11131 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
11132 !TARGET_HARD_FLOAT_POSTINC.
11133 (*lsip, *ssip): new instructions.
11134
11135 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
11136
11137 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
11138 remove.
11139
11140 2014-10-14 Andrew Pinski <apinski@cavium.com>
11141
11142 * explow.c (convert_memory_address_addr_space): Rename to ...
11143 (convert_memory_address_addr_space_1): This. Add in_const argument.
11144 Inside a CONST RTL, permute the conversion and addition of constant
11145 for zero and sign extended pointers.
11146 (convert_memory_address_addr_space): New function.
11147
11148 2014-10-14 Andrew Pinski <apinski@cavium.com>
11149
11150 Revert:
11151 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
11152
11153 PR middle-end/49721
11154 * explow.c (convert_memory_address_addr_space): Also permute the
11155 conversion and addition of constant for zero-extend.
11156
11157 2014-10-14 DJ Delorie <dj@redhat.com>
11158
11159 * config/msp430/msp430-modes.def (PSI): Add.
11160
11161 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
11162 (msp430_hard_regno_nregs_with_padding): New.
11163 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
11164 (msp430_hard_regno_nregs_has_padding): New.
11165 (msp430_hard_regno_nregs_with_padding): New.
11166 (msp430_unwind_word_mode): Use PSImode instead of SImode.
11167 (msp430_addr_space_legitimate_address_p): New.
11168 (msp430_asm_integer): New.
11169 (msp430_init_dwarf_reg_sizes_extra): New.
11170 (msp430_print_operand): Use X suffix for PSImode even in small model.
11171 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
11172 (PTR_SIZE): ...but 4 bytes for EH.
11173 (SIZE_TYPE): Use __int20.
11174 (PTRDIFF_TYPE): Likewise.
11175 (INCOMING_FRAME_SP_OFFSET): Adjust.
11176 * config/msp430/msp430.md (movqi_topbyte): New.
11177 (movpsi): Use fixed suffixes.
11178 (movsipsi2): Enable for 430X, not large model.
11179 (extendhipsi2): Likewise.
11180 (zero_extendhisi2): Likewise.
11181 (zero_extendhisipsi2): Likewise.
11182 (extend_and_shift1_hipsi2): Likewise.
11183 (extendpsisi2): Likewise.
11184 (*bitbranch<mode>4_z): Fix suffix logic.
11185
11186 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
11187
11188 PR ada/62019
11189 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
11190 do not choke on null node.
11191 <VAR_DECL>: Likewise.
11192
11193 2014-10-14 DJ Delorie <dj@redhat.com>
11194
11195 * machmode.h (int_n_data_t): New.
11196 (int_n_enabled_p): New.
11197 (int_n_data): New.
11198 * tree.c (int_n_enabled_p): New.
11199 (int_n_trees): New.
11200 (make_or_reuse_type): Check for all __intN types, not just
11201 __int128.
11202 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
11203 entries.
11204 * tree.h (int128_integer_type_node): Remove.
11205 (int128_unsigned_type_node): Remove.
11206 (int_n_trees_t): New.
11207 (int_n_enabled_p): New.
11208 (int_n_trees): New.
11209 * toplev.c (standard_type_bitsize): New.
11210 (do_compile): Check which __intN types are enabled for the current
11211 run.
11212 * builtin-types.def (BT_INT128): Remove.
11213 (BT_UINT128): Remove.
11214 * machmode.def: Add macro to create __int128 for all targets.
11215 * stor-layout.c (mode_for_size): Support __intN types.
11216 (smallest_mode_for_size): Likewise.
11217 (initialize_sizetypes): Support __intN types.
11218 * genmodes.c (struct mode_data): Add int_n field.
11219 (blank_mode): Likewise.
11220 (INT_N): New.
11221 (make_int_n): New.
11222 (emit_insn_modes_h): Count __intN entries and define
11223 NUM_INT_N_ENTS.
11224 (emit_mode_int_n): New.
11225 (emit_insn_modes_c): Call it.
11226 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
11227 types, not just __int128.
11228 * tree-core.h (integer_type_kind): Remove __int128-specific
11229 entries, reserve spots for __intN entries.
11230
11231 * config/msp430/msp430-modes.def (PSI): Add.
11232
11233 2014-10-14 Kito Cheng <kito@0xlab.org>
11234
11235 * ira.c: Fix typo in comment.
11236 * ira.h: Ditto.
11237 * ira-build.c: Ditto.
11238 * ira-color.c: Ditto.
11239 * ira-emit.c: Ditto.
11240 * ira-int.h: Ditto.
11241 * ira-lives.c: Ditto.
11242
11243 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
11244
11245 PR rtl-optimization/63475
11246 * alias.c (true_dependence_1): Always use get_addr to extract
11247 true address operands from x_addr and mem_addr. Use extracted
11248 address operands to check for references with alignment ANDs.
11249 Use extracted address operands with find_base_term and
11250 base_alias_check. For noncanonicalized operands call canon_rtx with
11251 extracted address operand.
11252 (write_dependence_1): Ditto.
11253 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
11254
11255 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
11256
11257 PR target/63534
11258 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
11259 __morestack local.
11260
11261 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11262 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11263 Anna Tikhonova <anna.tikhonova@intel.com>
11264 Ilya Tocar <ilya.tocar@intel.com>
11265 Andrey Turetskiy <andrey.turetskiy@intel.com>
11266 Ilya Verbin <ilya.verbin@intel.com>
11267 Kirill Yukhin <kirill.yukhin@intel.com>
11268 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11269
11270 * config/i386/i386.c
11271 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
11272 (ix86_expand_int_vcond): Ditto.
11273
11274 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11275 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11276 Anna Tikhonova <anna.tikhonova@intel.com>
11277 Ilya Tocar <ilya.tocar@intel.com>
11278 Andrey Turetskiy <andrey.turetskiy@intel.com>
11279 Ilya Verbin <ilya.verbin@intel.com>
11280 Kirill Yukhin <kirill.yukhin@intel.com>
11281 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11282
11283 * config/i386/i386.c
11284 (emit_reduc_half): Handle V64QI and V32HI mode.
11285 * config/i386/sse.md
11286 (define_mode_iterator VI_AVX512BW): New.
11287 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
11288
11289 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11290 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11291 Anna Tikhonova <anna.tikhonova@intel.com>
11292 Ilya Tocar <ilya.tocar@intel.com>
11293 Andrey Turetskiy <andrey.turetskiy@intel.com>
11294 Ilya Verbin <ilya.verbin@intel.com>
11295 Kirill Yukhin <kirill.yukhin@intel.com>
11296 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11297
11298 * config/i386/sse.md
11299 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
11300
11301 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11302 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11303 Anna Tikhonova <anna.tikhonova@intel.com>
11304 Ilya Tocar <ilya.tocar@intel.com>
11305 Andrey Turetskiy <andrey.turetskiy@intel.com>
11306 Ilya Verbin <ilya.verbin@intel.com>
11307 Kirill Yukhin <kirill.yukhin@intel.com>
11308 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11309
11310 * config/i386/i386.c
11311 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
11312 * config/i386/sse.md
11313 (define_mode_iterator VI): Add V64QI and V32HI modes.
11314
11315 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11316 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11317 Anna Tikhonova <anna.tikhonova@intel.com>
11318 Ilya Tocar <ilya.tocar@intel.com>
11319 Andrey Turetskiy <andrey.turetskiy@intel.com>
11320 Ilya Verbin <ilya.verbin@intel.com>
11321 Kirill Yukhin <kirill.yukhin@intel.com>
11322 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11323
11324 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
11325
11326 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11328 Anna Tikhonova <anna.tikhonova@intel.com>
11329 Ilya Tocar <ilya.tocar@intel.com>
11330 Andrey Turetskiy <andrey.turetskiy@intel.com>
11331 Ilya Verbin <ilya.verbin@intel.com>
11332 Kirill Yukhin <kirill.yukhin@intel.com>
11333 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11334
11335 * config/i386/sse.md
11336 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
11337 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
11338
11339 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11340 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11341 Anna Tikhonova <anna.tikhonova@intel.com>
11342 Ilya Tocar <ilya.tocar@intel.com>
11343 Andrey Turetskiy <andrey.turetskiy@intel.com>
11344 Ilya Verbin <ilya.verbin@intel.com>
11345 Kirill Yukhin <kirill.yukhin@intel.com>
11346 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11347
11348 * config/i386/sse.md
11349 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
11350 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
11351
11352 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11353 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11354 Anna Tikhonova <anna.tikhonova@intel.com>
11355 Ilya Tocar <ilya.tocar@intel.com>
11356 Andrey Turetskiy <andrey.turetskiy@intel.com>
11357 Ilya Verbin <ilya.verbin@intel.com>
11358 Kirill Yukhin <kirill.yukhin@intel.com>
11359 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11360
11361 * config/i386/sse.md
11362 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
11363 (define_mode_iterator VI2_AVX2): Add V32HI mode.
11364 (define_expand "mul<mode>3<mask_name>"): Add masking.
11365 (define_insn "*mul<mode>3<mask_name>"): Ditto.
11366 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
11367 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
11368 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
11369 (define_mode_attr SDOT_PMADD_SUF): Ditto.
11370 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
11371 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
11372 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
11373 (define_insn "avx2_packusdw"): Delete.
11374 (define_insn "sse4_1_packusdw"): Ditto.
11375 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
11376
11377 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11378 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11379 Anna Tikhonova <anna.tikhonova@intel.com>
11380 Ilya Tocar <ilya.tocar@intel.com>
11381 Andrey Turetskiy <andrey.turetskiy@intel.com>
11382 Ilya Verbin <ilya.verbin@intel.com>
11383 Kirill Yukhin <kirill.yukhin@intel.com>
11384 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11385
11386 * config/i386/sse.md
11387 (define_insn "vec_dup<mode>"): Update constraints.
11388
11389 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11390 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11391 Anna Tikhonova <anna.tikhonova@intel.com>
11392 Ilya Tocar <ilya.tocar@intel.com>
11393 Andrey Turetskiy <andrey.turetskiy@intel.com>
11394 Ilya Verbin <ilya.verbin@intel.com>
11395 Kirill Yukhin <kirill.yukhin@intel.com>
11396 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11397
11398 * config/i386/sse.md
11399 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
11400 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
11401 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
11402
11403 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11404 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11405 Anna Tikhonova <anna.tikhonova@intel.com>
11406 Ilya Tocar <ilya.tocar@intel.com>
11407 Andrey Turetskiy <andrey.turetskiy@intel.com>
11408 Ilya Verbin <ilya.verbin@intel.com>
11409 Kirill Yukhin <kirill.yukhin@intel.com>
11410 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11411
11412 * config/i386/sse.md
11413 (define_expand "mul<mode>3<mask_name>"): Add masking.
11414
11415 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11416 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11417 Anna Tikhonova <anna.tikhonova@intel.com>
11418 Ilya Tocar <ilya.tocar@intel.com>
11419 Andrey Turetskiy <andrey.turetskiy@intel.com>
11420 Ilya Verbin <ilya.verbin@intel.com>
11421 Kirill Yukhin <kirill.yukhin@intel.com>
11422 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11423
11424 * config/i386/sse.md
11425 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
11426 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
11427
11428 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11429 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11430 Anna Tikhonova <anna.tikhonova@intel.com>
11431 Ilya Tocar <ilya.tocar@intel.com>
11432 Andrey Turetskiy <andrey.turetskiy@intel.com>
11433 Ilya Verbin <ilya.verbin@intel.com>
11434 Kirill Yukhin <kirill.yukhin@intel.com>
11435 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11436
11437 * config/i386/sse.md
11438 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
11439 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
11440 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
11441 Ditto.
11442
11443 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11444 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11445 Anna Tikhonova <anna.tikhonova@intel.com>
11446 Ilya Tocar <ilya.tocar@intel.com>
11447 Andrey Turetskiy <andrey.turetskiy@intel.com>
11448 Ilya Verbin <ilya.verbin@intel.com>
11449 Kirill Yukhin <kirill.yukhin@intel.com>
11450 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11451
11452 * config/i386/sse.md
11453 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
11454 use VF_128_256 mode iterator and update assembler emit code.
11455 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
11456 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
11457 Add masking, use VF_128_256 mode iterator.
11458 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
11459 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
11460 Add masking, use VF_128_256 mode iterator and update assembler emit
11461 code.
11462 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
11463 (define_mode_attr avx512flogicsuff): Delete.
11464 (define_insn "avx512f_<logic><mode>"): Ditto.
11465 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
11466 MODE_TI.
11467 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
11468
11469 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11470 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11471 Anna Tikhonova <anna.tikhonova@intel.com>
11472 Ilya Tocar <ilya.tocar@intel.com>
11473 Andrey Turetskiy <andrey.turetskiy@intel.com>
11474 Ilya Verbin <ilya.verbin@intel.com>
11475 Kirill Yukhin <kirill.yukhin@intel.com>
11476 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11477
11478 * config/i386/sse.md
11479 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
11480 (define_expand "vashr<mode>3<mask_name>"): Add masking,
11481 use VI12_128 mode iterator.
11482 (define_expand "ashrv2di3<mask_name>"): New.
11483
11484 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11485 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11486 Anna Tikhonova <anna.tikhonova@intel.com>
11487 Ilya Tocar <ilya.tocar@intel.com>
11488 Andrey Turetskiy <andrey.turetskiy@intel.com>
11489 Ilya Verbin <ilya.verbin@intel.com>
11490 Kirill Yukhin <kirill.yukhin@intel.com>
11491 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11492
11493 * config/i386/i386.c
11494 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
11495 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
11496 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
11497 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
11498 CODE_FOR_avx512vl_ucmpv4si3_mask.
11499 * config/i386/sse.md
11500 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
11501 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
11502 (define_insn
11503 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
11504 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
11505 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
11506 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
11507 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
11508 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
11509
11510 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11511 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11512 Anna Tikhonova <anna.tikhonova@intel.com>
11513 Ilya Tocar <ilya.tocar@intel.com>
11514 Andrey Turetskiy <andrey.turetskiy@intel.com>
11515 Ilya Verbin <ilya.verbin@intel.com>
11516 Kirill Yukhin <kirill.yukhin@intel.com>
11517 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11518
11519 * config/i386/sse.md
11520 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
11521 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
11522 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
11523 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
11524 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
11525 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
11526 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
11527 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
11528 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
11529
11530 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
11531 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11532 Anna Tikhonova <anna.tikhonova@intel.com>
11533 Ilya Tocar <ilya.tocar@intel.com>
11534 Andrey Turetskiy <andrey.turetskiy@intel.com>
11535 Ilya Verbin <ilya.verbin@intel.com>
11536 Kirill Yukhin <kirill.yukhin@intel.com>
11537 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11538
11539 * config/i386/sse.md
11540 (define_insn "avx512f_blendm<mode>"): Delete.
11541 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
11542 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
11543 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
11544 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
11545 (define_insn
11546 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
11547 Remove.
11548 (define_insn
11549 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
11550 New.
11551 (define_insn
11552 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
11553 Ditto.
11554 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
11555 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
11556 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
11557 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
11558 Delete.
11559 (define_insn
11560 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
11561 New.
11562 (define_insn
11563 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
11564 Ditto.
11565 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
11566 Delete.
11567 (define_insn
11568 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
11569 New.
11570 (define_insn
11571 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
11572 Ditto.
11573
11574 2014-10-14 Richard Biener <rguenther@suse.de>
11575
11576 PR tree-optimization/63512
11577 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
11578 modified.
11579
11580 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
11581
11582 PR target/63260
11583 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
11584 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
11585 of FPSCR.
11586 (negsf2_i): Rename to *negsf2_i.
11587 (abssf2_i): Rename to *abssf2_i.
11588 (negdf2_i): Rename to *negdf2_i.
11589 (absdf2_i): Rename to *absdf2_i.
11590
11591 2014-10-14 Felix Yang <felix.yang@huawei.com>
11592 Jeff Law <law@redhat.com>
11593
11594 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
11595 "replace" into boolean bitfields; turn member "loop_depth" into a short
11596 integer; add new member "no_equiv" and "reserved".
11597 (no_equiv): Set no_equiv of struct equivalence if register is marked
11598 as having no known equivalence.
11599 (update_equiv_regs): Check all definitions for a multiple-set
11600 register to make sure that the RHS have the same value.
11601
11602 2014-10-13 Richard Henderson <rth@redhat.com>
11603
11604 * combine-stack-adj.c (no_unhandled_cfa): New.
11605 (maybe_merge_cfa_adjust): New.
11606 (combine_stack_adjustments_for_block): Use them.
11607
11608 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
11609
11610 * Makefile.in (TAGS): Tag ../include files.
11611
11612 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11613
11614 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
11615 to rs6000_dbx_register_number.
11616 (DWARF_FRAME_REGNUM): Redefine as identity map.
11617 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
11618 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
11619 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
11620 argument to handle .debug_frame and .eh_frame directly. Always
11621 translate SPE high register numbers. Add special treatment for CR,
11622 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
11623
11624 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
11625 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
11626 (RS6000_USE_DWARF_NUMBERING): Define.
11627 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
11628 (RS6000_USE_DWARF_NUMBERING): Define.
11629 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
11630 (RS6000_USE_DWARF_NUMBERING): Define.
11631 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
11632 (RS6000_USE_DWARF_NUMBERING): Define.
11633 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
11634 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
11635
11636 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
11637
11638 * config/i386/i386.c (ix86_address_cost): Lower cost for
11639 when address contains GOT register.
11640
11641 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
11642 Vladimir Makarov <vmakarov@redhat.com>
11643
11644 PR target/8340
11645 PR middle-end/47602
11646 PR rtl-optimization/55458
11647 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
11648 (ix86_init_pic_reg): New.
11649 (ix86_select_alt_pic_regnum): Add check on pseudo register.
11650 (ix86_save_reg): Likewise.
11651 (ix86_expand_prologue): Remove PIC register initialization
11652 now performed in ix86_init_pic_reg.
11653 (ix86_output_function_epilogue): Add check on pseudo register.
11654 (set_pic_reg_ever_alive): New.
11655 (legitimize_pic_address): Replace df_set_regs_ever_live with new
11656 set_pic_reg_ever_alive.
11657 (legitimize_tls_address): Likewise.
11658 (ix86_pic_register_p): New check.
11659 (ix86_delegitimize_address): Add check on pseudo register.
11660 (ix86_expand_call): Insert move from pseudo PIC register to ABI
11661 defined REAL_PIC_OFFSET_TABLE_REGNUM.
11662 (TARGET_INIT_PIC_REG): New.
11663 (TARGET_USE_PSEUDO_PIC_REG): New.
11664 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
11665 if pic_offset_table_rtx exists.
11666 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
11667 Document.
11668 * doc/tm.texi: Regenerate.
11669 * function.c (assign_parms): Generate pseudo register for PIC.
11670 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
11671 register.
11672 * ira-color.c (color_pass): Add check on pseudo register.
11673 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
11674 register.
11675 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
11676 register.
11677 (ira): Add target specific PIC register initialization.
11678 (do_reload): Keep PIC pseudo register.
11679 * lra-assigns.c (spill_for): Add checks on pseudo register.
11680 * lra-constraints.c (contains_symbol_ref_p): New.
11681 (lra_constraints): Enable lra risky transformations when PIC is pseudo
11682 register.
11683 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
11684 * target.def (use_pseudo_pic_reg): New.
11685 (init_pic_reg): New.
11686
11687 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
11688
11689 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
11690 Remove m_SILVERMONT and m_INTEL from the tune.
11691
11692 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11693
11694 PR libfortran/63471
11695 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11696 when _HPUX_SOURCE is defined.
11697
11698 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
11699
11700 PR tree-optimization/62127
11701 * tree.c (remap_type_1): When remapping array, remap
11702 also its type.
11703
11704 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
11705
11706 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
11707 longer impact parallelization.
11708
11709 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
11710
11711 PR bootstrap/63496
11712 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
11713
11714 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
11715
11716 * asan.c (instrument_derefs): BIT_FIELD_REF added.
11717
11718 2014-10-13 Richard Biener <rguenther@suse.de>
11719
11720 PR tree-optimization/63419
11721 * gimple-fold.h (gimple_convert): New function.
11722 * gimple-fold.c (gimple_convert): Likewise.
11723 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
11724 to split out required conversions early.
11725
11726 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
11727
11728 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
11729 Add the parts of an insn in reverse order, with the pattern at
11730 the top of the queue. Detect when we're iterating over a SEQUENCE
11731 pattern and in that case just consider patterns of subinstructions.
11732
11733 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
11734
11735 PR target/59401
11736 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
11737 of rtx.
11738 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
11739 insn walking.
11740 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
11741 address. Use def chains to handle GBR clobbering call insns.
11742
11743 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
11744
11745 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
11746 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
11747 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
11748 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
11749 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
11750 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
11751 * doc/gty.texi (for_user): Document new option.
11752 * gengtype.c (create_user_defined_type): Don't try to get a struct for
11753 char.
11754 (walk_type): Don't error out on for_user option.
11755 (write_func_for_structure): Emit user marking routines if requested by
11756 for_user option.
11757 (write_local_func_for_structure): Likewise.
11758 (main): Mark types with for_user option as used.
11759 * ggc.h (gt_pch_nx): Add overload for unsigned int.
11760 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
11761 * hash-table.h (ggc_hasher): New struct.
11762 (hash_table::create_ggc): New function.
11763 (gt_pch_nx): New overload for hash_table.
11764
11765 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
11766
11767 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
11768 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
11769 * config/sh/sh.c: Likewise.
11770 * config/sh/sh-mem.cc: Likewise.
11771 * config/sh/sh.md: Likewise.
11772 * config/sh/predicates.md: Likewise.
11773 * config/sh/sync.md: Likewise.
11774
11775 2014-10-11 Martin Liska <mliska@suse.cz>
11776
11777 PR middle-end/63376
11778 * cgraphunit.c (symbol_table::process_new_functions): Missing call
11779 for call_cgraph_insertion_hooks added.
11780
11781 2014-10-10 Jakub Jelinek <jakub@redhat.com>
11782
11783 PR c/63495
11784 * stor-layout.c (min_align_of_type): Don't decrease alignment
11785 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
11786 TYPE_USER_ALIGN is set.
11787
11788 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
11789
11790 PR rtl-optimization/63483
11791 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
11792 references when alignment ANDs are involved.
11793 (write_dependence_p): Ditto.
11794 (may_alias_p): Ditto.
11795
11796 2014-10-10 Marek Polacek <polacek@redhat.com>
11797
11798 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
11799 * doc/invoke.texi: Document -fsanitize=object-size.
11800 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
11801 or it into SANITIZE_UNDEFINED.
11802 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
11803 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
11804 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
11805 * opts.c (common_handle_option): Handle -fsanitize=object-size.
11806 * ubsan.c: Include tree-object-size.h.
11807 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
11808 (ubsan_expand_bounds_ifn): Use false instead of 0.
11809 (ubsan_expand_objsize_ifn): New function.
11810 (instrument_object_size): New function.
11811 (pass_ubsan::execute): Add object size instrumentation.
11812 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
11813
11814 2014-10-10 Richard Henderson <rth@redhat.com>
11815
11816 PR target/63404
11817 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
11818 Restrict the set of expressions we're willing to move.
11819
11820 2014-10-10 Jeff Law <law@redhat.com>
11821
11822 * ira.c (struct equivalence): Promote INIT_INSNs field to
11823 an rtx_insn_list. Add comments.
11824 (no_equiv): Promote LIST to an rtx_insn_list. Update
11825 testing for and creating the special marker. Use methods
11826 to extract the insn and next pointers. Promote INSN to an
11827 rtx_insn.
11828 (update_equiv_regs): Update test for special marker in the
11829 INIT_INSNs list.
11830
11831 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11832
11833 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
11834 * configure: Regenerate.
11835 * config/aarch64/aarch64.c (aarch64_override_options): Handle
11836 TARGET_FIX_ERR_A53_835769_DEFAULT.
11837 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
11838 value to 2.
11839 * doc/install.texi (aarch64*-*-*): Document
11840 new --enable-fix-cortex-a53-835769 option.
11841
11842 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11843 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11844
11845 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
11846 (ADJUST_INSN_LENGTH): Define.
11847 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
11848 * config/aarch64/aarch64.c (is_mem_p): New function.
11849 (is_memory_op): Likewise.
11850 (aarch64_prev_real_insn): Likewise.
11851 (is_madd_op): Likewise.
11852 (dep_between_memop_and_curr): Likewise.
11853 (aarch64_madd_needs_nop): Likewise.
11854 (aarch64_final_prescan_insn): Likewise.
11855 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
11856 and -mno-fix-cortex-a53-835769 options.
11857
11858 2014-10-10 Jakub Jelinek <jakub@redhat.com>
11859
11860 PR tree-optimization/63464
11861 * tree-switch-conversion.c (struct case_bit_test): Remove
11862 hi and lo fields, add wide_int mask field.
11863 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
11864 hi/lo fields into wide_int mask operations, optimize by pretending
11865 minval to be 0 if maxval is small enough.
11866 (process_switch): Adjust caller.
11867
11868 2014-10-10 Richard Biener <rguenther@suse.de>
11869
11870 PR tree-optimization/63379
11871 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
11872 a neutral operand for min/max when it is not a reduction chain.
11873
11874 2014-10-10 Richard Biener <rguenther@suse.de>
11875
11876 PR tree-optimization/63476
11877 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
11878 (BB_LIVE_VOP_ON_EXIT): New define.
11879 (create_expression_by_pieces): Assign VUSEs to stmts.
11880 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
11881 (pass_pre::execute): Assert virtual SSA form is up-to-date
11882 after insertion.
11883
11884 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
11885
11886 * lra-assigns.c (assign_by_spills): Error out on spill failure.
11887
11888 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
11889
11890 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
11891 assertion.
11892
11893 2014-10-09 Richard Biener <rguenther@suse.de>
11894
11895 PR tree-optimization/63380
11896 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
11897 may trap.
11898
11899 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
11900
11901 * config/avr/avr.opt (mmcu=): Change to have a string value.
11902 (mn-flash=, mskip-bug, march=, mrmw): New options.
11903 (HeaderInclude): New.
11904 (mmcu=): Remove Var / Init clauses.
11905 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
11906 -specs option.
11907 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
11908 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
11909 (SYMBOL_FLAG_IO_LOW): Define.
11910 (avr_device_to_as, avr_device_to_ld): Don't declare.
11911 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
11912 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
11913 (EXTRA_SPEC_FUNCTIONS): Don't define.
11914 (ASM_SPEC): Translate -arch= option to -mmcu= option.
11915 (LINK_SPEC): Translate -arch= option to -m= option.
11916 Don't use device_to_ld / device_to_data_start.
11917 (STARTFILE_SPEC): Now empty.
11918 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
11919 * config/avr/gen-avr-mmcu-specs.c: New file.
11920 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
11921 (s-device-specs): Likewise.
11922 (GCC_PASSES): Add s-device-specs.
11923 (install-driver): Depend on install-device-specs.
11924 (install-device-specs): New rule.
11925 * config/avr/avr.c (avr_option_override): Look up mcu arch by
11926 avr_arch_index and provide fallback initialization for avr_n_flash.
11927 (varasm.h): #include.
11928 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
11929 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
11930 (avr_attribute_table): Add "io", "address" and "io_low".
11931 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
11932 Add special handling for symbols with "io" and/or "address" attributes.
11933 (avr_asm_asm_output_aligned_bss): New function.
11934 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
11935 as appropriate. Handle io_low attribute.
11936 (avr_out_sbxx_branch): Handle symbolic io addresses.
11937 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
11938 avr_n_flash instead of avr_current_device->n_flash.
11939 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
11940 (avr_emit_movmemhi): Likewise.
11941 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
11942 Use TARGET_RMW instead of avr_current_device->dev_attributes.
11943 Don't define avr_current_device->macro (that's the specfile's job).
11944 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
11945 * config/avr/avr.c (avr_2word_insn_p): Likewise.
11946 * config/avr/avr.md (*cpse.ne): Likewise.
11947 (mov<mode>): Use avr_eval_addr_attrib.
11948 (cbi): Change constraint for low_io_address_operand operand to "i".
11949 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
11950 * config/avr/predicates.md (io_address_operand):
11951 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
11952 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
11953 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
11954 Update prototype.
11955 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
11956 * config/avr/genmultilib.awk: Use -march=.
11957 Remove Multilib matches processing.
11958 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
11959 * config/avr/avr-arch.h: Add double include guard.
11960 (avr_mcu_t) <library_name>: Update comment.
11961 * config/avr/driver-avr.c (avr_device_to_as): Delete.
11962 (avr_device_to_ld, avr_device_to_data_start): Likewise.
11963 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
11964 (avr_device_to_sp8): Likewise.
11965 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
11966
11967 * doc/extend.texi (io, address): Document new AVR variable attributes.
11968 (io_low): Likewise.
11969
11970 2014-10-09 Marek Polacek <polacek@redhat.com>
11971
11972 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
11973
11974 2014-10-08 Richard Biener <rguenther@suse.de>
11975
11976 PR tree-optimization/61969
11977 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
11978 variables.
11979
11980 2014-10-09 Richard Biener <rguenther@suse.de>
11981
11982 PR tree-optimization/63445
11983 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
11984 overflow for non-equality compares.
11985
11986 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
11987
11988 PR rtl-optimization/57003
11989 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
11990 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
11991 killing regs_invalidated_by_call.
11992
11993 2014-10-08 Teresa Johnson <tejohnson@google.com>
11994
11995 PR bootstrap/63432.
11996 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
11997 (ssa_fix_duplicate_block_edges): Invoke it.
11998 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
11999
12000 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
12001
12002 PR target/52941
12003 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
12004 atomic_fetch_<fetchop_name>si_hard,
12005 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
12006 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
12007 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
12008 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
12009
12010 2014-10-08 Rong Xu <xur@google.com>
12011
12012 * gcov-tool.c (profile_overlap): New driver function
12013 to compute profile overlap.
12014 (print_overlap_usage_message): New.
12015 (overlap_usage): New.
12016 (do_overlap): New.
12017 (print_usage): Add calls to overlap function.
12018 (main): Ditto.
12019 * doc/gcov-tool.texi: Add documentation.
12020
12021 2014-10-08 Steve Ellcey <sellcey@mips.com>
12022
12023 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
12024 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
12025
12026 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
12027
12028 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
12029 pattern matching of MEM_REF.
12030 (check_stmt_for_type_change): Update.
12031
12032 2014-10-08 Steve Ellcey <sellcey@mips.com>
12033
12034 * config/mips/linux64.h: Remove.
12035 * config/mips/gnu-user64.h: Remove.
12036 * gcc.config (mips*-*-*): Remove references to linux64.h and
12037 gnu-user64.h
12038 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
12039 with modified version from gnu-user64.h.
12040 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
12041 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
12042 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
12043 linux64.h.
12044 (GNU_USER_LINK_EMULATION64): Ditto.
12045 (GNU_USER_LINK_EMULATIONN32): Ditto.
12046 (GLIBC_DYNAMIC_LINKER32): Ditto.
12047 (GLIBC_DYNAMIC_LINKER64): Ditto.
12048 (GLIBC_DYNAMIC_LINKERN32): Ditto.
12049 (UCLIBC_DYNAMIC_LINKER32): Ditto.
12050 (UCLIBC_DYNAMIC_LINKER64): Ditto.
12051 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
12052 (BIONIC_DYNAMIC_LINKERN32): Ditto.
12053 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
12054 (GLIBC_DYNAMIC_LINKER): Delete.
12055 (UCLIBC_DYNAMIC_LINKER): Delete.
12056
12057 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
12058 Richard Biener <rguenther@suse.de>
12059
12060 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
12061 Get address space from operand 0 (BASE).
12062
12063 2014-10-07 Iain Sandoe <iain@codesourcery.com>
12064
12065 PR target/61387
12066 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
12067
12068 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
12069
12070 * dwarf2out.c: Remove current_function_has_inlines.
12071 (gen_subprogram_die): Same.
12072 (gen_inlined_subroutine_die): Same.
12073
12074 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
12075
12076 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
12077 type.
12078 (_addcarry_u64): Ditto.
12079 (_addcarryx_u64): Ditto.
12080
12081 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
12082
12083 * cgraph.h (cgraph_node::get_fun): Declare.
12084 * cgraph.c (cgraph_node::get_fun): New method.
12085 * ipa-inline.c (can_inline_edge_p): Use it.
12086
12087 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
12088
12089 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
12090 and -ftrapping-math.
12091 * lto-wrapper.c (merge_and_complain): Likewise.
12092 (run_gcc): Likewise.
12093
12094 2014-10-06 Rong Xu <xur@google.com>
12095
12096 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
12097 * tree-profile.c: (params.h): New include.
12098 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
12099 and __gcov_indirect_call_topn_counters for
12100 indirect_call_topn_profile.
12101 (gimple_init_edge_profiler): New decls for
12102 __gcov_indirect_call_topn_profiler.
12103 (gimple_gen_ic_profiler): Generate the correct profiler call.
12104 (gimple_gen_ic_func_profiler): Fix format.
12105 * value-prof.c (params.h): New include.
12106 (dump_histogram_value): Hanlde indirect_call_topn counters.
12107 (stream_in_histogram_value): Ditto.
12108 (gimple_indirect_call_to_profile): Use indirect_call_topn
12109 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
12110 (gimple_find_values_to_profile): Hanlde indirect_call_topn
12111 counters.
12112 * value-prof.h (enum hist_type): Histrogram type for
12113 indirect_call_topn counters.
12114 * profile.c (instrument_values): Instrument
12115 indirect_call_topn counters.
12116
12117 2014-10-06 Rong Xu <xur@google.com>
12118
12119 * Makefile.in: Fix dependence.
12120 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
12121 indirect call topn profiler.
12122 * gcov-io.h: Ditto.
12123
12124 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
12125
12126 * calls.c (expand_call): Do not use the target as the return slot if
12127 it is not sufficiently aligned.
12128
12129 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12130
12131 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
12132 discussion of permutes and why we don't handle them.
12133
12134 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
12135
12136 * config/sparc/predicates.md (int_register_operand): Delete.
12137
12138 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
12139
12140 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
12141
12142 2014-10-06 Jakub Jelinek <jakub@redhat.com>
12143
12144 * ubsan.h (ubsan_get_source_location): New prototype.
12145 * ubsan.c (ubsan_source_location_type): New variable.
12146 Function renamed to ...
12147 (ubsan_get_source_location_type): ... this. Cache
12148 return value in ubsan_source_location_type variable.
12149 (ubsan_source_location, ubsan_create_data): Use
12150 ubsan_get_source_location_type instead of
12151 ubsan_source_location_type.
12152 * asan.c (asan_protect_global): Don't protect globals
12153 with ubsan_get_source_location_type () type.
12154 (asan_add_global): Provide global decl location info
12155 if possible.
12156
12157 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
12158
12159 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
12160 sanity check.
12161
12162 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
12163
12164 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
12165 on size.
12166 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
12167 into vptr pointer.
12168 (ipa_polymorphic_call_context::dump): Fix formating.
12169 (walk_ssa_copies): Add logic avoiding loops; update uses.
12170 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
12171
12172 2014-10-02 Mark Wielaard <mjw@redhat.com>
12173
12174 PR debug/63239
12175 * dwarf2out.c (gen_subprogram_die): When a member function is
12176 explicitly deleted then add a DW_AT_GNU_deleted attribute.
12177 * langhooks.h (struct lang_hooks_for_decls): Add
12178 function_decl_deleted_p langhook.
12179 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
12180 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
12181
12182 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
12183
12184 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
12185 NULL pointer checks.
12186 (ipa_polymorphic_call_context::get_dynamic_type): Return true
12187 if type doesn't change.
12188 * cgraph.h (cgraph_indirect_call_info): New flag.
12189 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
12190 (cgraph_node::dump): Dump it.
12191 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
12192 of context.get_dynamic_type.
12193 (ipa_make_edge_direct_to_target): Do not speculate
12194 edge that is already speuclative.
12195 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
12196 speculate to __builtin_unreachable
12197 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
12198 vptr_changed.
12199 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
12200
12201 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
12202
12203 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
12204 get_dynamic_type; drop TODO.
12205 * ipa-polymorphic-call.c
12206 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
12207 for otr_type to be unknown.
12208
12209 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
12210
12211 * common/config/score/score-common.c: Remove.
12212 * config.gcc: Remove support for score-*.
12213 * config/score/constraints.md: Remove.
12214 * config/score/elf.h: Remove.
12215 * config/score/predicates.md: Remove.
12216 * config/score/score-conv.h: Remove.
12217 * config/score/score-generic.md: Remove.
12218 * config/score/score-modes.def: Remove.
12219 * config/score/score-protos.h: Remove.
12220 * config/score/score.c: Remove.
12221 * config/score/score.h: Remove.
12222 * config/score/score.md: Remove.
12223 * config/score/score.opt: Remove.
12224 * doc/md.texi: Don't document score-*.
12225
12226 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
12227
12228 PR pch/63429
12229 * genconditions.c: Directly include ggc.h before rtl.h.
12230
12231 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
12232
12233 * ipa-polymorphic-call.c
12234 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
12235 code determining speculative type.
12236 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
12237
12238 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12239
12240 * altivec.md (altivec_lvsl): New define_expand.
12241 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
12242 (altivec_lvsr): New define_expand.
12243 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
12244 * rs6000.c (rs6000_expand_builtin): Change to use
12245 altivec_lvs[lr]_direct; remove commented-out code.
12246
12247 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12248
12249 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12250 Issue a warning message when vec_lvsl or vec_lvsr is used with a
12251 little endian target.
12252
12253 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
12254
12255 * tree-pretty-print.c (dump_location): Make it extern. Dump also
12256 the column.
12257 * tree-pretty-print.h (dump_location): Declare.
12258 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
12259 (pp_gimple_stmt_1): Likewise.
12260 (dump_implicit_edges): Likewise.
12261 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
12262 LOCATION_LINE.
12263
12264
12265 2014-10-03 David Malcolm <dmalcolm@redhat.com>
12266
12267 * gcc.c (driver::global_initializations): Remove "const" so
12268 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
12269 and decoded_options_count.
12270
12271 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
12272
12273 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
12274 macro.
12275 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
12276 TARGET_E500_DOUBLE case here.
12277
12278 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
12279
12280 PR c++/54427
12281 PR c++/57198
12282 PR c++/58845
12283 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
12284
12285 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
12286
12287 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
12288 * lto-cgraph.c (lto_output_edge, input_edge): Stream
12289 in_polymorphic_cdtor
12290 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
12291 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
12292 * cgraphclones.c (cgraph_edge::clone): Likewise.
12293 * ipa-prop.c (update_jump_functions_after_inlining,
12294 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
12295 to possible_dynamic_type_change.
12296 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
12297 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
12298 IN_POLY_CDOTR argument.
12299
12300 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
12301 for BASE and OUTER_TYPE being NULL.
12302 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
12303 in_poly_cdtor parameter.
12304
12305 2014-10-03 Jakub Jelinek <jakub@redhat.com>
12306
12307 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
12308 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
12309 TARGET_AVX512F.
12310 (expand_vec_perm_1): Likewise.
12311
12312 2014-10-03 Jakub Jelinek <jakub@redhat.com>
12313 Uros Bizjak <ubizjak@gmail.com>
12314
12315 PR tree-optimization/61403
12316 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
12317 error in comment. Also optimize 256-bit vectors for AVX2
12318 or AVX (floating vectors only), provided the first permutation
12319 can be performed in one insn.
12320
12321 2014-10-03 David Malcolm <dmalcolm@redhat.com>
12322
12323 * gcc.c (class driver): New class.
12324 (main): Reimplement in terms of driver::main, moving most of the
12325 locals to be locals within individual methods of class driver.
12326 The remaining locals "explicit_link_files", "decoded_options" and
12327 "decoded_options_count" are used by multiple driver:: methods, and
12328 so become member data. Doing so isolates the argc/argv reads and
12329 writes. Replace "goto out" with a special exit code from
12330 new method driver::prepare_infiles. Split out the old
12331 implementation of main into the following...
12332 (driver::main): New function, corresponding to the old "main"
12333 implementation.
12334 (driver::set_progname): New function, taken from the old
12335 "main" implementation.
12336 (driver::expand_at_files): Likewise.
12337 (driver::decode_argv): Likewise.
12338 (driver::global_initializations): Likewise.
12339 (driver::build_multilib_strings): Likewise.
12340 (driver::set_up_specs): Likewise.
12341 (driver::putenv_COLLECT_GCC): Likewise.
12342 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
12343 (driver::handle_unrecognized_options): Likewise.
12344 (driver::maybe_print_and_exit): Likewise.
12345 (driver::prepare_infiles): Likewise.
12346 (driver::do_spec_on_infiles): Likewise.
12347 (driver::maybe_run_linker): Likewise.
12348 (driver::final_actions): Likewise.
12349 (driver::get_exit_code): Likewise.
12350
12351 2014-10-03 Yury Gribov <y.gribov@samsung.com>
12352
12353 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
12354 don't emit empty ctors.
12355
12356 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
12357
12358 * convert.c (convert_to_integer): Do not introduce useless conversions
12359 between integral types.
12360
12361 2014-10-03 David Sherwood <david.sherwood@arm.com>
12362
12363 * ira-int.h (ira_allocno): Mark hard_regno as signed.
12364
12365 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
12366
12367 * lra-constraints.c (inherit_in_ebb): Handle calls with
12368 multiple return values.
12369 * caller-save.c (save_call_clobbered_regs): Likewise.
12370
12371 2014-10-03 Jakub Jelinek <jakub@redhat.com>
12372
12373 * tree-vect-data-refs.c (vect_permute_load_chain,
12374 vect_shift_permute_load_chain): Fix a typo in temporary var names,
12375 suffle3 to shuffle3.
12376
12377 PR libgomp/61200
12378 * omp-low.c (taskreg_contexts): New variable.
12379 (scan_omp_parallel): Push newly created context into taskreg_contexts
12380 vector and move record layout code to finish_taskreg_scan.
12381 (scan_omp_task): Likewise.
12382 (finish_taskreg_scan): New function.
12383 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
12384 vector elements and release it.
12385
12386 PR target/62128
12387 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
12388 of palignr arguments can't be used due to min 0 or max - min
12389 too high, try also op0, op1 order of palignr arguments.
12390
12391 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
12392
12393 * cgraph.h (ipa_polymorphic_call_context):
12394 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
12395 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
12396 * ipa-polymorphic-call.c
12397 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
12398 past end of dynamic types.
12399 (ipa_polymorphic_call_context::stream_out,
12400 speculative_outer_type): Stream dynamic flag.
12401 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
12402 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
12403 Clear DYNAMIC.
12404 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
12405 set it.
12406 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
12407 * ipa-prop.c (update_jump_functions_after_inlining,
12408 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
12409
12410 2014-10-02 Teresa Johnson <tejohnson@google.com>
12411
12412 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
12413 up when synthesizing counts to avoid rounding errors.
12414
12415 2014-10-02 Teresa Johnson <tejohnson@google.com>
12416
12417 PR middle-end/63422
12418 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
12419 asserts to handle incoming insanities.
12420
12421 2014-10-02 Martin Jambor <mjambor@suse.cz>
12422
12423 PR tree-optimization/63375
12424 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
12425 references.
12426
12427 2014-10-02 Olivier Hainque <hainque@adacore.com>
12428
12429 * Makefile.in (CROSS): Define, to @CROSS.
12430
12431 2014-10-02 Jakub Jelinek <jakub@redhat.com>
12432
12433 PR target/62128
12434 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
12435 if it expands to a single insn only.
12436 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
12437 fail unless in_order is true. Add forward declaration.
12438 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
12439 is useful for one_operand_p.
12440 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
12441
12442 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
12443
12444 * cgraphclones.c (build_function_type_skip_args): Do not make new
12445 type variant of old.
12446
12447 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
12448
12449 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
12450 when speculation is added.
12451 (ipa_edge_args): Add polymorphic_call_contexts.
12452 (ipa_get_ith_polymorhic_call_context): New accesor.
12453 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
12454 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
12455 (ipa_compute_jump_functions_for_edge): Compute contexts.
12456 (update_jump_functions_after_inlining): Update contexts.
12457 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
12458 update dumping; add speculative edge creation.
12459 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
12460 context updating.
12461 (update_indirect_edges_after_inlining): Pass down context.
12462 (ipa_edge_duplication_hook): Duplicate contexts.
12463 (ipa_write_node_info): Stream out contexts.
12464 (ipa_read_node_info): Stream in contexts.
12465 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
12466 types.
12467 (try_speculative_devirtualization): New function.
12468 * ipa-utils.h (try_speculative_devirtualization): Declare.
12469
12470 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
12471
12472 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
12473 dumping during WPA.
12474
12475 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
12476
12477 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
12478 type variants.
12479
12480 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
12481
12482 * ipa-polymorphic-call.c
12483 (ipa_polymorphic_call_context::restrict_to_inner_class):
12484 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
12485 use speculation_consistent_p to do so; Add CONSDER_BASES
12486 and CONSIDER_PLACEMENT_NEW parameters.
12487 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
12488 short circuit obvious cases.
12489 (ipa_polymorphic_call_context::dump): Improve formatting.
12490 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
12491 combine_speculation_with to record speculations; Do not ICE when
12492 object is located in pointer type decl; do not ICE for methods
12493 of UNION_TYPE; do not record nonpolymorphic types.
12494 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
12495 (ipa_polymorphic_call_context::combine_speculation_with): New method.
12496 (ipa_polymorphic_call_context::combine_with): New method.
12497 (ipa_polymorphic_call_context::make_speculative): Move here; use
12498 combine speculation.
12499 * cgraph.h (ipa_polymorphic_call_context): Update
12500 restrict_to_inner_class prototype; add offset_by, make_speculative,
12501 combine_with, useless_p, combine_speculation_with and
12502 speculation_consistent_p methods.
12503 (ipa_polymorphic_call_context::offset_by): New method.
12504 (ipa_polymorphic_call_context::useless_p): New method.
12505
12506 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
12507
12508 PR rtl-optimization/62151
12509 * combine.c (can_combine_p): Allow the destination register of INSN
12510 to be clobbered in I3.
12511 (subst): Do not substitute into clobbers of registers.
12512
12513 2014-10-01 Jakub Jelinek <jakub@redhat.com>
12514
12515 PR debug/63342
12516 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
12517 offset, TARGET_MEM_REF and SSA_NAME.
12518
12519 * config/i386/i386.c (expand_vec_perm_palignr): Handle
12520 256-bit vectors for TARGET_AVX2.
12521
12522 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
12523 dfirst permutation.
12524
12525 PR target/63428
12526 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
12527 argument to avx2_permv2ti.
12528
12529 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12530
12531 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
12532
12533 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
12534
12535 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
12536 (fmod<mode>3): Ditto.
12537 (fpremxf4_i387): Ditto.
12538 (reminderxf3): Ditto.
12539 (reminder<mode>3): Ditto.
12540 (fprem1xf4_i387): Ditto.
12541
12542 2014-09-30 Teresa Johnson <tejohnson@google.com>
12543
12544 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
12545 duplicate_blocks bitmap.
12546 (remove_ctrl_stmt_and_useless_edges): Ditto.
12547 (create_block_for_threading): Ditto.
12548 (compute_path_counts): New function.
12549 (update_profile): Ditto.
12550 (recompute_probabilities): Ditto.
12551 (update_joiner_offpath_counts): Ditto.
12552 (freqs_to_counts_path): Ditto.
12553 (clear_counts_path): Ditto.
12554 (ssa_fix_duplicate_block_edges): Update profile info.
12555 (ssa_create_duplicates): Pass new parameter.
12556 (ssa_redirect_edges): Remove old profile update.
12557 (thread_block_1): New duplicate_blocks bitmap,
12558 remove old profile update.
12559 (thread_single_edge): Pass new parameter.
12560
12561 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
12562
12563 PR middle-end/62120
12564 * varasm.c (decode_reg_name_and_count): Check availability for
12565 registers from ADDITIONAL_REGISTER_NAMES.
12566
12567 2014-09-30 David Malcolm <dmalcolm@redhat.com>
12568
12569 PR plugins/63410
12570 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
12571 (PLUGIN_HEADERS): Add pass-instances.def.
12572
12573 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
12574
12575 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
12576 iterator.
12577 * config/aarch64/aarch64-simd.md
12578 (aarch64_sqdmull_laneq<mode>): Expand iterator.
12579 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
12580 (vqdmulls_lane_s32): Fix return type.
12581 (vqdmulls_laneq_s32): New.
12582
12583 2014-09-30 Jakub Jelinek <jakub@redhat.com>
12584
12585 PR inline-asm/63282
12586 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
12587 or invert_jump_1 if jump isn't any_condjump_p.
12588
12589 2014-09-30 Terry Guo <terry.guo@arm.com>
12590
12591 * config/arm/arm-cores.def (cortex-m7): New core name.
12592 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
12593 (fpv5-d16): Ditto.
12594 * config/arm/arm-tables.opt: Regenerated.
12595 * config/arm/arm-tune.md: Regenerated.
12596 * config/arm/arm.h (TARGET_VFP5): New macro.
12597 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
12598 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
12599 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
12600 * doc/invoke.texi: Document new cpu and fpu names.
12601
12602 2014-09-30 Jiong Wang <jiong.wang@arm.com>
12603
12604 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
12605 before sinking insn.
12606
12607 2014-09-30 David Sherwood <david.sherwood@arm.com>
12608
12609 * ira-int.h (ira_allocno): Add "wmode" field.
12610 * ira-build.c (create_insn_allocnos): Add new "parent" function
12611 parameter.
12612 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
12613 that cannot be accessed in wmode.
12614
12615 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
12616
12617 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
12618 integer overflow.
12619
12620 2014-09-29 Andi Kleen <ak@linux.intel.com>
12621
12622 * opts.c (print_filtered_help): Print --param min/max/default
12623 with -Q.
12624
12625 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
12626
12627 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
12628
12629 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
12630
12631 * tree-vrp.c (get_single_symbol): New function.
12632 (build_symbolic_expr): Likewise.
12633 (symbolic_range_based_on_p): New predicate.
12634 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
12635 for PLUS and MINUS. Do not drop symbolic ranges at the end.
12636 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
12637 operand is symbolic and based on the other operand.
12638
12639 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
12640
12641 * config/microblaze/microblaze.md (call_internal1): Use VOID
12642 instead of SI to fix "((void (*)(void)) 0)()" issue
12643
12644 2014-09-29 Nick Clifton <nickc@redhat.com>
12645
12646 * config/msp430/msp430.c (msp430_expand_prologue): Return a
12647 CLOBBER rtx for naked functions.
12648 (msp430_expand_epilogue): Likewise.
12649 (msp430_use_f5_series_hwmult): Cache result.
12650 (use_32bit_hwmult): Cache result.
12651 (msp430_no_hwmult): New function.
12652 (msp430_output_labelref): Use it.
12653
12654 2014-09-29 Jakub Jelinek <jakub@redhat.com>
12655
12656 PR middle-end/63247
12657 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
12658 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
12659 use the alignment of avar rather than ovar.
12660
12661 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
12662
12663 * config/pa/pa.c (pa_output_function_epilogue): Only update
12664 last_address when a nonnote insn is found.
12665
12666 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
12667
12668 PR ipa/60665
12669 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
12670
12671 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
12672
12673 PR ipa/62121
12674 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
12675 fix pasto in checking array size.
12676
12677 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
12678
12679 PR middle-end/35545
12680 * passes.def (pass_tracer): Move before last dominator pass.
12681
12682 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
12683
12684 * gcc.c (try_generate_repro): Remove argument "prog". Change all
12685 users.
12686 (run_attempt): Handle errors of "pex_run" invocation.
12687
12688 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
12689
12690 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
12691 (CC1_SPEC): Define.
12692 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
12693 (TARGET_ASAN_SHADOW_OFFSET): Define.
12694
12695 2014-09-26 Martin Liska <mliska@suse.cz>
12696
12697 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
12698 introduced.
12699 * cgraph.h: Likewise.
12700 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
12701 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
12702 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
12703 * tree-ssa-alias.h: Likewise.
12704
12705 2014-09-26 Jakub Jelinek <jakub@redhat.com>
12706 Max Ostapenko <m.ostapenko@partner.samsung.com>
12707
12708 * common.opt: New option.
12709 * doc/invoke.texi: Describe new option.
12710 * gcc.c (execute): Don't free first string early, but at the end
12711 of the function. Call retry_ice if compiler exited with
12712 ICE_EXIT_CODE.
12713 (main): Factor out common code.
12714 (print_configuration): New function.
12715 (files_equal_p): Likewise.
12716 (check_repro): Likewise.
12717 (run_attempt): Likewise.
12718 (do_report_bug): Likewise.
12719 (append_text): Likewise.
12720 (try_generate_repro): Likewise
12721
12722 2014-09-25 Andi Kleen <ak@linux.intel.com>
12723
12724 * config/i386/i386.c (x86_print_call_or_nop): New function.
12725 (x86_function_profiler): Support -mnop-mcount and
12726 -mrecord-mcount.
12727 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
12728 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
12729
12730 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
12731
12732 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
12733 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
12734 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
12735 Remove.
12736
12737 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
12738
12739 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
12740 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
12741 types_odr_comparable): Declare.
12742 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
12743 * ipa-polymorphic-call.c: New file.
12744 (contains_polymorphic_type_p, possible_placement_new,
12745 ipa_polymorphic_call_context::restrict_to_inner_class,
12746 contains_type_p, decl_maybe_in_construction_p,
12747 ipa_polymorphic_call_context::stream_out,
12748 ipa_polymorphic_call_context::debug,
12749 ipa_polymorphic_call_context::stream_in,
12750 ipa_polymorphic_call_context::set_by_decl,
12751 ipa_polymorphic_call_context::set_by_invariant,
12752 walk_ssa_copies,
12753 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
12754 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
12755 extr_type_from_vtbl_ptr_store, record_known_type
12756 check_stmt_for_type_change,
12757 ipa_polymorphic_call_context::get_dynamic_type): Move here from
12758 ipa-devirt.c
12759 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
12760 and streamer-hooks.h
12761 (contains_polymorphic_type_p, possible_placement_new,
12762 ipa_polymorphic_call_context::restrict_to_inner_class,
12763 contains_type_p, decl_maybe_in_construction_p,
12764 ipa_polymorphic_call_context::stream_out,
12765 ipa_polymorphic_call_context::debug,
12766 ipa_polymorphic_call_context::stream_in,
12767 ipa_polymorphic_call_context::set_by_decl,
12768 ipa_polymorphic_call_context::set_by_invariant,
12769 walk_ssa_copies,
12770 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
12771 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
12772 extr_type_from_vtbl_ptr_store, record_known_type
12773 check_stmt_for_type_change,
12774 ipa_polymorphic_call_context::get_dynamic_type): Move to
12775 ipa-polymorphic-call.c
12776 (type_all_derivations_known_p, types_odr_comparable,
12777 types_must_be_same_for_odr): Export.
12778 (type_known_to_have_no_deriavations_p): New function.
12779 * Makefile.in: Add ipa-polymorphic-call.c
12780
12781 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
12782
12783 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
12784 for better storage.
12785 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
12786 (possible_polymorphic_call_targets): Instead of computing both
12787 speculative and non-speculative answers, do just one at a time.
12788 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
12789 (dump_targets): Break out from ...
12790 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
12791 and non-speculative lists.
12792 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
12793 * ipa-utils.h (possible_polymorphic_call_targets): Update.
12794
12795 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
12796
12797 PR rtl-optimization/63348
12798 * emit-rtl.c (try_split): Do not emit extra barrier.
12799
12800 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
12801
12802 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
12803 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
12804 new predicates.
12805 (aarch64_<sur>shll2_n<mode>): Likewise.
12806 (aarch64_<sur>shr_n<mode>): Likewise.
12807 (aarch64_<sur>sra_n<mode>: Likewise.
12808 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
12809 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
12810 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
12811 * config/aarch64/iterators.md (ve_mode): New.
12812 (offsetlr): Remap to infix text for use in new predicates.
12813 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
12814 (aarch64_simd_shift_imm_hi): Likewise.
12815 (aarch64_simd_shift_imm_si): Likewise.
12816 (aarch64_simd_shift_imm_di): Likewise.
12817 (aarch64_simd_shift_imm_offset_qi): Likewise.
12818 (aarch64_simd_shift_imm_offset_hi): Likewise.
12819 (aarch64_simd_shift_imm_offset_si): Likewise.
12820 (aarch64_simd_shift_imm_offset_di): Likewise.
12821 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
12822 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
12823 (aarch64_simd_shift_imm_bitsize_si): Likewise.
12824 (aarch64_simd_shift_imm_bitsize_di): Likewise.
12825
12826 2014-09-25 Jiong Wang <jiong.wang@arm.com>
12827
12828 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
12829 new created BB as the intersection of live-in from "old_dest" and
12830 live-out from "bb".
12831
12832 2014-09-25 Felix Yang <felix.yang@huawei.com>
12833
12834 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
12835 * genautomata.c (merge_states): Ditto.
12836
12837 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
12838
12839 PR target/62218
12840 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
12841 in instruction sequence.
12842
12843 2014-09-25 Nick Clifton <nickc@redhat.com>
12844
12845 PR target/62218
12846 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
12847 in instruction sequence.
12848
12849 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12850
12851 PR target/63335
12852 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
12853 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
12854
12855 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
12856 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12857 Anna Tikhonova <anna.tikhonova@intel.com>
12858 Ilya Tocar <ilya.tocar@intel.com>
12859 Andrey Turetskiy <andrey.turetskiy@intel.com>
12860 Ilya Verbin <ilya.verbin@intel.com>
12861 Kirill Yukhin <kirill.yukhin@intel.com>
12862 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12863
12864 * config/i386/sse.md
12865 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
12866 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
12867 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
12868 (define_expand "<avx512>_perm<mode>_mask"): ... this.
12869 Use VI8F_256_512 mode iterator.
12870 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
12871 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
12872
12873 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
12874 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12875 Anna Tikhonova <anna.tikhonova@intel.com>
12876 Ilya Tocar <ilya.tocar@intel.com>
12877 Andrey Turetskiy <andrey.turetskiy@intel.com>
12878 Ilya Verbin <ilya.verbin@intel.com>
12879 Kirill Yukhin <kirill.yukhin@intel.com>
12880 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12881
12882 * config/i386/sse.md
12883 (define_insn "avx_movshdup256<mask_name>"): Add masking.
12884 (define_insn "sse3_movshdup<mask_name>"): Ditto.
12885 (define_insn "avx_movsldup256<mask_name>"): Ditto.
12886 (define_insn "sse3_movsldup<mask_name>"): Ditto.
12887 (define_insn "vec_dupv2df<mask_name>"): Ditto.
12888 (define_insn "*vec_concatv2df"): Add EVEX version.
12889
12890 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
12891 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12892 Anna Tikhonova <anna.tikhonova@intel.com>
12893 Ilya Tocar <ilya.tocar@intel.com>
12894 Andrey Turetskiy <andrey.turetskiy@intel.com>
12895 Ilya Verbin <ilya.verbin@intel.com>
12896 Kirill Yukhin <kirill.yukhin@intel.com>
12897 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12898
12899 * config/i386/sse.md
12900 (define_insn "vec_set<mode>_0"): Add EVEX version.
12901
12902 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
12903 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12904 Anna Tikhonova <anna.tikhonova@intel.com>
12905 Ilya Tocar <ilya.tocar@intel.com>
12906 Andrey Turetskiy <andrey.turetskiy@intel.com>
12907 Ilya Verbin <ilya.verbin@intel.com>
12908 Kirill Yukhin <kirill.yukhin@intel.com>
12909 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12910
12911 * config/i386/sse.md
12912 (define_insn
12913 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
12914 New.
12915 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
12916 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
12917 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
12918 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
12919 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
12920 (define_expand "sse2_cvtpd2ps_mask): New.
12921 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
12922 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
12923
12924 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
12925 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12926 Anna Tikhonova <anna.tikhonova@intel.com>
12927 Ilya Tocar <ilya.tocar@intel.com>
12928 Andrey Turetskiy <andrey.turetskiy@intel.com>
12929 Ilya Verbin <ilya.verbin@intel.com>
12930 Kirill Yukhin <kirill.yukhin@intel.com>
12931 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12932
12933 * config/i386/i386.c
12934 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
12935 (ufix_notruncv8dfv8si2_mask_round): ... this.
12936 * config/i386/sse.md
12937 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
12938 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
12939 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
12940 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
12941 (define_expand "sse2_cvtpd2dq"): Delete.
12942 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
12943 make 2nd operand const0 vector.
12944 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
12945 Delete.
12946 (define_mode_attr pd2udqsuff): New.
12947 (define_insn
12948 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
12949 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
12950 (define_insn "*avx_cvttpd2dq256_2"): Delete.
12951 (define_expand "sse2_cvttpd2dq"): Ditto.
12952 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
12953 make 2nd operand const0 vector.
12954
12955 2014-09-25 Jakub Jelinek <jakub@redhat.com>
12956
12957 PR tree-optimization/63341
12958 * tree-vectorizer.h (vect_create_data_ref_ptr,
12959 vect_create_addr_base_for_vector_ref): Add another tree argument
12960 defaulting to NULL_TREE.
12961 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
12962 argument, pass it down to vect_create_addr_base_for_vector_ref.
12963 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
12964 add that to base_offset too if non-NULL.
12965 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
12966 for dr_explicit_realign_optimized set it to vector byte size
12967 - 1 instead of setting offset, pass byte_offset down to
12968 vect_create_data_ref_ptr.
12969
12970 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
12971
12972 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
12973 forgotten debug output; canonicalize querries more wtih LTO.
12974
12975 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
12976
12977 * cgraph.h (class ipa_polymorphic_call_context): Move here from
12978 ipa-utils.h; add stream_int and stream_out methods.
12979 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
12980 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
12981 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
12982 add CONTEXT.
12983 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
12984 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
12985 ipa_polymorphic_call_context::clear_speculation,
12986 ipa_polymorphic_call_context::clear_outer_type): Move here from
12987 ipa-utils.h
12988 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
12989 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
12990 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
12991 ipa_polymorphic_call_context::clear_speculation,
12992 ipa_polymorphic_call_context::clear_outer_type): Likewise.
12993 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
12994 streamer-hooks.h
12995 (ipa_polymorphic_call_context::stream_out): New method.
12996 (ipa_polymorphic_call_context::stream_in): New method.
12997 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
12998 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
12999 OUTER_TYPE.
13000 (ipa_analyze_call_uses): Simplify.
13001 (update_indirect_edges_after_inlining): Do not care about outer_type.
13002 (ipa_write_indirect_edge_info): Update.
13003 (ipa_write_indirect_edge_info): Likewise.
13004 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
13005 (dump_edge_flags): Break out from ...
13006 (cgraph_node::dump): ... here; dump indirect edges.
13007
13008 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
13009
13010 * ipa-utils.h (polymorphic_call_context): Add
13011 metdhos dump, debug and clear_outer_type.
13012 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
13013 (ipa_polymorphic_call_context::clear_outer_type): New method.
13014 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
13015 * ipa-devirt.c (types_odr_comparable): New function.
13016 (types_must_be_same_for_odr): New function.
13017 (odr_subtypes_equivalent_p): Simplify.
13018 (possible_placement_new): Break out from ...
13019 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
13020 be more cuatious about returning false in cases the context may be
13021 valid in derived type or via placement new.
13022 (contains_type_p): Clear maybe_derived_type
13023 (ipa_polymorphic_call_context::dump): New method.
13024 (ipa_polymorphic_call_context::debug): New method.
13025 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
13026 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
13027 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
13028 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
13029 to suceed on all valid cases; remove confused sanity check.
13030 (dump_possible_polymorphic_call_targets): Simplify.
13031
13032 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
13033
13034 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
13035 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
13036 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
13037 varpool.c: Rename all instances of DECL_ABSTRACT to
13038 DECL_ABSTRACT_P.
13039
13040 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13041
13042 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
13043 special handling for stores whose SET_SRC is an UNSPEC (such as
13044 UNSPEC_STVE).
13045
13046 2014-09-24 Jiong Wang <jiong.wang@arm.com>
13047
13048 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
13049 !REG_P (src) to release more instruction sink opportunities.
13050
13051 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
13052
13053 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
13054 move costs for 128-bit types.
13055
13056 2014-09-24 Martin Jambor <mjambor@suse.cz>
13057
13058 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
13059 when duplicating a PASS_THROUGH jump function when creating a
13060 speculative edge.
13061
13062 2014-09-24 Marek Polacek <polacek@redhat.com>
13063
13064 PR c/61405
13065 PR c/53874
13066 * asan.c (maybe_instrument_call): Add default case.
13067 * ipa-pure-const.c (special_builtin_state): Likewise.
13068 * predict.c (expr_expected_value_1): Likewise.
13069 * lto-streamer-out.c (write_symbol): Initialize variable.
13070
13071 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13072
13073 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
13074 the lane.
13075 (vmuld_laneq_f64): Likewise.
13076 (vmuls_lane_f32): Likewise.
13077 (vmuls_laneq_f32): Likewise.
13078
13079 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
13080
13081 PR bootstrap/63235
13082 * varpool.c (varpool_node::add): Pass decl attributes
13083 to lookup_attribute.
13084
13085 2014-09-24 Jakub Jelinek <jakub@redhat.com>
13086
13087 PR sanitizer/63316
13088 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
13089
13090 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
13091
13092 PR tree-optimization/63266
13093 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
13094 marker for unknown byte value.
13095 (MARKER_MASK): New macro.
13096 (MARKER_BYTE_UNKNOWN): New macro.
13097 (HEAD_MARKER): New macro.
13098 (do_shift_rotate): Mark bytes with unknown values due to sign
13099 extension when doing an arithmetic right shift. Replace hardcoded
13100 mask for marker by new MARKER_MASK macro.
13101 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
13102 numbers accordingly.
13103
13104 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
13105 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13106 Anna Tikhonova <anna.tikhonova@intel.com>
13107 Ilya Tocar <ilya.tocar@intel.com>
13108 Andrey Turetskiy <andrey.turetskiy@intel.com>
13109 Ilya Verbin <ilya.verbin@intel.com>
13110 Kirill Yukhin <kirill.yukhin@intel.com>
13111 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13112
13113 * config/i386/sse.md
13114 (define_insn
13115 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
13116 Add masking.
13117 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
13118 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
13119
13120 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
13121 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13122 Anna Tikhonova <anna.tikhonova@intel.com>
13123 Ilya Tocar <ilya.tocar@intel.com>
13124 Andrey Turetskiy <andrey.turetskiy@intel.com>
13125 Ilya Verbin <ilya.verbin@intel.com>
13126 Kirill Yukhin <kirill.yukhin@intel.com>
13127 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13128
13129 * config/i386/sse.md
13130 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
13131 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
13132 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
13133 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
13134 (define_expand "avx512vl_pshuflw_mask"): New.
13135 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
13136 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
13137 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
13138 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
13139 (define_expand "avx512vl_pshufhw_mask"): New.
13140 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
13141
13142 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
13143 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13144 Anna Tikhonova <anna.tikhonova@intel.com>
13145 Ilya Tocar <ilya.tocar@intel.com>
13146 Andrey Turetskiy <andrey.turetskiy@intel.com>
13147 Ilya Verbin <ilya.verbin@intel.com>
13148 Kirill Yukhin <kirill.yukhin@intel.com>
13149 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13150
13151 * config/i386/i386.c
13152 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
13153 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
13154 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
13155 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
13156 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
13157 * config/i386/sse.md
13158 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
13159 (define_insn
13160 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
13161 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
13162 (define_insn
13163 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
13164 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
13165 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
13166 (define_expand "avx512vl_pshufd_mask"): New.
13167 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
13168
13169 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
13170 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13171 Anna Tikhonova <anna.tikhonova@intel.com>
13172 Ilya Tocar <ilya.tocar@intel.com>
13173 Andrey Turetskiy <andrey.turetskiy@intel.com>
13174 Ilya Verbin <ilya.verbin@intel.com>
13175 Kirill Yukhin <kirill.yukhin@intel.com>
13176 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13177
13178 * config/i386/i386.c
13179 (CODE_FOR_avx2_extracti128): Rename to ...
13180 (CODE_FOR_avx_vextractf128v4di): this.
13181 (CODE_FOR_avx2_inserti128): Rename to ...
13182 (CODE_FOR_avx_vinsertf128v4di): this.
13183 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
13184 CODE_FOR_avx_vextractf128v4di.
13185 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
13186 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
13187 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
13188 CODE_FOR_avx512vl_vinsertv8si.
13189 * config/i386/sse.md
13190 (define_expand
13191 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
13192 AVX512_VEC mode iterator.
13193 (define_insn
13194 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
13195 Ditto.
13196 (define_expand
13197 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
13198 AVX512_VEC_2 mode iterator.
13199 (define_insn "vec_set_lo_<mode><mask_name>"): New.
13200 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
13201 (define_expand "avx512vl_vinsert<mode>"): Ditto.
13202 (define_insn "avx2_vec_set_lo_v4di"): Delete.
13203 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
13204 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
13205 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
13206 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
13207 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
13208 (define_expand "avx2_extracti128"): Delete.
13209 (define_expand "avx2_inserti128"): Ditto.
13210
13211 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
13212 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13213 Anna Tikhonova <anna.tikhonova@intel.com>
13214 Ilya Tocar <ilya.tocar@intel.com>
13215 Andrey Turetskiy <andrey.turetskiy@intel.com>
13216 Ilya Verbin <ilya.verbin@intel.com>
13217 Kirill Yukhin <kirill.yukhin@intel.com>
13218 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13219
13220 * config/i386/sse.md
13221 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
13222 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
13223 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
13224 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
13225 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
13226 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
13227 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
13228 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
13229 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
13230 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
13231 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
13232 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
13233 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
13234
13235 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
13236
13237 PR rtl-optimization/63210
13238 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
13239 HARD_REGNO is not available for CONFLICT_A.
13240
13241 2014-09-23 Andi Kleen <ak@linux.intel.com>
13242
13243 * cgraph.h (symtab_node): Add no_reorder attribute.
13244 (symbol_table::output_asm_statements): Remove.
13245 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
13246 (cgraph_node::create_version_clone): Dito.
13247 (symbol_table::output_asm_statements): Remove.
13248 * trans-mem.c (ipa_tm_create_version_alias): Dito.
13249 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
13250 (output_in_order): Add no_reorder flag. Only handle no_reorder
13251 nodes when set.
13252 (symbol_table::compile): Add separate pass for no_reorder nodes.
13253 (process_common_attributes): Set no_reorder flag in symtab node.
13254 Add node argument.
13255 (process_function_and_variable_attributes): Pass symtab nodes to
13256 process_common_attributes.
13257 * doc/extend.texi (no_reorder): Document no_reorder attribute.
13258 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
13259 (lto_output_varpool_node): Dito.
13260 (input_overwrite_node): Dito.
13261 (input_varpool_node): Dito.
13262 * varpool.c (varpool_node::add): Set no_reorder attribute.
13263 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
13264 (symbol_table::output_variables): Dito.
13265 * symtab.c (symtab_node::dump_base): Print no_reorder.
13266
13267 2014-09-23 Jiong Wang <jiong.wang@arm.com>
13268
13269 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
13270 be INVALID_REGNUM.
13271
13272 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
13273
13274 * configure: Regenerate.
13275
13276 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
13277
13278 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
13279 when result_mode == shift_mode.
13280
13281 2014-09-23 Kostya Serebryany <kcc@google.com>
13282
13283 Update to match the changed asan API.
13284 * asan.c (asan_global_struct): Update the __asan_global definition
13285 to match the new API.
13286 (asan_add_global): Ditto.
13287 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
13288 to __asan_init_v4.
13289
13290 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13291
13292 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
13293 refine the constraints used on 32/64-bit floating point moves.
13294 (f32_av): Likewise.
13295 (f64_vsx): Likewise.
13296 (f64_dm): Likewise.
13297 (f64_av): Likewise.
13298 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
13299 (BOOL_REGS_OP1): Likewise.
13300 (BOOL_REGS_OP2): Likewise.
13301 (BOOL_REGS_UNARY): Likewise.
13302 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
13303 32/64-bit floating point moves. Do not use wa, instead use ww/ws
13304 for moves involving VSX registers. Do not use constraints that
13305 target VSX registers for decimal types.
13306 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
13307 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
13308
13309 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
13310
13311 * tree.h (int_bit_position): Turn into inline function;
13312 implement using wide int.
13313 * tree.c (int_bit_position): Remove.
13314
13315 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
13316
13317 PR bootstrap/63280
13318 * target-globals.c (target_globals::~target_globals): Fix location
13319 of ira_int destruction.
13320
13321 2014-09-23 Renlin Li <renlin.li@arm.com>
13322
13323 * config/aarch64/aarch64.md (return): New.
13324 (simple_return): Likewise.
13325 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
13326 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
13327
13328 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
13329
13330 * common/config/aarch64/aarch64-common.c:
13331 (default_options aarch_option_optimization_table):
13332 Default to -fsched-pressure.
13333
13334 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
13335
13336 * cfgcleanup.c (try_optimize_cfg): Do not remove label
13337 with LABEL_PRESERVE_P flag set.
13338
13339 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
13340 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13341 Anna Tikhonova <anna.tikhonova@intel.com>
13342 Ilya Tocar <ilya.tocar@intel.com>
13343 Andrey Turetskiy <andrey.turetskiy@intel.com>
13344 Ilya Verbin <ilya.verbin@intel.com>
13345 Kirill Yukhin <kirill.yukhin@intel.com>
13346 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13347
13348 * config/i386/sse.md
13349 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
13350 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
13351 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
13352 (define_insn "sse2_shufpd_v2df_mask"): New.
13353
13354 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
13355 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13356 Anna Tikhonova <anna.tikhonova@intel.com>
13357 Ilya Tocar <ilya.tocar@intel.com>
13358 Andrey Turetskiy <andrey.turetskiy@intel.com>
13359 Ilya Verbin <ilya.verbin@intel.com>
13360 Kirill Yukhin <kirill.yukhin@intel.com>
13361 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13362
13363 * config/i386/sse.md
13364 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
13365 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
13366 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
13367 (define_insn "sse_shufps_v4sf_mask"): New.
13368
13369 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
13370 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13371 Anna Tikhonova <anna.tikhonova@intel.com>
13372 Ilya Tocar <ilya.tocar@intel.com>
13373 Andrey Turetskiy <andrey.turetskiy@intel.com>
13374 Ilya Verbin <ilya.verbin@intel.com>
13375 Kirill Yukhin <kirill.yukhin@intel.com>
13376 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13377
13378 * config/i386/sse.md
13379 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
13380 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
13381 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
13382 (define_insn "unpcklps128_mask"): New.
13383
13384 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
13385 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13386 Anna Tikhonova <anna.tikhonova@intel.com>
13387 Ilya Tocar <ilya.tocar@intel.com>
13388 Andrey Turetskiy <andrey.turetskiy@intel.com>
13389 Ilya Verbin <ilya.verbin@intel.com>
13390 Kirill Yukhin <kirill.yukhin@intel.com>
13391 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13392
13393 * config/i386/sse.md
13394 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
13395 (define_insn "avx512vl_unpckhpd128_mask"): New.
13396 (define_expand "avx_movddup256<mask_name>"): Add masking.
13397 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
13398 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
13399 (define_insn "avx512vl_unpcklpd128_mask"): New.
13400
13401 2014-09-22 Joseph Myers <joseph@codesourcery.com>
13402
13403 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13404 * doc/tm.texi: Regenerate.
13405 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
13406 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13407 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
13408 Remove.
13409 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13410 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13411 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13412 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13413 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
13414 Remove.
13415 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13416 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13417 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13418 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13419 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13420 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13421 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13422 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13423 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13424 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
13425 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
13426 Remove.
13427
13428 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
13429
13430 * tree-ssa-ccp.c (prop_value_d): Rename to ...
13431 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
13432 * ipa-prop.c (struct type_change_info): Rename to ...
13433 (prop_type_change_info): ... this; update uses.
13434 * ggc-page.c (globals): Rename to ...
13435 (static struct ggc_globals): ... this; update uses.
13436 * tree-ssa-loop-im.c (mem_ref): Rename to ...
13437 (im_mem_ref): ... this; update uses.
13438 * ggc-common.c (loc_descriptor): Rename to ...
13439 (ggc_loc_descriptor): ... this; update uses.
13440 * lra-eliminations.c (elim_table): Rename to ...
13441 (lra_elim_table): ... this; update uses.
13442 * bitmap.c (output_info): Rename to ...
13443 (bitmap_output_info): ... this; update uses.
13444 * gcse.c (expr): Rename to ...
13445 (gcse_expr) ... this; update uses.
13446 (occr): Rename to ...
13447 (gcse_occr): .. this; update uses.
13448 * tree-ssa-copy.c (prop_value_d): Rename to ...
13449 (prop_value_t): ... this.
13450 * predict.c (block_info_def): Rename to ...
13451 (block_info): ... this; update uses.
13452 (edge_info_def): Rename to ...
13453 (edge_info): ... this; update uses.
13454 * profile.c (bb_info): Rename to ...
13455 (bb_profile_info): ... this; update uses.
13456 * alloc-pool.c (output_info): Rename to ...
13457 (pool_output_info): ... this; update uses.
13458 * ipa-cp.c (topo_info): Rename to ..
13459 (ipa_topo_info): ... this; update uses.
13460 * tree-nrv.c (nrv_data): Rename to ...
13461 (nrv_data_t): ... this; update uses.
13462 * ipa-split.c (bb_info): Rename to ...
13463 (split_bb_info): ... this one.
13464 * profile.h (edge_info): Rename to ...
13465 (edge_profile_info): ... this one; update uses.
13466 * dse.c (bb_info): Rename to ...
13467 (dse_bb_info): ... this one; update uses.
13468 * cprop.c (occr): Rename to ...
13469 (cprop_occr): ... this one; update uses.
13470 (expr): Rename to ...
13471 (cprop_expr): ... this one; update uses.
13472
13473 2014-09-22 Jason Merrill <jason@redhat.com>
13474
13475 * Makefile.in (check-parallel-%): Add @.
13476
13477 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
13478
13479 * config/aarch64/geniterators.sh: New.
13480 * config/aarch64/iterators.md (VDQF_DF): New.
13481 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
13482 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
13483
13484 2014-09-22 Peter A. Bigot <pab@pabigot.com>
13485
13486 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
13487 -lnosys when -msim absent.
13488
13489 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
13490
13491 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
13492
13493 2014-09-22 Richard Biener <rguenther@suse.de>
13494
13495 * gimplify.c (gimplify_init_constructor): Do not leave
13496 non-GIMPLE vector constructors around.
13497 * tree-cfg.c (verify_gimple_assign_single): Verify that
13498 CONSTRUCTORs have gimple elements.
13499
13500 2014-09-22 Jakub Jelinek <jakub@redhat.com>
13501
13502 PR debug/63328
13503 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
13504 insert a debug source bind stmt setting DEBUG_EXPR_DECL
13505 instead of a normal gimple assignment stmt.
13506
13507 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
13508
13509 * config/bfin/bfin.md: Fix use of constraints in define_split.
13510
13511 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
13512
13513 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
13514 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
13515
13516 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
13517
13518 * hard-reg-set.h: Include hash-table.h.
13519 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
13520 field.
13521 * target-globals.c (target_globals::~target_globals): Call
13522 hard_regs->finalize.
13523 * rtl.h (subreg_shape): New structure.
13524 (shape_of_subreg): New function.
13525 (simplifiable_subregs): Declare.
13526 * reginfo.c (simplifiable_subreg): New structure.
13527 (simplifiable_subregs_hasher): Likewise.
13528 (simplifiable_subregs): New function.
13529 (invalid_mode_changes): Delete.
13530 (alid_mode_changes, valid_mode_changes_obstack): New variables.
13531 (record_subregs_of_mode): Remove subregs_of_mode parameter.
13532 Record valid mode changes in valid_mode_changes.
13533 (find_subregs_of_mode): Remove subregs_of_mode parameter.
13534 Update calls to record_subregs_of_mode.
13535 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
13536 handling. Initialize new variables. Update call to
13537 find_subregs_of_mode.
13538 (invalid_mode_change_p): Check new variables instead of
13539 invalid_mode_changes.
13540 (finish_subregs_of_mode): Finalize new variables instead of
13541 invalid_mode_changes.
13542 (target_hard_regs::finalize): New function.
13543 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
13544 even when CLASS_CANNOT_CHANGE_MODE is undefined.
13545
13546 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
13547
13548 * combine.c (subst): Use simplify_subreg_regno rather than
13549 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
13550
13551 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
13552
13553 * rtl.h (subreg_info): Expand commentary
13554 * rtlanal.c (subreg_get_info): Likewise.
13555
13556 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
13557
13558 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
13559 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
13560 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
13561
13562 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
13563
13564 * config/arm/arm.c: #include "tm-constrs.h"
13565 (thumb1_size_rtx_costs): Adjust rtx costs.
13566
13567 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
13568
13569 * configure.ac (target_header_dir): Move block defining
13570 this to before the block setting inhibit_libc.
13571 (inhibit_libc): When considering $with_headers, just
13572 check it it's explicitly "no". If not, also check if
13573 $target_header_dir/stdio.h is present. If not, set
13574 inhibit_libc=true.
13575 * configure: Regenerate.
13576
13577 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
13578
13579 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
13580
13581 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13582
13583 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
13584 insn for divides by integer powers of two.
13585 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
13586 (mod<mode>3): Fix formatting.
13587 (three anonymous define_insn and two define_split): Delete.
13588
13589 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13590
13591 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
13592 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
13593 (floatdisf2_internal2): Ditto.
13594 (ashrdi3_no_power): Ditto. Fix formatting.
13595
13596 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13597
13598 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
13599 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
13600 Tidy.
13601
13602 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13603
13604 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
13605 constant, use addsi3 directly.
13606 (three anonymous define_insn, two define_split): Delete.
13607 (sub<mode>3): Move. Do not allow constant second operand.
13608 Generate different insn for constant first operand.
13609 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
13610 (subf<mode>3_imm): New.
13611 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
13612 (*plus_ltu<mode>): Only handle registers.
13613 (*plus_ltu<mode>_1): New. Handle integer third operand.
13614 (*plus_gtu<mode>): Only handle registers.
13615 (*plus_gtu<mode>_1): New. Handle integer third operand.
13616
13617 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13618
13619 * config/rs6000/rs6000.md (iorxor): New code_iterator.
13620 (iorxor): New code_attr.
13621 (IORXOR): New code_attr.
13622 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
13623 (ior<mode>3, xor<mode>3): Delete.
13624 (<iorxor><mode>3): New.
13625 (splitter for "big" integer ior, xor): New.
13626 (*bool<mode>3): Move. Also handle AND.
13627 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
13628 (splitter for "big" integer ior, xor): Delete.
13629
13630 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13631
13632 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
13633 (two anonymous define_insn and two define_split): Delete.
13634 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
13635
13636 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13637
13638 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
13639 (two anonymous define_insn and two define_split): Delete.
13640 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
13641
13642 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13643
13644 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
13645
13646 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13647
13648 * config/rs6000/predicates.md (ca_operand): Allow subregs.
13649 (input_operand): Do not allow ca_operand.
13650 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
13651 carry bit, allow SImode and Pmode.
13652 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
13653
13654 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
13655
13656 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
13657 clobbered registers using clobber_reg. Remove UNSPEC decoration.
13658 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
13659 (*call_rex64_ms_sysv): Remove.
13660 (*call_value_rex64_ms_sysv): Ditto.
13661 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
13662
13663 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
13664
13665 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
13666 operand 3 to "CnL".
13667
13668 2014-09-20 Andreas Schwab <schwab@suse.de>
13669
13670 * config/ia64/ia64.md: Remove constraints from define_split
13671 patterns.
13672
13673 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
13674
13675 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
13676 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
13677 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
13678 (get_dynamic_type): Remove.
13679 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
13680 (clear_speculation): Bring to ipa-deivrt.h
13681 (get_class_context): Rename to ...
13682 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
13683 (contains_type_p): Update.
13684 (get_dynamic_type): Rename to ...
13685 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
13686 (possible_polymorphic_call_targets): UPdate.
13687 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
13688 * ipa-prop.c (ipa_analyze_call_uses): Update.
13689
13690 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
13691
13692 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
13693 privatize dynamic TLS variables.
13694
13695 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
13696
13697 * diagnostic.c (warning_n): New function.
13698 * diagnostic-core.h (warning_n): Declare.
13699 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
13700 output dynamic counts when available.
13701
13702 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
13703
13704 PR tree-optimization/63255
13705 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
13706 issue in setting body_removed flag.
13707
13708 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
13709
13710 PR c++/61825
13711 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
13712 that visibility change is possible
13713 (handle_weakref_attribute): Likewise.
13714 * cgraph.h (symtab_node): Add method get_create and
13715 field refuse_visibility_changes.
13716 (symtab_node::get_create): New method.
13717 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
13718 * varasm.c (mark_weak): Verify that visibility change is
13719 possible.
13720
13721 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
13722
13723 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
13724 for base_reg_operand to be common between LO_SUM and PLUS.
13725 (fusion_gpr_mem_combo): New predicate to match a fused address
13726 that combines the addis and memory offset address.
13727
13728 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
13729 calling signature.
13730 (emit_fusion_gpr_load): Likewise.
13731
13732 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
13733 signature to pass each argument separately, rather than
13734 using an operands array. Rewrite the insns found by peephole2 to
13735 be a single insn, rather than hoping the insns will still be
13736 together when the peephole pass is done. Drop being called via a
13737 normal peephole.
13738 (emit_fusion_gpr_load): Change calling signature to be called from
13739 the fusion_gpr_load_<mode> insns with a combined memory address
13740 instead of the peephole pass passing the addis and offset
13741 separately.
13742
13743 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
13744 fusion.
13745 (power8 fusion peephole): Drop support for doing power8 via a
13746 normal peephole that was created by the peephole2 pass.
13747 (power8 fusion peephole2): Create a new insn with the fused
13748 address, so that the fused operation is kept together after
13749 register allocation is done.
13750 (fusion_gpr_load_<mode>): Likewise.
13751
13752 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
13753
13754 PR lto/63286
13755 * tree.c (need_assembler_name_p): Do not mangle variadic types.
13756
13757 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
13758
13759 * recog.c (scratch_operand): Do not simply allow all hard registers:
13760 only allow those that are allocatable.
13761
13762 2014-09-19 Felix Yang <felix.yang@huawei.com>
13763
13764 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
13765 comments and fix spacing to conform to coding style.
13766
13767 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
13768
13769 * genrecog.c (validate_pattern): Allow empty constraints in
13770 a match_scratch.
13771
13772 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
13773
13774 * dwarf2out.c (decl_ultimate_origin): Update comment.
13775 * tree.c (block_ultimate_origin): Same.
13776
13777 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13778
13779 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
13780 Update GCC version name to GCC 5.
13781 (rs6000_function_arg_boundary): Likewise.
13782 (rs6000_function_arg): Likewise.
13783
13784 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
13785
13786 * config/sh/sh.md: Fix use of constraints in define_split.
13787
13788 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
13789
13790 PR ipa/61998
13791 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
13792
13793 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
13794
13795 * doc/md.texi (Modifiers): Consistently use "read/write"
13796 nomenclature rather than "input/output".
13797 * genrecog.c (constraints_supported_in_insn_p): New.
13798 (validate_pattern): If needed, also check constraints on
13799 MATCH_SCRATCH operands.
13800 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
13801 operands with no '=' or '+' modifier.
13802
13803 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
13804
13805 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
13806 scratch register as written.
13807
13808 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13809
13810 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
13811 assignment.
13812
13813 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13814
13815 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
13816 expanders.
13817
13818 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13819
13820 PR target/62662
13821 * config/s390/s390.c (s390_emit_epilogue): When doing the return
13822 address load optimization force s390_optimize_prologue to leave it
13823 that way. Only do the optimization if we already decided to push
13824 r14 into a stack slot.
13825
13826 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
13827
13828 * asan.c (build_check_stmt): Alignment arg was added.
13829 (asan_expand_check_ifn): Optimization for alignment >= 8.
13830
13831 2014-09-19 Olivier Hainque <hainque@adacore.com>
13832
13833 * config/i386/vxworksae.h: Remove obsolete definitions.
13834 (STACK_CHECK_PROTECT): Define.
13835 * config/i386/vx-common.h: Remove. Merge contents within
13836 config/i386/vxworks.h.
13837 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
13838 i386/vx-common.h.
13839
13840 2014-09-19 Olivier Hainque <hainque@adacore.com>
13841
13842 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
13843 * config/rs6000/t-vxworksmils: New file.
13844 * config/rs6000/vxworksmils.h: New file.
13845
13846 2014-09-19 Olivier Hainque <hainque@adacore.com>
13847
13848 * varasm.c (default_section_type_flags): Flag .persistent.bss
13849 sections as SECTION_BSS.
13850
13851 2014-09-19 Nick Clifton <nickc@redhat.com>
13852
13853 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
13854 pop'ed registers so that DCE does not eliminate them.
13855
13856 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
13857
13858 PR lto/63298
13859 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
13860
13861 2014-09-18 Joseph Myers <joseph@codesourcery.com>
13862
13863 * system.h (LIBGCC2_TF_CEXT): Poison.
13864 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
13865 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
13866 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
13867 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
13868 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
13869 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
13870 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
13871 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
13872 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
13873
13874 2014-09-19 Kito Cheng <kito@0xlab.org>
13875
13876 * except.h: Fix header guard.
13877 * addresses.h: Add missing header guard.
13878 * cfghooks.h: Likewise.
13879 * collect-utils.h: Likewise.
13880 * collect2-aix.h: Likewise.
13881 * conditions.h: Likewise.
13882 * cselib.h: Likewise.
13883 * dwarf2asm.h: Likewise.
13884 * graphds.h: Likewise.
13885 * graphite-scop-detection.h: Likewise.
13886 * gsyms.h: Likewise.
13887 * hw-doloop.h: Likewise.
13888 * incpath.h: Likewise.
13889 * ipa-inline.h: Likewise.
13890 * ipa-ref.h: Likewise.
13891 * ira-int.h: Likewise.
13892 * ira.h: Likewise.
13893 * lra-int.h: Likewise.
13894 * lra.h: Likewise.
13895 * lto-section-names.h: Likewise.
13896 * read-md.h: Likewise.
13897 * reload.h: Likewise.
13898 * rtl-error.h: Likewise.
13899 * sdbout.h: Likewise.
13900 * targhooks.h: Likewise.
13901 * tree-affine.h: Likewise.
13902 * xcoff.h: Likewise.
13903 * xcoffout.h: Likewise.
13904
13905 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
13906
13907 PR debug/63285
13908 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
13909 if advance != 0.
13910
13911 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
13912
13913 PR target/61360
13914 * lra.c (lra): Call recog_init.
13915
13916 2014-09-18 Jakub Jelinek <jakub@redhat.com>
13917
13918 PR c++/62017
13919 * asan.c (transform_statements): Don't instrument clobber statements.
13920
13921 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13922
13923 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
13924 to neon_load1_1reg<q>.
13925
13926 2014-09-17 Jakub Jelinek <jakub@redhat.com>
13927
13928 PR debug/63284
13929 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
13930 if there are only debug stmts after the noreturn call, instead
13931 remove the debug stmts.
13932
13933 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
13934
13935 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
13936 (odr_types_equivalent_p): Use pair hash.
13937 (odr_subtypes_equivalent_p): Likewise, do structural compare
13938 on ODR types that may be mismatched.
13939 (warn_odr): Support warning when only one field is given.
13940 (odr_types_equivalent_p): Strenghten comparsions made;
13941 support VOIDtype.
13942 (add_type_duplicate): Update VISITED hash set.
13943
13944 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
13945
13946 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
13947 Enable selection of 'posix' or no thread model.
13948
13949 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
13950
13951 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
13952 when architecture is older than ARMv7.
13953
13954 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
13955
13956 PR target/61853
13957 * config/pa/pa.c (pa_function_value): Directly handle aggregates
13958 that fit exactly in a word or double word.
13959
13960 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
13961
13962 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
13963 zmm/k regs support.
13964
13965 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13966 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13967 Anna Tikhonova <anna.tikhonova@intel.com>
13968 Ilya Tocar <ilya.tocar@intel.com>
13969 Andrey Turetskiy <andrey.turetskiy@intel.com>
13970 Ilya Verbin <ilya.verbin@intel.com>
13971 Kirill Yukhin <kirill.yukhin@intel.com>
13972 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13973
13974 * config/i386/i386.c
13975 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
13976 * config/i386/sse.md
13977 (define_mode_iterator VI48F_256): New.
13978 (define_mode_attr extract_type): Ditto.
13979 (define_mode_attr extract_suf): Ditto.
13980 (define_mode_iterator AVX512_VEC): Ditto.
13981 (define_expand
13982 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
13983 AVX512_VEC.
13984 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
13985 (define_insn
13986 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
13987 Ditto.
13988 (define_mode_attr extract_type_2): Ditto.
13989 (define_mode_attr extract_suf_2): Ditto.
13990 (define_mode_iterator AVX512_VEC_2): Ditto.
13991 (define_expand
13992 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
13993 AVX512_VEC_2 mode iterator.
13994 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
13995 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
13996 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
13997 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
13998 (define_split for V16FI mode): Ditto.
13999 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
14000 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
14001 (define_split for VI8F_256 mode): Ditto.
14002 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
14003 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
14004 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
14005 (define_split for VI4F_256 mode): Ditto.
14006 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
14007 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
14008 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
14009 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
14010 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
14011 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
14012 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
14013 Update `type' attribute, remove explicit `memory' attribute calculation.
14014
14015 2014-09-16 Kito Cheng <kito@0xlab.org>
14016
14017 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
14018 ira_spilled_reg_stack_slots_num if using lra.
14019 (do_reload): Remove release ira_spilled_reg_stack_slots part.
14020 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
14021 make sure not using lra.
14022 (ira_reuse_stack_slot): Likewise.
14023 (ira_mark_new_stack_slot): Likewise.
14024
14025 2014-09-15 Andi Kleen <ak@linux.intel.com>
14026
14027 * function.c (allocate_struct_function): Force
14028 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
14029 profiling is disabled.
14030
14031 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
14032
14033 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
14034 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
14035 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
14036 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
14037 macro with statically checked member functions.
14038 * rtl.h (rtx_insn::deleted): New method.
14039 (rtx_insn::set_deleted): Likewise.
14040 (rtx_insn::set_undeleted): Likewise.
14041 (INSN_DELETED_P): Remove.
14042
14043 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
14044
14045 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
14046 result of emit_jump_insn_before to a new variable.
14047 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
14048 (mark_jump_label_1): Likewise.
14049 (mark_jump_label_asm): Likewise.
14050 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
14051 * rtl.h (mark_jump_label): Adjust.
14052
14053 2014-09-15 Jakub Jelinek <jakub@redhat.com>
14054
14055 * Makefile.in (dg_target_exps): Remove.
14056 (check_gcc_parallelize): Change to just an upper bound number.
14057 (check-%-subtargets): Always print the non-parallelized goals.
14058 (check_p_vars, check_p_comma, check_p_subwork): Remove.
14059 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
14060 check_p_numbers3, check_p_numbers4, check_p_numbers5,
14061 check_p_numbers6): New variables.
14062 (check_p_numbers): Set to sequence from 1 to 9999.
14063 (check_p_subdirs): Set to sequence from 1 to minimum of
14064 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
14065 or 128.
14066 (check-%, check-parallel-%): Rewritten so that for parallelized
14067 testing each job runs all the *.exp files, with
14068 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
14069
14070 2014-09-15 David Malcolm <dmalcolm@redhat.com>
14071
14072 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
14073 rtx to rtx_insn *.
14074 (arc_sets_cc_p): Likewise.
14075 * config/arc/arc.c (arc_print_operand): Use methods of
14076 "final_sequence" for clarity, and to enable strengthening of
14077 locals "jump" and "delay" from rtx to rtx_insn *.
14078 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
14079 rtx_insn *; use method of rtx_sequence for typesafety.
14080 (arc_get_insn_variants): Use insn method of rtx_sequence for
14081 typesafety.
14082 (arc_pad_return): Likewise.
14083 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
14084 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
14085 dyn_cast to rtx_sequence *, using insn method for typesafety.
14086 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
14087 rtx_sequence * and use insn method when invoking get_attr_length.
14088 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
14089 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
14090 rtx_sequence *, introducing a local "seq", using its insn method
14091 from typesafety and clarity.
14092 (add_sched_insns_for_speculation): Strengthen local "next" from
14093 rtx to rtx_insn *.
14094 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
14095 (predicate_insn): Likewise.
14096 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
14097 second param.
14098 * config/cris/cris.c (cris_notice_update_cc): Likewise.
14099 * config/epiphany/epiphany-protos.h
14100 (extern void epiphany_insert_mode_switch_use): Likewise for param
14101 "insn".
14102 (get_attr_sched_use_fpu): Likewise for param.
14103 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
14104 Likewise for param "insn".
14105 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
14106 param "insn" of "target_insert_mode_switch_use" callback.
14107 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
14108 (frv_issues_to_branch_unit_p): Likewise.
14109 (frv_pack_insn_p): Likewise.
14110 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
14111 const rtx * (i.e. mutable rtx_def * const *) to
14112 rtx_insn * const *.
14113 * config/i386/i386-protos.h (standard_sse_constant_opcode):
14114 Strengthen first param from rtx to rtx_insn *.
14115 (output_fix_trunc): Likewise.
14116 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
14117 (output_fix_trunc): Likewise.
14118 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
14119 local "insn".
14120 (min_insn_size): Likewise for param "insn".
14121 (get_mem_group): Likewise.
14122 (is_cmp): Likewise.
14123 (get_insn_path): Likewise.
14124 (get_insn_group): Likewise.
14125 (count_num_restricted): Likewise.
14126 (fits_dispatch_window): Likewise.
14127 (add_insn_window): Likewise.
14128 (add_to_dispatch_window): Likewise.
14129 (debug_insn_dispatch_info_file): Likewise.
14130 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
14131 first param.
14132 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
14133 "cmp" and local "prev".
14134 (m32c_output_compare): Likewise for param "insn".
14135 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
14136 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
14137 (define_predicate "large_insn_p"): Likewise.
14138 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
14139 param from rtx to rtx_insn *.
14140 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
14141 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
14142 (m68k_sched_attr_size): Likewise.
14143 (sched_get_opxy_mem_type): Likewise for param "insn".
14144 (m68k_sched_attr_op_mem): Likewise.
14145 (sched_mem_operand_p): Likewise.
14146 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
14147 * config/mep/mep.c (mep_multi_slot): Likewise.
14148 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
14149 first param.
14150 (mips_sync_loop_insns): Likewise.
14151 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
14152 method of "final_sequence" for typesafety.
14153 (mips_process_sync_loop): Strengthen param "insn" from rtx to
14154 rtx_insn *.
14155 (mips_output_sync_loop): Likewise.
14156 (mips_sync_loop_insns): Likewise.
14157 (mips_74k_agen_init): Likewise.
14158 (mips_sched_init): Use NULL rather than NULL_RTX when working with
14159 insns.
14160 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
14161 Strengthen param "insn" from rtx to rtx_insn *.
14162 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
14163 local "insn".
14164 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
14165 param.
14166 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
14167 "insn". Use method of rtx_sequence for typesafety.
14168 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
14169 rtx_insn *.
14170 (branch_needs_nop_p): Likewise.
14171 (use_skip_p): Likewise.
14172 (pa_insn_refs_are_delayed): Likewise.
14173 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
14174 for locals "insn", "ninsn".
14175 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
14176 "insn".
14177 (is_cracked_insn): Likewise.
14178 (is_branch_slot_insn): Likewise.
14179 (is_nonpipeline_insn): Likewise.
14180 (insn_terminates_group_p): Likewise.
14181 (insn_must_be_first_in_group): Likewise.
14182 (insn_must_be_last_in_group): Likewise.
14183 (force_new_group): Likewise for param "next_insn".
14184 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
14185 "insn".
14186 (s390_sched_score): Likewise.
14187 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
14188 (rtx sfunc_uses_reg): Likewise for sole param.
14189 * config/sh/sh.c (sh_print_operand): Use insn method of
14190 final_sequence for typesafety.
14191 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
14192 Use insn method of final_sequence for typesafety.
14193 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
14194 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
14195 for param.
14196 (eligible_for_return_delay): Likewise.
14197 (eligible_for_sibcall_delay): Likewise.
14198 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
14199 (eligible_for_return_delay): Likewise.
14200 (eligible_for_sibcall_delay): Likewise.
14201 * config/stormy16/stormy16-protos.h
14202 (xstormy16_output_cbranch_hi): Likewise for final param.
14203 (xstormy16_output_cbranch_si): Likewise.
14204 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
14205 (xstormy16_output_cbranch_si): Likewise.
14206 * config/v850/v850-protos.h (notice_update_cc): Likewise.
14207 * config/v850/v850.c (notice_update_cc): Likewise.
14208
14209 * final.c (get_attr_length_1): Strengthen param "insn" and param
14210 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
14211 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
14212 (get_attr_min_length): Likewise.
14213 (shorten_branches): Likewise for signature of locals "length_fun"
14214 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
14215 from a checked cast and use its methods for clarity and to enable
14216 strengthening local "inner_insn" from rtx to rtx_insn *.
14217 * genattr.c (gen_attr): When writing out the prototypes of the
14218 various generated "get_attr_" functions, strengthen the params of
14219 the non-const functions from rtx to rtx_insn *.
14220 Similarly, strengthen the params of insn_default_length,
14221 insn_min_length, insn_variable_length_p, insn_current_length.
14222 (main): Similarly, strengthen the param of num_delay_slots,
14223 internal_dfa_insn_code, insn_default_latency, bypass_p,
14224 insn_latency, min_issue_delay, print_reservation,
14225 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
14226 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
14227 to hook_int_rtx_insn_unreachable.
14228 * genattrtab.c (write_attr_get): When writing out the generated
14229 "get_attr_" functions, strengthen the param "insn" from rtx to
14230 rtx_insn *, eliminating a checked cast.
14231 (make_automaton_attrs): When writing out prototypes of
14232 "internal_dfa_insn_code_", "insn_default_latency_" functions
14233 and the "internal_dfa_insn_code" and "insn_default_latency"
14234 callbacks, strengthen their params from rtx to rtx_insn *
14235 * genautomata.c (output_internal_insn_code_evaluation): When
14236 writing out code, add a checked cast from rtx to rtx_insn * when
14237 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
14238 (output_dfa_insn_code_func): Strengthen param of generated
14239 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
14240 (output_trans_func): Likewise for generated function
14241 "state_transition".
14242 (output_internal_insn_latency_func): When writing out generated
14243 function "internal_insn_latency", rename params from "insn" and
14244 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
14245 locals "insn" and "insn2" as rtx_insn * with checked casts once
14246 we've proven that we're not dealing with const0_rtx.
14247 (output_insn_latency_func): Strengthen param of generated
14248 function "insn_latency" from rtx to rtx_insn *.
14249 (output_print_reservation_func): Likewise for generated function
14250 "print_reservation".
14251 (output_insn_has_dfa_reservation_p): Likewise for generated
14252 function "insn_has_dfa_reservation_p".
14253 * hooks.c (hook_int_rtx_unreachable): Rename to...
14254 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
14255 from rtx to rtx_insn *.
14256 * hooks.h (hook_int_rtx_unreachable): Likewise.
14257 (extern int hook_int_rtx_insn_unreachable): Likewise.
14258 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
14259 (get_attr_min_length): Likewise.
14260 * recog.c (get_enabled_alternatives): Likewise.
14261 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
14262 * reorg.c (find_end_label): Introduce local rtx "pat" and
14263 strengthen local "insn" from rtx to rtx_insn *.
14264 (redundant_insn): Use insn method of "seq" rather than element for
14265 typesafety; strengthen local "control" from rtx to rtx_insn *.
14266 * resource.c (mark_referenced_resources): Add checked cast to
14267 rtx_insn * within INSN/JUMP_INSN case.
14268 (mark_set_resources): Likewise.
14269 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
14270 rtx to rtx_insn *.
14271
14272 2014-09-15 David Malcolm <dmalcolm@redhat.com>
14273
14274 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
14275 param "label" from rtx to rtx_insn *.
14276 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
14277 and local "op".
14278 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
14279 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
14280 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
14281 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
14282 * final.c (default_label_align_after_barrier_max_skip): Strengthen
14283 param from rtx to rtx_insn *.
14284 (default_loop_align_max_skip): Likewise.
14285 (default_label_align_max_skip): Likewise.
14286 (default_jump_align_max_skip): Likewise.
14287 * target.def (label_align_after_barrier_max_skip): Likewise.
14288 (loop_align_max_skip): Likewise.
14289 (label_align_max_skip): Likewise.
14290 (jump_align_max_skip): Likewise.
14291 * targhooks.h (default_label_align_after_barrier_max_skip):
14292 Likewise.
14293 (default_loop_align_max_skip): Likewise.
14294 (default_label_align_max_skip): Likewise.
14295 (default_jump_align_max_skip): Likewise.
14296
14297 2014-09-15 David Malcolm <dmalcolm@redhat.com>
14298
14299 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
14300 from const_rtx to const rtx_insn *. Update union members from rtx
14301 to rtx_insn *.
14302 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
14303 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
14304 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
14305 strengthen both params from const_rtx to const rtx_insn *.
14306 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
14307 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
14308 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
14309 rtx_insn *.
14310 * target.def (can_follow_jump): Strengthen both params from
14311 const_rtx to const rtx_insn *, and update default implementation
14312 from hook_bool_const_rtx_const_rtx_true to
14313 hook_bool_const_rtx_insn_const_rtx_insn_true.
14314
14315 2014-09-15 David Malcolm <dmalcolm@redhat.com>
14316
14317 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
14318 "insn" from rtx to rtx_insn *.
14319 * sched-int.h (deps_start_bb): Likewise for 2nd param.
14320
14321 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
14322 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14323 Anna Tikhonova <anna.tikhonova@intel.com>
14324 Ilya Tocar <ilya.tocar@intel.com>
14325 Andrey Turetskiy <andrey.turetskiy@intel.com>
14326 Ilya Verbin <ilya.verbin@intel.com>
14327 Kirill Yukhin <kirill.yukhin@intel.com>
14328 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14329
14330 * config/i386/sse.md
14331 (define_insn "vcvtph2ps<mask_name>"): Add masking.
14332 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
14333 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
14334 (define_expand "vcvtps2ph_mask"): New.
14335 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
14336 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
14337 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
14338
14339 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
14340 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14341 Anna Tikhonova <anna.tikhonova@intel.com>
14342 Ilya Tocar <ilya.tocar@intel.com>
14343 Andrey Turetskiy <andrey.turetskiy@intel.com>
14344 Ilya Verbin <ilya.verbin@intel.com>
14345 Kirill Yukhin <kirill.yukhin@intel.com>
14346 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14347
14348 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
14349 New.
14350 (define_mode_iterator VI24_AVX512BW_1): Ditto.
14351 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
14352 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
14353 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
14354 also for TARGET_AVX512VL.
14355 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
14356
14357 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
14358
14359 * doc/install.texi (Options specification): add
14360 --disable-libsanitizer item.
14361
14362 2014-09-14 James Clarke <jrtc27@jrtc27.com>
14363 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
14364
14365 PR target/61407
14366 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
14367 and above.
14368 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
14369 kernel version check to avoid incrementing it after every major OS X
14370 release.
14371 (darwin_default_min_version): Avoid static memory buffer.
14372
14373 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
14374
14375 * tree.c (need_assembler_name_p): Store C++ type mangling only
14376 for aggregates.
14377
14378 2014-09-13 Marek Polacek <polacek@redhat.com>
14379
14380 * tree.c (protected_set_expr_location): Don't check whether T is
14381 non-null here.
14382
14383 2014-09-12 DJ Delorie <dj@redhat.com>
14384
14385 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
14386 (extend_and_shift1_hipsi2): Likewise.
14387 (extend_and_shift2_hipsi2): Likewise.
14388
14389 2014-09-12 David Malcolm <dmalcolm@redhat.com>
14390
14391 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
14392 with NULL when dealing with an insn.
14393 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
14394 from rtx to rtx_insn *.
14395 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
14396 const_rtx to const rtx_insn *.
14397 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
14398
14399 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
14400
14401 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
14402 assert.
14403
14404 2014-09-12 Joseph Myers <joseph@codesourcery.com>
14405
14406 * target.def (libgcc_floating_mode_supported_p): New hook.
14407 * targhooks.c (default_libgcc_floating_mode_supported_p): New
14408 function.
14409 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
14410 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
14411 (LIBGCC2_HAS_TF_MODE): Remove.
14412 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
14413 * doc/tm.texi: Regenerate.
14414 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
14415 machine mode.
14416 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
14417 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
14418 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
14419 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
14420 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14421 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
14422 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
14423 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
14424 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
14425 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
14426 function.
14427 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
14428 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14429 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14430 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14431 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14432 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14433 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14434 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
14435 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
14436 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
14437 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
14438 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
14439 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
14440 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
14441 Remove.
14442 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
14443 New macro.
14444 (ia64_libgcc_floating_mode_supported_p): New function.
14445 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
14446 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
14447 (IA64_NO_LIBGCC_TFMODE): Define.
14448 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
14449 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
14450 macro.
14451 (pdp11_scalar_mode_supported_p): New function.
14452 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
14453 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
14454
14455 2014-09-12 Richard Biener <rguenther@suse.de>
14456
14457 PR middle-end/63237
14458 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
14459
14460 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
14461
14462 * tree.c (integer_each_onep): New function.
14463 * tree.h (integer_each_onep): Declare it.
14464 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
14465 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
14466 (X & 1) == 0 for vector and complex.
14467
14468 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
14469
14470 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
14471 for A57.
14472 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
14473 cost to spilling from integer to FP registers.
14474
14475 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
14476
14477 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
14478 move handling.
14479 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
14480 are now handled correctly.
14481
14482 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
14483
14484 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
14485 handling of CALLER_SAVE_REGS and POINTER_REGS.
14486
14487 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
14488
14489 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
14490 the number of hard registers.
14491
14492 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
14493 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14494 Anna Tikhonova <anna.tikhonova@intel.com>
14495 Ilya Tocar <ilya.tocar@intel.com>
14496 Andrey Turetskiy <andrey.turetskiy@intel.com>
14497 Ilya Verbin <ilya.verbin@intel.com>
14498 Kirill Yukhin <kirill.yukhin@intel.com>
14499 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14500
14501 * config/i386/sse.md
14502 (define_mode_iterator VI48_AVX512VL): New.
14503 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
14504 "avx512f_vternlog<mode>_maskz" and update mode iterator.
14505 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
14506 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
14507 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
14508 "avx512f_vternlog<mode>_mask" and update mode iterator.
14509 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
14510 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
14511 iterator.
14512 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
14513 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
14514 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
14515 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
14516 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
14517 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
14518
14519 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
14520 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14521 Anna Tikhonova <anna.tikhonova@intel.com>
14522 Ilya Tocar <ilya.tocar@intel.com>
14523 Andrey Turetskiy <andrey.turetskiy@intel.com>
14524 Ilya Verbin <ilya.verbin@intel.com>
14525 Kirill Yukhin <kirill.yukhin@intel.com>
14526 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14527
14528 * config/i386/sse.md (VI128_256): Delete.
14529 (define_mode_iterator VI124_256): New.
14530 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
14531 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
14532 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
14533 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
14534 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
14535 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
14536 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
14537 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
14538 iterator.
14539 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
14540 in presence of AVX-512.
14541
14542 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
14543 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14544 Anna Tikhonova <anna.tikhonova@intel.com>
14545 Ilya Tocar <ilya.tocar@intel.com>
14546 Andrey Turetskiy <andrey.turetskiy@intel.com>
14547 Ilya Verbin <ilya.verbin@intel.com>
14548 Kirill Yukhin <kirill.yukhin@intel.com>
14549 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14550
14551 * config/i386/sse.md
14552 (define_expand "<avx512>_gathersi<mode>"): Rename from
14553 "avx512f_gathersi<mode>".
14554 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
14555 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
14556 (define_expand "<avx512>_gatherdi<mode>"): Rename from
14557 "avx512f_gatherdi<mode>".
14558 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
14559 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
14560 wide versions.
14561 (define_expand "<avx512>_scattersi<mode>"): Rename from
14562 "avx512f_scattersi<mode>".
14563 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
14564 (define_expand "<avx512>_scatterdi<mode>"): Rename from
14565 "avx512f_scatterdi<mode>".
14566 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
14567
14568 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
14569
14570 * ira.h (ira_finish_once): Delete.
14571 * ira-int.h (target_ira_int::~target_ira_int): Declare.
14572 (target_ira_int::free_ira_costs): Likewise.
14573 (target_ira_int::free_register_move_costs): Likewise.
14574 (ira_finish_costs_once): Delete.
14575 * ira.c (free_register_move_costs): Replace with...
14576 (target_ira_int::free_register_move_costs): ...this new function.
14577 (target_ira_int::~target_ira_int): Define.
14578 (ira_init): Call free_register_move_costs as a member function rather
14579 than a global function.
14580 (ira_finish_once): Delete.
14581 * ira-costs.c (free_ira_costs): Replace with...
14582 (target_ira_int::free_ira_costs): ...this new function.
14583 (ira_init_costs): Call free_ira_costs as a member function rather
14584 than a global function.
14585 (ira_finish_costs_once): Delete.
14586 * target-globals.c (target_globals::~target_globals): Call the
14587 target_ira_int destructor.
14588 * toplev.c: Include lra.h.
14589 (finalize): Call lra_finish_once rather than ira_finish_once.
14590
14591 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
14592
14593 * common.opt (flto-odr-type-merging): New flag.
14594 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
14595 (types_same_for_odr): Likewise.
14596 (odr_subtypes_equivalent_p): Likewise.
14597 (add_type_duplicate): Do not walk type variants.
14598 (register_odr_type): New function.
14599 * ipa-utils.h (register_odr_type): Declare.
14600 (odr_type_p): New function.
14601 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
14602 TYPE_DECLs
14603 * doc/invoke.texi (-flto-odr-type-merging): Document.
14604 * tree.c (need_assembler_name_p): Compute ODR names when asked
14605 for it.
14606 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
14607
14608 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
14609
14610 PR target/63228
14611 * config/i386/i386.c (ix86_option_override_internal): Also turn
14612 off OPTION_MASK_ABI_X32 for -m16.
14613
14614 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
14615
14616 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
14617 GPR instead of P.
14618
14619 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
14620
14621 PR target/58757
14622 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
14623 Directly forward to __*_DENORM_MIN__.
14624
14625 2014-09-11 David Malcolm <dmalcolm@redhat.com>
14626
14627 * rtl.h (LABEL_REF_LABEL): New macro.
14628
14629 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
14630 of XEXP (, 0), where we know that we have a LABEL_REF.
14631 * cfgbuild.c (make_edges): Likewise.
14632 (purge_dead_tablejump_edges): Likewise.
14633 * cfgexpand.c (convert_debug_memory_address): Likewise.
14634 * cfgrtl.c (patch_jump_insn): Likewise.
14635 * combine.c (distribute_notes): Likewise.
14636 * cse.c (hash_rtx_cb): Likewise.
14637 (exp_equiv_p): Likewise.
14638 (fold_rtx): Likewise.
14639 (check_for_label_ref): Likewise.
14640 * cselib.c (rtx_equal_for_cselib_1): Likewise.
14641 (cselib_hash_rtx): Likewise.
14642 * emit-rtl.c (mark_label_nuses): Likewise.
14643 * explow.c (convert_memory_address_addr_space): Likewise.
14644 * final.c (output_asm_label): Likewise.
14645 (output_addr_const): Likewise.
14646 * gcse.c (add_label_notes): Likewise.
14647 * genconfig.c (walk_insn_part): Likewise.
14648 * genrecog.c (validate_pattern): Likewise.
14649 * ifcvt.c (cond_exec_get_condition): Likewise.
14650 (noce_emit_store_flag): Likewise.
14651 (noce_get_alt_condition): Likewise.
14652 (noce_get_condition): Likewise.
14653 * jump.c (maybe_propagate_label_ref): Likewise.
14654 (mark_jump_label_1): Likewise.
14655 (redirect_exp_1): Likewise.
14656 (rtx_renumbered_equal_p): Likewise.
14657 * lra-constraints.c (operands_match_p): Likewise.
14658 * reload.c (operands_match_p): Likewise.
14659 (find_reloads): Likewise.
14660 * reload1.c (set_label_offsets): Likewise.
14661 * reorg.c (get_branch_condition): Likewise.
14662 * rtl.c (rtx_equal_p_cb): Likewise.
14663 (rtx_equal_p): Likewise.
14664 * rtlanal.c (reg_mentioned_p): Likewise.
14665 (rtx_referenced_p): Likewise.
14666 (get_condition): Likewise.
14667 * sched-vis.c (print_value): Likewise.
14668 * varasm.c (const_hash_1): Likewise.
14669 (compare_constant): Likewise.
14670 (const_rtx_hash_1): Likewise.
14671 (output_constant_pool_1): Likewise.
14672
14673 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
14674
14675 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
14676 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
14677 instead of minus.
14678 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
14679 cr6_test_for_lt_reverse): Ditto.
14680
14681 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
14682
14683 PR c++/61489
14684 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
14685
14686 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
14687
14688 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
14689 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
14690 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
14691 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
14692 Delete.
14693
14694 (aarch64_fold_builtin): Remove all reinterpret cases.
14695
14696 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
14697
14698 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
14699
14700 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
14701 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
14702 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
14703 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
14704 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
14705 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
14706 aarch64_reinterpretv2df<mode>): Delete.
14707
14708 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
14709
14710 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
14711 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
14712 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
14713 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
14714 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
14715 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
14716 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
14717 vreinterpret_u32_f64): Use cast.
14718
14719 * config/aarch64/iterators.md (VD_RE): Delete.
14720
14721 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
14722
14723 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
14724 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
14725 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
14726 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
14727 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
14728 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
14729 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
14730 Replace inline assembler with __aarch64_vset_lane_any.
14731
14732 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
14733
14734 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
14735 types.
14736 (vmull_high_lane_s32): Likewise.
14737 (vmull_high_lane_u16): Likewise.
14738 (vmull_high_lane_u32): Likewise.
14739
14740 2014-09-11 Jason Merrill <jason@redhat.com>
14741
14742 PR c++/58678
14743 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
14744
14745 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
14746
14747 PR target/63223
14748 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
14749 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
14750 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
14751
14752 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14753 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14754 Anna Tikhonova <anna.tikhonova@intel.com>
14755 Ilya Tocar <ilya.tocar@intel.com>
14756 Andrey Turetskiy <andrey.turetskiy@intel.com>
14757 Ilya Verbin <ilya.verbin@intel.com>
14758 Kirill Yukhin <kirill.yukhin@intel.com>
14759 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14760
14761 * config/i386/sse.md
14762 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
14763 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
14764 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
14765 New.
14766 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
14767 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
14768 iterator.
14769 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
14770 New.
14771 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
14772 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
14773 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
14774 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
14775 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
14776 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
14777 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
14778 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
14779 iterator.
14780 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
14781 New.
14782 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
14783 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
14784 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
14785
14786 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
14787
14788 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
14789 to access removed nodes.
14790
14791 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
14792
14793 PR tree-optimization/63186
14794 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
14795 (mark_nonssa_use): Likewise.
14796 (verify_non_ssa_vars): Verify all header blocks for label
14797 definitions.
14798
14799 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
14800 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14801 Anna Tikhonova <anna.tikhonova@intel.com>
14802 Ilya Tocar <ilya.tocar@intel.com>
14803 Andrey Turetskiy <andrey.turetskiy@intel.com>
14804 Ilya Verbin <ilya.verbin@intel.com>
14805 Kirill Yukhin <kirill.yukhin@intel.com>
14806 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14807
14808 * config/i386/sse.md
14809 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
14810 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
14811 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
14812 "<avx2_avx512f>_permvar<mode><mask_name>".
14813 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
14814 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
14815 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
14816 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
14817 Ditto.
14818 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
14819 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
14820 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
14821 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
14822
14823 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
14824
14825 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
14826 V2DF, V4SF, DF, and DI modes.
14827 (vsx_fmav2df2): Likewise.
14828 (vsx_float_fix_<mode>2): Likewise.
14829 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
14830
14831 2014-09-10 Xinliang David Li <davidxl@google.com>
14832
14833 PR target/63209
14834 * config/arm/arm.md (movcond_addsi): Handle case where source
14835 and target operands are the same.
14836
14837 2014-09-10 David Malcolm <dmalcolm@redhat.com>
14838
14839 * final.c (this_is_asm_operands): Strengthen this variable from
14840 rtx to const rtx_insn *.
14841 * output.h (this_is_asm_operands): Likewise.
14842 * rtl-error.c (location_for_asm): Strengthen param "insn" from
14843 const_rtx to const rtx_insn *.
14844 (diagnostic_for_asm): Likewise.
14845 * rtl-error.h (error_for_asm): Likewise.
14846 (warning_for_asm): Likewise.
14847
14848 2014-09-10 David Malcolm <dmalcolm@redhat.com>
14849
14850 * genextract.c (print_header): When writing out insn_extract to
14851 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
14852 * recog.h (insn_extract): Strengthen the param from rtx to
14853 rtx_insn *.
14854
14855 2014-09-10 Mike Stump <mikestump@comcast.net>
14856
14857 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
14858 8.6.1.
14859
14860 2014-09-10 Martin Jambor <mjambor@suse.cz>
14861
14862 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
14863 (analyze): Do not set analyze flag if expand_thunk returns false;.
14864 (create_wrapper): Likewise.
14865 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
14866
14867 2014-09-10 Martin Jambor <mjambor@suse.cz>
14868
14869 PR ipa/61654
14870 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
14871 new decl properly. Analyze the new thunk if it is expanded.
14872
14873 2014-09-10 Andreas Schwab <schwab@suse.de>
14874
14875 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
14876 [USED_FOR_TARGET]: Define.
14877
14878 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
14879
14880 * config/mips/mips.c (mips_secondary_reload_class): Handle
14881 regno < 0 case.
14882
14883 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
14884
14885 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
14886 assignment.
14887
14888 2014-09-10 Jakub Jelinek <jakub@redhat.com>
14889
14890 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
14891 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
14892 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
14893 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
14894 flag_delete_null_pointer_checks for them.
14895 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
14896 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
14897 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
14898 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
14899 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
14900 stmt's iterator.
14901 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
14902 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
14903 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
14904 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
14905 * doc/invoke.texi (-fsanitize=nonnull-attribute,
14906 -fsanitize=returns-nonnull-attribute): Document.
14907
14908 * ubsan.h (struct ubsan_mismatch_data): Removed.
14909 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
14910 * ubsan.c (ubsan_source_location): For unknown locations,
14911 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
14912 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
14913 Allow more than one location and arbitrary extra arguments passed
14914 in ... instead of through MISMATCH pointer.
14915 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
14916 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
14917 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
14918 callers.
14919
14920 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
14921 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14922 Anna Tikhonova <anna.tikhonova@intel.com>
14923 Ilya Tocar <ilya.tocar@intel.com>
14924 Andrey Turetskiy <andrey.turetskiy@intel.com>
14925 Ilya Verbin <ilya.verbin@intel.com>
14926 Kirill Yukhin <kirill.yukhin@intel.com>
14927 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14928
14929 * config/i386/sse.md
14930 (define_mode_iterator VI48F): New.
14931 (define_insn "<avx512>_compress<mode>_mask"): Rename from
14932 "avx512f_compress<mode>_mask" and update mode iterator.
14933 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
14934 "avx512f_compressstore<mode>_mask" and update mode iterator.
14935 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
14936 "avx512f_expand<mode>_maskz" and update mode iterator.
14937 (define_insn "<avx512>_expand<mode>_mask"): Rename from
14938 "avx512f_expand<mode>_mask" and update mode iterator.
14939
14940 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
14941 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14942 Anna Tikhonova <anna.tikhonova@intel.com>
14943 Ilya Tocar <ilya.tocar@intel.com>
14944 Andrey Turetskiy <andrey.turetskiy@intel.com>
14945 Ilya Verbin <ilya.verbin@intel.com>
14946 Kirill Yukhin <kirill.yukhin@intel.com>
14947 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14948
14949 * config/i386/i386.c
14950 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
14951 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
14952 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
14953 avx512dq_rangepv4sf_mask.
14954 * config/i386/sse.md
14955 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
14956 UNSPEC_RANGE.
14957 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
14958 (define_insn "reduces<mode>"): Ditto.
14959 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
14960 Ditto.
14961 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
14962 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
14963 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
14964
14965 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
14966 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14967 Anna Tikhonova <anna.tikhonova@intel.com>
14968 Ilya Tocar <ilya.tocar@intel.com>
14969 Andrey Turetskiy <andrey.turetskiy@intel.com>
14970 Ilya Verbin <ilya.verbin@intel.com>
14971 Kirill Yukhin <kirill.yukhin@intel.com>
14972 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14973
14974 * config/i386/i386.c
14975 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
14976 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
14977 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
14978 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
14979 avx512vl_getmantv2df_mask.
14980 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
14981 avx512f_vgetmantv4sf_round.
14982 * config/i386/sse.md
14983 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
14984 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
14985 mode iterator.
14986 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
14987 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
14988 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
14989 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
14990 iterator..
14991 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
14992 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
14993 update mode iterator.
14994 (define_expand
14995 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
14996 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
14997 mode iterator.
14998 (define_insn
14999 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
15000 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
15001 update mode iterator.
15002 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
15003 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
15004 iterator..
15005 (define_insn
15006 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
15007 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
15008 mode iterator..
15009 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
15010 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
15011 update mode iterator.
15012 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
15013 "avx512f_getmant<mode><round_saeonly_name>".
15014
15015 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
15016
15017 PR ipa/63166
15018 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
15019
15020 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
15021 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15022 Anna Tikhonova <anna.tikhonova@intel.com>
15023 Ilya Tocar <ilya.tocar@intel.com>
15024 Andrey Turetskiy <andrey.turetskiy@intel.com>
15025 Ilya Verbin <ilya.verbin@intel.com>
15026 Kirill Yukhin <kirill.yukhin@intel.com>
15027 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15028
15029 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
15030 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
15031 (define_mode_iterator FMAMODE_AVX512): New.
15032 (define_mode_iterator FMAMODE): Remove conditions.
15033 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
15034 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
15035 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
15036 mode iterator.
15037 (define_mode_iterator FMAMODE_NOVF512): Remove.
15038 (define_insn "*fma_fmadd_<mode>"): Rename from
15039 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
15040 FMAMODE mode iterator.
15041 (define_mode_iterator VF_SF_AVX512VL): New.
15042 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
15043 Use VF_SF_AVX512VL mode iterator.
15044 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
15045 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
15046 iterator.
15047 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
15048 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
15049 iterator.
15050 (define_insn "*fma_fmsub_<mode>"): Rename from
15051 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
15052 FMAMODE mode iterator.
15053 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
15054 Use VF_SF_AVX512VL mode iterator.
15055 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
15056 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
15057 iterator.
15058 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
15059 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
15060 iterator.
15061 (define_insn "*fma_fnmadd_<mode>"): Rename from
15062 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
15063 use FMAMODE mode iterator.
15064 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
15065 Use VF_SF_AVX512VL mode iterator.
15066 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
15067 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
15068 iterator.
15069 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
15070 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
15071 iterator.
15072 (define_insn "*fma_fnmsub_<mode>"): Rename from
15073 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
15074 FMAMODE mode iterator.
15075 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
15076 Use VF_SF_AVX512VL mode iterator.
15077 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
15078 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
15079 iterator.
15080 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
15081 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
15082 iterator.
15083 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
15084 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
15085 use VF_AVX512VL mode iterator.
15086 (define_insn "*fma_fmaddsub_<mode>"): Rename from
15087 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
15088 remove subst usage.
15089 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
15090 Use VF_SF_AVX512VL mode iterator.
15091 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
15092 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
15093 iterator.
15094 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
15095 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
15096 iterator.
15097 (define_insn "*fma_fmsubadd_<mode>"): Rename from
15098 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
15099 remove usage of subst.
15100 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
15101 Use VF_SF_AVX512VL mode iterator.
15102 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
15103 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
15104 iterator.
15105 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
15106 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
15107 iterator.
15108
15109 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
15110
15111 Revert r213751:
15112 * calls.c (precompute_arguments): Check
15113 promoted_for_signed_and_unsigned_p and set the promoted mode.
15114 (promoted_for_signed_and_unsigned_p): New function.
15115 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
15116 and set the promoted mode.
15117 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
15118 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
15119 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
15120
15121 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
15122
15123 * opth-gen.awk: Generate mapping from cpp message reasons to the
15124 options that enable them.
15125 * doc/options.texi (CppReason): Document.
15126
15127 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
15128
15129 * doc/invoke.texi (Wnormalized=): Update.
15130
15131 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
15132
15133 PR target/63195
15134 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
15135 operands. Split off the constant operand alternative to ...
15136 (*bool<mode>3_imm): New.
15137
15138 2014-09-09 David Malcolm <dmalcolm@redhat.com>
15139
15140 * rtl.h (single_set_2): Strengthen first param from const_rtx to
15141 const rtx_insn *, and move prototype to above...
15142 (single_set): ...this. Convert this from a macro to an inline
15143 function, enforcing the requirement that the param is a const
15144 rtx_insn *.
15145 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
15146
15147 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
15148 Strengthen both params from rtx to rtx_insn *.
15149 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
15150 Likewise; introduce locals "producer_set", "consumer_set", using
15151 them in place of "producer" and "consumer" when dealing with SET
15152 rather than insn.
15153 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
15154 when invoking single_set in region guarded by INSN_P.
15155 (avr_out_bitop): Likewise.
15156 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
15157 region guarded by GET_CODE check, using methods to strengthen
15158 local "this_insn" from rtx to rtx_insn *, and for clarity.
15159 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
15160 Strengthen local "insn" from rtx to rtx_insn *.
15161 (define_insn_and_split "xload<mode>_A"): Likewise.
15162 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
15163 "insn".
15164 (find_load): Likewise for return type.
15165 (workaround_speculation): Likewise for both locals named
15166 "load_insn".
15167 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
15168 local "cc0_user".
15169 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
15170 for local "prev".
15171 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
15172 param 2.
15173 * config/h8300/h8300.c (notice_update_cc): Likewise.
15174 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
15175 "insn" and "dep_insn".
15176 (exact_store_load_dependency): Likewise for both params.
15177 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
15178 since this now clashes with inline function. Instead, delay
15179 calling single_set until the point where its needed, and then
15180 assign the result to "compare_set" and rework the conditional that
15181 follows.
15182 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
15183 local "last" from rtx to rtx_insn *.
15184 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
15185 second param.
15186 (mips_store_data_bypass_p): Likewise for both params.
15187 * config/mips/mips.c (mips_load_store_insns): Likewise for second
15188 param.
15189 (mips_store_data_bypass_p): Likewise for both params.
15190 (mips_orphaned_high_part_p): Likewise for param "insn".
15191 * config/mn10300/mn10300.c (extract_bundle): Likewise.
15192 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
15193 Introduce local rtx "insn2_pat".
15194 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
15195 "ninsn".
15196 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
15197 Introduce local rtx "set", using it in place of "insn" for the
15198 result of single_set. This appears to fix a bug, since the call
15199 to find_regno_note on a SET does nothing.
15200 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
15201 params from rtx to rtx_insn *.
15202 (set_to_load_agen): Likewise.
15203 * config/s390/s390.c (s390_label_align): Likewise for local
15204 "prev_insn". Introduce new rtx locals "set" and "src", using
15205 them in place of "prev_insn" for the results of single_set
15206 and SET_SRC respectively.
15207 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
15208 Introduce new rtx local "set" using in place of "jump" for the
15209 result of single_set. Use SET_SRC (set) rather than plain
15210 XEXP (set, 1).
15211 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
15212 rtx to rtx_insn *.
15213 (noncall_uses_reg): Likewise.
15214 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
15215 guarded by GET_CODE check, using its methods for clarity, and to
15216 enable strengthening local "this_insn" from rtx to rtx_insn *.
15217 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
15218 "insn" from rtx to rtx_insn *.
15219 (define_expand "umulhisi3"): Likewise.
15220 (define_expand "smulsi3_highpart"): Likewise.
15221 (define_expand "umulsi3_highpart"): Likewise.
15222 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
15223 local "after". Replace GET_CODE check with a dyn_cast,
15224 introducing new local rtx_sequence * "seq", using insn method for
15225 typesafety.
15226
15227 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
15228 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
15229 place of "insn" once we're dealing with patterns rather than the
15230 input insn.
15231 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
15232 (scan_trace): Likewise for local "elt", updating lookups within
15233 sequence to use insn method rather than element method.
15234 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
15235 to rtx_insn *.
15236 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
15237 * ifcvt.c (noce_try_abs): Likewise for local "insn".
15238 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
15239 invoking single_set.
15240 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
15241 "insn" from rtx to rtx_insn *.
15242 (skip_usage_debug_insns): Likewise for return type, adding a
15243 checked cast.
15244 (check_secondary_memory_needed_p): Likewise for local "insn".
15245 (inherit_reload_reg): Likewise.
15246 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
15247 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
15248 checked casts.
15249 (store_data_bypass_p): Likewise for both params.
15250 (if_test_bypass_p): Likewise.
15251 * recog.h (store_data_bypass_p): Likewise for both params.
15252 (if_test_bypass_p): Likewise.
15253 * reload.c (find_equiv_reg): Likewise for local "where".
15254 * reorg.c (delete_jump): Likewise for param "insn".
15255 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
15256 to const rtx_insn *.
15257 * store-motion.c (replace_store_insn): Likewise for param "del".
15258 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
15259 and use its methods for clarity, and to strengthen local "del"
15260 from rtx to rtx_insn *.
15261 (build_store_vectors): Use insn method of "st" when calling
15262 replace_store_insn for typesafety and clarity.
15263
15264 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15265
15266 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
15267 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
15268 on how to make it legal in future.
15269
15270 2014-09-09 David Malcolm <dmalcolm@redhat.com>
15271
15272 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
15273 to rtx_insn *.
15274 (restinsn): Likewise.
15275 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
15276 Likewise for param.
15277 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
15278 Likewise.
15279 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
15280 first param.
15281 (arc_hazard): Likewise for both params.
15282 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
15283 checked casts to rtx_sequence * and uses of the insn method for
15284 type-safety.
15285 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
15286 (arc_adjust_insn_length): Likewise for param "insn".
15287 (struct insn_length_parameters_s): Likewise for first param of
15288 "get_variants" callback field.
15289 (arc_get_insn_variants): Likewise for first param and local
15290 "inner". Replace a check of GET_CODE with a dyn_cast to
15291 rtx_sequence *, using methods for type-safety and clarity.
15292 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
15293 rtx_sequence * and uses of the insn method for type-safety when
15294 invoking arc_adjust_insn_length.
15295 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
15296 for param.
15297 (arm_address_offset_is_imm): Likewise.
15298 (struct tune_params): Likewise for params 1 and 3 of the
15299 "sched_adjust_cost" callback field.
15300 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
15301 params 1 and 3 ("insn" and "dep").
15302 (xscale_sched_adjust_cost): Likewise.
15303 (fa726te_sched_adjust_cost): Likewise.
15304 (cortexa7_older_only): Likewise for param "insn".
15305 (cortexa7_younger): Likewise.
15306 (arm_attr_length_move_neon): Likewise.
15307 (arm_address_offset_is_imm): Likewise.
15308 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
15309 * config/avr/avr.c (avr_notice_update_cc): Likewise.
15310 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
15311 (workaround_speculation): Likewise for local "last_condjump".
15312 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
15313 (shadow_or_blockage_p): Likewise.
15314 (get_unit_reqs): Likewise.
15315 (get_unit_operand_masks): Likewise.
15316 (c6x_registers_update): Likewise.
15317 (returning_call_p): Likewise.
15318 (can_use_callp): Likewise.
15319 (convert_to_callp): Likewise.
15320 (find_last_same_clock): Likwise for local "t".
15321 (reorg_split_calls): Likewise for local "shadow".
15322 (hwloop_pattern_reg): Likewise for param "insn".
15323 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
15324 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
15325 (frv_extract_membar): Likewise.
15326 (frv_optimize_membar_local): Strengthen param "last_membar" from
15327 rtx * to rtx_insn **.
15328 (frv_optimize_membar_global): Strengthen param "membar" from rtx
15329 to rtx_insn *.
15330 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
15331 to rtx_insn **.
15332 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
15333 both params from rtx to rtx_insn *.
15334 (ia64_ld_address_bypass_p): Likewise.
15335 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
15336 "insn".
15337 (ia64_safe_type): Likewise.
15338 (group_barrier_needed): Likewise.
15339 (safe_group_barrier_needed): Likewise.
15340 (ia64_single_set): Likewise.
15341 (is_load_p): Likewise.
15342 (record_memory_reference): Likewise.
15343 (get_mode_no_for_insn): Likewise.
15344 (important_for_bundling_p): Likewise.
15345 (unknown_for_bundling_p): Likewise.
15346 (ia64_st_address_bypass_p): Likewise for both params.
15347 (ia64_ld_address_bypass_p): Likewise.
15348 (expand_vselect): Introduce new local rtx_insn * "insn", using it
15349 in place of rtx "x" after the emit_insn call.
15350 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
15351 Strengthen param from rtx to rtx_insn *.
15352 (ix86_agi_dependent): Likewise for both params.
15353 (ix86_attr_length_immediate_default): Likewise for param 1.
15354 (ix86_attr_length_address_default): Likewise for param.
15355 (ix86_attr_length_vex_default): Likewise for param 1.
15356 * config/i386/i386.c (ix86_attr_length_immediate_default):
15357 Likewise for param "insn".
15358 (ix86_attr_length_address_default): Likewise.
15359 (ix86_attr_length_vex_default): Likewise.
15360 (ix86_agi_dependent): Likewise for both params.
15361 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
15362 (vselect_insn): Likewise for this variable.
15363 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
15364 for param 1.
15365 (m68k_sched_attr_opy_type): Likewise.
15366 * config/m68k/m68k.c (sched_get_operand): Likewise.
15367 (sched_attr_op_type): Likewise.
15368 (m68k_sched_attr_opx_type): Likewise.
15369 (m68k_sched_attr_opy_type): Likewise.
15370 (sched_get_reg_operand): Likewise.
15371 (sched_get_mem_operand): Likewise.
15372 (m68k_sched_address_bypass_p): Likewise for both params.
15373 (sched_get_indexed_address_scale): Likewise.
15374 (m68k_sched_indexed_address_bypass_p): Likewise.
15375 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
15376 (m68k_sched_indexed_address_bypass_p): Likewise.
15377 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
15378 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
15379 removing another.
15380 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
15381 params from rtx to rtx_insn *.
15382 (mips_fmadd_bypass): Likewise.
15383 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
15384 (mips_linked_madd_p): Likewise.
15385 (mips_macc_chains_last_hilo): Likewise for this variable.
15386 (mips_macc_chains_record): Likewise for param.
15387 (vr4130_last_insn): Likewise for this variable.
15388 (vr4130_swap_insns_p): Likewise for both params.
15389 (mips_ls2_variable_issue): Likewise for param.
15390 (mips_need_noat_wrapper_p): Likewise for param "insn".
15391 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
15392 in place of "x" after the emit_insn.
15393 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
15394 params from rtx to rtx_insn *.
15395 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
15396 (pa_combine_instructions): Introduce local "par" for result of
15397 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
15398 to make_insn_raw.
15399 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
15400 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
15401 (rl78_alloc_physical_registers_op1): Likewise.
15402 (rl78_alloc_physical_registers_op2): Likewise.
15403 (rl78_alloc_physical_registers_ro1): Likewise.
15404 (rl78_alloc_physical_registers_cmp): Likewise.
15405 (rl78_alloc_physical_registers_umul): Likewise.
15406 (rl78_alloc_address_registers_macax): Likewise.
15407 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
15408 * config/s390/predicates.md (execute_operation): Likewise for
15409 local "insn".
15410 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
15411 params.
15412 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
15413 (addr_generation_dependency_p): Likewise for param "insn".
15414 (s390_agen_dep_p): Likewise for both params.
15415 (s390_fpload_toreg): Likewise for param "insn".
15416 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
15417 * config/sh/sh.c (sh_loop_align): Likewise for param and local
15418 "next".
15419 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
15420 * config/sh/sh_treg_combine.cc
15421 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
15422 and local "i".
15423 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
15424 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
15425 "and_insn", "load", "shift".
15426 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
15427 "insn".
15428 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
15429 for XEXP (note, 0) of the REG_CC_SETTER note.
15430 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
15431 rtx_insn *, eliminating a checked cast made redundant by this.
15432 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
15433 to rtx_insn *.
15434 * genattr.c (main): When writing out the prototype to
15435 const_num_delay_slots, strengthen the param from rtx to
15436 rtx_insn *.
15437 * genattrtab.c (write_const_num_delay_slots): Likewise when
15438 writing out the implementation of const_num_delay_slots.
15439 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
15440 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
15441 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
15442 favor of new rtx locals "src" and "set" and new local rtx_insn *
15443 "insn" and "seq".
15444 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
15445 to rtx_insn *.
15446 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
15447 locals "cond", "if_then_else", "set" and new rtx_insn * locals
15448 "insn" and "seq".
15449 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
15450 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
15451 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
15452 the top-level scope, replacing with new more tightly-scoped rtx
15453 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
15454 "new_insn", "copy_of_insn_b", and make local rtx "set" more
15455 tightly-scoped.
15456 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
15457 rtx_insn *.
15458 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
15459 "move_insn".
15460 (ira_setup_alts): Likewise for param "insn".
15461 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
15462 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
15463 and an rtx_insn *.
15464 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
15465 new more-tightly scoped rtx locals "add3_insn", "insn",
15466 "add2_insn" and rtx_insn * "move_insn".
15467 * postreload-gcse.c (eliminate_partially_redundant_load): Add
15468 checked cast on result of gen_move_insn when invoking
15469 extract_insn.
15470 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
15471 rtx_insn *.
15472 (verify_changes): Add a checked cast on "object" when invoking
15473 insn_invalid_p.
15474 (extract_insn_cached): Strengthen param "insn" from rtx to
15475 rtx_insn *.
15476 (extract_constrain_insn_cached): Likewise.
15477 (extract_insn): Likewise.
15478 * recog.h (insn_invalid_p): Likewise for param 1.
15479 (recog_memoized): Likewise for param.
15480 (extract_insn): Likewise.
15481 (extract_constrain_insn_cached): Likewise.
15482 (extract_insn_cached): Likewise.
15483 * reload.c (can_reload_into): Likewise for local "test_insn".
15484 * reload.h (cleanup_subreg_operands): Likewise for param.
15485 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
15486 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
15487 result of emit_insn. Remove a checked cast made redundant by this
15488 change.
15489 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
15490 rtx to rtx_insn *.
15491 * sel-sched.c (get_reg_class): Likewise.
15492
15493 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
15494 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15495
15496 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
15497 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
15498 Define.
15499 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
15500
15501 2014-09-09 David Malcolm <dmalcolm@redhat.com>
15502
15503 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
15504 const rtx_insn *, and from rtx to rtx_insn * for the other
15505 overloaded variant.
15506 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
15507 INSN_LOCATION, since we know INSN_P holds.
15508 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
15509 (insn_file): Likewise.
15510 (insn_scope): Likewise.
15511 (insn_location): Likewise.
15512
15513 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
15514 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
15515 for the result of gen_load_const_gp.
15516 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
15517 param from rtx to rtx_insn *.
15518 * config/rs6000/rs6000.c (output_call): Likewise.
15519 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
15520 introducing a checked cast to rtx_sequence * and use of the insn
15521 method.
15522 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
15523 from rtx to rtx_insn *.
15524 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
15525 (insn_line): Likewise.
15526 (insn_file): Likewise.
15527 (insn_location): Likewise.
15528 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
15529 from rtx to rtx_insn *.
15530 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
15531 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
15532 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
15533 via a checked cast.
15534 * reorg.c (relax_delay_slots): Strengthen locals named "after"
15535 from rtx to rtx_insn *; use methods of "pat" for type-safety.
15536
15537 2014-09-09 David Malcolm <dmalcolm@redhat.com>
15538
15539 * combine.c (try_combine): Eliminate checked cast on result of
15540 gen_rtx_INSN.
15541 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
15542 autogenerated one by strengthening the return type and params 2 and 3
15543 from rtx to rtx_insn *, and by naming the params.
15544 * gengenrtl.c (special_rtx): Add INSN to those that are
15545 special-cased.
15546 * rtl.h (gen_rtx_INSN): New prototype.
15547
15548 2014-09-09 David Malcolm <dmalcolm@redhat.com>
15549
15550 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
15551 than NULL_RTX.
15552 (no_equiv): Likewise.
15553 (update_equiv_regs): Likewise.
15554 (setup_reg_equiv): Likewise. Strengthen locals "elem",
15555 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
15556 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
15557 clarity.
15558 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
15559 from rtx to rtx_insn_list *.
15560 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
15561 rtx_insn_list * and use methods for clarity and typesafety.
15562 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
15563 "list".
15564 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
15565 redundant check on INSN_P (insns): this cannot hold, as "insns" is
15566 an INSN_LIST, not an insn.
15567 (reverse_equiv_p): Strengthen local "insns" from rtx to
15568 rtx_insn_list * and use methods for clarity and typesafety.
15569 (contains_reloaded_insn_p): Likewise for local "list".
15570
15571 2014-09-09 Jiong Wang <jiong.wang@arm.com>
15572
15573 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
15574 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
15575 (arm_builtin_vectorized_function): Likewise.
15576 * config/arm/arm_neon_builtins.def: New macro for copysignf.
15577 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
15578
15579 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
15580
15581 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
15582 * builtins.h (default_target_builtins): Likewise.
15583 * gcse.h (default_target_gcse): Likewise.
15584 * target-globals.h (target_globals): Add a destructor. Convert
15585 void-pointer fields back to their real type and change from
15586 GTY((atomic)) to GTY((skip)).
15587 (restore_target_globals): Remove casts accordingly.
15588 * target-globals.c (save_target_globals): Use XCNEW rather than
15589 ggc_internal_cleared_alloc to allocate non-GC structures.
15590 Use ggc_cleared_alloc to allocate the target_globals structure
15591 itself.
15592 (target_globals::~target_globals): Define.
15593
15594 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15595
15596 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
15597 mnemonic instead of fldmfdd.
15598 * config/arm/arm.c (vfp_output_fstmd): Rename to...
15599 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
15600 Output vpush when address register is SP.
15601 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
15602 (vfp_output_vstmd): ... This.
15603 * config/arm/vfp.md (push_multi_vfp): Update call to
15604 vfp_output_vstmd.
15605
15606 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15607
15608 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
15609
15610 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15611
15612 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
15613 (*sqrtdf2_vfp): Likewise.
15614 (*cmpsf_vfp): Likewise.
15615 (*cmpsf_trap_vfp): Likewise.
15616 (*cmpdf_vfp): Likewise.
15617 (*cmpdf_trap_vfp): Likewise.
15618
15619 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15620
15621 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
15622 (*truncdfsf2_vfp): Likewise.
15623 (*truncsisf2_vfp): Likewise.
15624 (*truncsidf2_vfp): Likewise.
15625 (fixuns_truncsfsi2): Likewise.
15626 (fixuns_truncdfsi2): Likewise.
15627 (*floatsisf2_vfp): Likewise.
15628 (*floatsidf2_vfp): Likewise.
15629 (floatunssisf2): Likewise.
15630 (floatunssidf2): Likewise.
15631
15632 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15633
15634 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
15635 (*muldf3_vfp): Likewise.
15636 (*mulsf3negsf_vfp): Likewise.
15637 (*muldf3negdf_vfp): Likewise.
15638 (*mulsf3addsf_vfp): Likewise.
15639 (*muldf3adddf_vfp): Likewise.
15640 (*mulsf3subsf_vfp): Likewise.
15641 (*muldf3subdf_vfp): Likewise.
15642 (*mulsf3negsfaddsf_vfp): Likewise.
15643 (*fmuldf3negdfadddf_vfp): Likewise.
15644 (*mulsf3negsfsubsf_vfp): Likewise.
15645 (*muldf3negdfsubdf_vfp): Likewise.
15646
15647 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15648
15649 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
15650 (*absdf2_vfp): Likewise.
15651 (*negsf2_vfp): Likewise.
15652 (*negdf2_vfp): Likewise.
15653 (*addsf3_vfp): Likewise.
15654 (*adddf3_vfp): Likewise.
15655 (*subsf3_vfp): Likewise.
15656 (*subdf3_vfp): Likewise.
15657 (*divsf3_vfp): Likewise.
15658 (*divdf3_vfp): Likewise.
15659
15660 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15661
15662 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
15663 multiple.
15664 (arm_print_operand): Don't convert real values to decimal
15665 representation in default case.
15666 (fp_immediate_constant): Delete.
15667 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
15668 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
15669 syntax.
15670 (*thumb2_movsi_vfp): Likewise.
15671 (*movdi_vfp): Likewise.
15672 (*movdi_vfp_cortexa8): Likewise.
15673 (*movhf_vfp_neon): Likewise.
15674 (*movhf_vfp): Likewise.
15675 (*movsf_vfp): Likewise.
15676 (*thumb2_movsf_vfp): Likewise.
15677 (*movdf_vfp): Likewise.
15678 (*thumb2_movdf_vfp): Likewise.
15679 (*movsfcc_vfp): Likewise.
15680 (*thumb2_movsfcc_vfp): Likewise.
15681 (*movdfcc_vfp): Likewise.
15682 (*thumb2_movdfcc_vfp): Likewise.
15683
15684 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
15685
15686 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
15687 (-mtune): Likewise.
15688 (-mcpu): Likewise.
15689
15690 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15691
15692 PR target/61749
15693 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
15694 Use qualifier_immediate for last operand. Rename to...
15695 (aarch64_types_ternop_lane_qualifiers): ... This.
15696 (TYPES_QUADOP): Rename to...
15697 (TYPES_TERNOP_LANE): ... This.
15698 (aarch64_simd_expand_args): Return const0_rtx when encountering user
15699 error. Change return of 0 to return of NULL_RTX.
15700 (aarch64_crc32_expand_builtin): Likewise.
15701 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
15702 ICE when expanding unknown builtin.
15703 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
15704 TERNOP_LANE qualifiers.
15705 (sqdmlsl_lane): Likewise.
15706 (sqdmlal_laneq): Likewise.
15707 (sqdmlsl_laneq): Likewise.
15708 (sqdmlal2_lane): Likewise.
15709 (sqdmlsl2_lane): Likewise.
15710 (sqdmlal2_laneq): Likewise.
15711 (sqdmlsl2_laneq): Likewise.
15712
15713 2014-09-09 Nick Clifton <nickc@redhat.com>
15714
15715 * doc/invoke.texi (Optimization Options): Add missing @gol to the
15716 end of a line.
15717 (S/390 and zSeries Options): Remove superfluous word from the
15718 description of the -mhotpatch option.
15719
15720 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
15721
15722 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
15723 * ira.c: #include "shrink-wrap.h"
15724 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
15725 * ifcvt.c: #include "shrink-wrap.h"
15726 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
15727
15728 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
15729
15730 * common/config/picochip/picochip-common.c: Remove.
15731 * config.gcc: Remove support for picochip.
15732 * config/picochip/constraints.md: Remove.
15733 * config/picochip/dfa_space.md: Remove.
15734 * config/picochip/dfa_speed.md: Remove.
15735 * config/picochip/picochip-protos.h: Remove.
15736 * config/picochip/picochip.c: Remove.
15737 * config/picochip/picochip.h: Remove.
15738 * config/picochip/picochip.md: Remove.
15739 * config/picochip/picochip.opt: Remove.
15740 * config/picochip/predicates.md: Remove.
15741 * config/picochip/t-picochip: Remove.
15742 * doc/md.texi: Don't document picochi.
15743
15744 2014-09-08 David Malcolm <dmalcolm@redhat.com>
15745
15746 * basic-block.h (control_flow_insn_p): Strengthen param from
15747 const_rtx to const rtx_insn *.
15748 * cfgbuild.c (control_flow_insn_p): Likewise.
15749
15750 2014-09-08 David Malcolm <dmalcolm@redhat.com>
15751
15752 * gcse.c (modify_mem_list): Strengthen this variable from
15753 vec<rtx> * to vec<rtx_insn *> *.
15754 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
15755 vec<rtx_insn *>.
15756 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
15757 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
15758 (record_last_mem_set_info): Strengthen param "insn" from rtx to
15759 rtx_insn *.
15760 (record_last_set_info): Likewise for local "last_set_insn".
15761
15762 2014-09-08 DJ Delorie <dj@redhat.com>
15763
15764 * doc/invoke.texi (MSP430 Options): Add -minrt.
15765
15766 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15767
15768 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
15769 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
15770 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
15771 handling SH_SPLAT.
15772 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
15773 of extracted lane.
15774 (adjust_splat): New function.
15775 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
15776 (dump_swap_insn_table): Add case for SH_SPLAT.
15777
15778 2014-09-08 Richard Biener <rguenther@suse.de>
15779
15780 PR ipa/63196
15781 * tree-inline.c (copy_loops): The source loop header should
15782 always be non-NULL.
15783 (tree_function_versioning): If loops need fixup after removing
15784 unreachable blocks fix them.
15785 * omp-low.c (simd_clone_adjust): Do not add incr block to
15786 loop under construction.
15787
15788 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
15789
15790 * config/aarch64/aarch64-builtins.c
15791 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
15792
15793 2014-09-08 Joseph Myers <joseph@codesourcery.com>
15794
15795 * config/i386/cygming.h (TF_SIZE): Remove.
15796 * config/i386/darwin.h (TF_SIZE): Remove.
15797 * config/i386/dragonfly.h (TF_SIZE): Remove.
15798 * config/i386/freebsd.h (TF_SIZE): Remove.
15799 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
15800 * config/i386/openbsdelf.h (TF_SIZE): Remove.
15801 * config/i386/sol2.h (TF_SIZE): Remove.
15802 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
15803 * config/ia64/linux.h (TF_SIZE): Remove.
15804 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
15805 * doc/tm.texi: Regenerate.
15806 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
15807
15808 2014-09-08 Joseph Myers <joseph@codesourcery.com>
15809
15810 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
15811 Remove.
15812 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
15813 Remove.
15814 * doc/tm.texi: Regenerate.
15815 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
15816 Poison.
15817 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
15818 * config/cris/cris.h (__make_dp): Remove.
15819
15820 2014-09-08 Richard Biener <rguenther@suse.de>
15821
15822 PR bootstrap/63204
15823 * cfgloop.c (mark_loop_for_removal): Track former header
15824 unconditionally.
15825 * cfgloop.h (struct loop): Add former_header member unconditionally.
15826 * loop-init.c (fix_loop_structure): Enable bogus loop removal
15827 diagnostic unconditionally.
15828
15829 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
15830
15831 PR target/63190
15832 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
15833 constraint for operand0 and remove write only modifier from operand3.
15834
15835 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
15836
15837 PR rtl-optimization/62208
15838 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
15839 rather than const0_rtx in eq/ne-xor simplifications.
15840
15841 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
15842
15843 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
15844 (arc_output_mi_thunk): Likewise.
15845
15846 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
15847 arguments to silence bogus warning.
15848
15849 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
15850
15851 PR middle-end/63171
15852 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
15853
15854 2014-09-06 Tom de Vries <tom@codesourcery.com>
15855
15856 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
15857 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
15858 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
15859
15860 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
15861
15862 PR target/63188
15863 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
15864 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
15865
15866 2014-09-05 Easwaran Raman <eraman@google.com>
15867
15868 PR rtl-optimization/62146
15869 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
15870 hoisted instruction unconditional.
15871
15872 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
15873
15874 PR target/63187
15875 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
15876 Do not allow any_mask_operand for operands[2].
15877 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
15878
15879 2014-09-05 David Malcolm <dmalcolm@redhat.com>
15880
15881 * config/arc/arc.c (arc_print_operand): Use insn method of
15882 final_sequence for type-safety.
15883 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
15884 "insn" from rtx to rtx_insn *.
15885 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
15886 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
15887 Likewise for locals "branch", "label".
15888 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
15889 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
15890 (same_cmp_following_p): Likewise for locals "i2", "i3".
15891 * config/sh/sh_optimize_sett_clrt.cc
15892 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
15893 param "cbranch_insn".
15894 * function.c (convert_jumps_to_returns): Likewis for local "jump".
15895 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
15896 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
15897 const rtx_insn *.
15898 (condjump_p): Likewise.
15899 (condjump_in_parallel_p): Likewise.
15900 (pc_set): Likewise.
15901 (any_uncondjump_p): Likewise.
15902 (any_condjump_p): Likewise.
15903 (condjump_label): Likewise.
15904 (returnjump_p): Strengthen param "insn" from rtx to
15905 const rtx_insn *.
15906 (onlyjump_p): Strengthen param "insn" from const_rtx to
15907 const rtx_insn *.
15908 (jump_to_label_p): Likewise.
15909 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
15910 (invert_jump): Likewise.
15911 * reorg.c (simplejump_or_return_p): Add checked cast when calling
15912 simplejump_p.
15913 (get_jump_flags): Strengthen param "insn" from rtx to
15914 const rtx_insn *.
15915 (get_branch_condition): Likewise.
15916 (condition_dominates_p): Likewise.
15917 (make_return_insns): Move declaration of local "pat" earlier, to
15918 after we've handled NONJUMP_INSN_P and non-sequences, using its
15919 methods to simplify the code and for type-safety.
15920 * rtl.h (find_constant_src): Strengthen param from const_rtx to
15921 const rtx_insn *.
15922 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
15923 (condjump_p): Strengthen param from const_rtx to
15924 const rtx_insn *.
15925 (any_condjump_p): Likewise.
15926 (any_uncondjump_p): Likewise.
15927 (pc_set): Likewise.
15928 (condjump_label): Likewise.
15929 (simplejump_p): Likewise.
15930 (returnjump_p): Likewise.
15931 (onlyjump_p): Likewise.
15932 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
15933 (invert_jump): Likewise.
15934 (condjump_in_parallel_p): Strengthen param from const_rtx to
15935 const rtx_insn *.
15936 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
15937 to const rtx_insn *.
15938 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
15939 to const rtx_insn *.
15940 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
15941
15942 2014-09-05 David Malcolm <dmalcolm@redhat.com>
15943
15944 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
15945 above the conditional, and convert the check on GET_CODE to a
15946 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
15947 the conditional. Simplify the conditional by using methods of
15948 "trial_seq".
15949
15950 2014-09-05 David Malcolm <dmalcolm@redhat.com>
15951
15952 * haifa-sched.c (check_clobbered_conditions): Strengthen local
15953 "link" from rtx to rtx_insn_list *, and use its methods for
15954 clarity and type-safety.
15955 (toggle_cancelled_flags): Likewise.
15956 (restore_last_backtrack_point): Likewise.
15957 (queue_to_ready): Use insn method of "link" in one place.
15958 (schedule_block): Strengthen local "link" from rtx to
15959 rtx_insn_list *, and use its methods for clarity and type-safety.
15960
15961 2014-09-05 David Malcolm <dmalcolm@redhat.com>
15962
15963 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
15964 param "insn" from const_rtx to const rtx_insn *.
15965 (sched_get_reverse_condition_uncached): Likewise.
15966 (sched_get_condition_with_rev): Likewise.
15967 (sched_has_condition_p): Likewise.
15968 (sched_insns_conditions_mutex_p): Likewise for both params.
15969 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
15970 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
15971 (setup_insn_reg_uses): Move local "list" to be more tightly
15972 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
15973 its methods for clarity and type-safety.
15974 (sched_analyze_1): Strengthen local "pending" from rtx to
15975 rtx_insn_list *, and local "pending_mem" from rtx to
15976 rtx_expr_list *. Use methods of each for clarity and type-safety.
15977 (sched_analyze_2): Likewise.
15978 (sched_analyze_insn): Likewise.
15979
15980 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
15981 param from const_rtx to const rtx_insn *.
15982 (sched_insns_conditions_mutex_p): Likewise for both params.
15983 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
15984 param.
15985
15986 * system.h (CONST_CAST_RTX_INSN): New macro.
15987
15988 2014-09-05 David Malcolm <dmalcolm@redhat.com>
15989
15990 * recog.c (peep2_attempt): Strengthen return type from rtx to
15991 rtx_insn *.
15992 (peep2_update_life): Likewise for params "last", "prev", removing
15993 a checked cast made redundant by this.
15994 (peephole2_optimize): Likewise for local "last".
15995
15996 2014-09-05 David Malcolm <dmalcolm@redhat.com>
15997
15998 * basic-block.h (set_block_for_insn): Eliminate this macro in
15999 favor of...
16000 * rtl.h (set_block_for_insn): New inline function, imposing the
16001 requirement that the "insn" param is an rtx_insn *.
16002
16003 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16004
16005 * caller-save.c (setup_save_areas): Strengthen local "insn" from
16006 rtx to rtx_insn *.
16007 * final.c (get_call_reg_set_usage): Likewise for first param,
16008 eliminating a checked cast.
16009 * regs.h (get_call_reg_set_usage): Likewise for first param.
16010 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
16011 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
16012 cast, replacing references to "x" with "call_insn" where
16013 appropriate.
16014 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
16015 rtx_insn *, adding a checked cast.
16016
16017 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16018
16019 * output.h (final_scan_insn): Strengthen first param from rtx to
16020 rtx_insn *.
16021
16022 * final.c (final_scan_insn): Likewise, renaming it back from
16023 "uncast_insn" to "insn", eliminating the checked cast.
16024
16025 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
16026 "vec" with an rtx_sequence * "seq", taking a copy of
16027 "final_sequence", and using methods of "seq" for clarity, and for
16028 type-safety in the calls to final_scan_insn.
16029 * config/mips/mips.c (mips_output_conditional_branch): Use methods
16030 of "final_sequence" for clarity, and for type-safety in the call to
16031 final_scan_insn.
16032 * config/sh/sh.c (print_slot): Strengthen param from rtx to
16033 rtx_sequence * and rename from "insn" to "seq".
16034
16035 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16036
16037 * jump.c (delete_related_insns): Introduce a new local "table" by
16038 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
16039 get_labels method of "table" to simplify access to the labels in
16040 the jump table.
16041
16042 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16043
16044 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
16045 f_minmaxs, f_minmaxd types.
16046
16047 2014-09-05 Richard Biener <rguenther@suse.de>
16048
16049 * cfgloop.c (mark_loop_for_removal): Record former header
16050 when ENABLE_CHECKING.
16051 * cfgloop.h (strut loop): Add former_header member when
16052 ENABLE_CHECKING.
16053 * loop-init.c (fix_loop_structure): Sanity check loops
16054 marked for removal if they re-appeared.
16055
16056 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16057
16058 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
16059 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
16060
16061 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
16062 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
16063 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
16064 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
16065 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
16066 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
16067 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
16068 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
16069 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
16070 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
16071 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
16072 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
16073 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
16074 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
16075 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
16076 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
16077 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
16078 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
16079 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
16080 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
16081 with int{32,16,8}_t.
16082
16083 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16084
16085 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
16086 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
16087 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
16088 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
16089 Remove temporary __asm__ and reimplement.
16090
16091 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16092
16093 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
16094 handling cmge, cmgt, cmeq, cmtst.
16095
16096 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
16097 cmlt, cmgeu, cmgtu, cmtst): Remove.
16098
16099 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
16100 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
16101 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
16102 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
16103
16104 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16105
16106 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
16107 TYPES_TST): Define.
16108 (aarch64_fold_builtin): Update pattern for cmtst.
16109
16110 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
16111 Declare.
16112
16113 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
16114
16115 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
16116 Switch operands, separate out more cases, refactor.
16117
16118 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
16119
16120 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
16121 argument; rename old version to...
16122 (aarch64_const_vec_all_same_in_range_p): ...this.
16123 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
16124
16125 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
16126
16127 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16128
16129 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
16130 Remove qualifier_const_pointer, update comment.
16131
16132 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16133
16134 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
16135
16136 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16137
16138 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
16139 varargs with pointer parameter.
16140 (aarch64_simd_expand_builtin): pass pointer into previous.
16141
16142 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16143
16144 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
16145 alus_ext.
16146
16147 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
16148
16149 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
16150 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
16151 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
16152 Replace temporary asm with call to builtin.
16153 (vrbit_p8, vrbitq_p8): New functions.
16154
16155 2014-09-05 Richard Biener <rguenther@suse.de>
16156
16157 * cfgloop.c (mark_loop_for_removal): New function.
16158 * cfgloop.h (mark_loop_for_removal): Declare.
16159 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
16160 (merge_blocks): Likewise.
16161 (duplicate_block): Likewise.
16162 * except.c (sjlj_emit_dispatch_table): Likewise.
16163 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
16164 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
16165 (thread_through_loop_header): Likewise.
16166
16167 2014-09-05 Richard Biener <rguenther@suse.de>
16168
16169 PR middle-end/63148
16170 * fold-const.c (try_move_mult_to_index): Remove.
16171 (fold_binary_loc): Do not call it.
16172 * tree-data-ref.c (dr_analyze_indices): Strip conversions
16173 from the base object again.
16174
16175 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
16176
16177 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
16178 DImode.
16179
16180 2014-09-05 Bin Cheng <bin.cheng@arm.com>
16181
16182 PR target/55701
16183 * config/arm/arm.md (setmem): New pattern.
16184 * config/arm/arm-protos.h (struct tune_params): New fields.
16185 (arm_gen_setmem): New prototype.
16186 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
16187 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
16188 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
16189 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
16190 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
16191 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
16192 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
16193 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
16194 (arm_const_inline_cost): New function.
16195 (arm_block_set_max_insns): New function.
16196 (arm_block_set_non_vect_profit_p): New function.
16197 (arm_block_set_vect_profit_p): New function.
16198 (arm_block_set_unaligned_vect): New function.
16199 (arm_block_set_aligned_vect): New function.
16200 (arm_block_set_unaligned_non_vect): New function.
16201 (arm_block_set_aligned_non_vect): New function.
16202 (arm_block_set_vect, arm_gen_setmem): New functions.
16203
16204 2014-09-05 Bin Cheng <bin.cheng@arm.com>
16205
16206 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
16207
16208 2014-09-05 Bin Cheng <bin.cheng@arm.com>
16209
16210 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
16211
16212 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
16213
16214 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
16215 an rtx.
16216 * valtrack.h: Adjust.
16217
16218 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
16219
16220 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
16221 an rtx.
16222 (emit_jump_insn_before_noloc): Likewise.
16223 (emit_call_insn_before_noloc): Likewise.
16224 (emit_label_before): Likewise.
16225 (emit_label_after): Likewise.
16226 (emit_insn_before_setloc): Likewise.
16227 (emit_jump_insn_before_setloc): Likewise.
16228 (emit_call_insn_before_setloc): Likewise.
16229 (emit_call_insn_before): Likewise.
16230 * rtl.h: Adjust.
16231
16232 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16233
16234 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
16235 rtx_insn *, eliminating a checked cast.
16236
16237 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16238
16239 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
16240 const_rtx to const rtx_insn *.
16241 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
16242 cast.
16243
16244 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16245
16246 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
16247 fixup_args_size_notes.
16248 * expr.c (fixup_args_size_notes): Strengthen first two params from
16249 rtx to rtx_insn *, eliminating a checked cast.
16250 * rtl.h (fixup_args_size_notes): Strengthen first two params from
16251 rtx to rtx_insn *.
16252
16253 2014-09-05 David Malcolm <dmalcolm@redhat.com>
16254
16255 * haifa-sched.c (get_ready_element): Strengthen return type from
16256 rtx to rtx_insn *.
16257 * sched-int.h (get_ready_element): Likewise.
16258
16259 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
16260
16261 PR target/63165
16262 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
16263 indexed_or_indirect_operand instead of memory_operand.
16264 (floatsi<mode>2_lfiwzx_mem): Ditto.
16265
16266 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
16267
16268 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
16269 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
16270 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
16271
16272 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
16273
16274 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
16275 rtx.
16276 (get_last_nonnote_insn): Likewise.
16277 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
16278 * resource.c (find_basic_block): Likewise.
16279 * rtl.h: Adjust.
16280 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
16281 const_rtx.
16282
16283 2014-09-04 David Malcolm <dmalcolm@redhat.com>
16284
16285 * genattr.c (main): Within the prototype of insn_latency written
16286 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
16287 * genautomata.c (output_internal_maximal_insn_latency_func):
16288 Within the implementation of insn_latency written out to
16289 insn-automata.c, strengthen both params from rtx to rtx_insn *,
16290 eliminating a pair of checked casts.
16291
16292 2014-09-04 David Malcolm <dmalcolm@redhat.com>
16293
16294 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
16295 rtx_insn *.
16296
16297 * rtl.h (eh_returnjump_p): Likewise.
16298
16299 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
16300
16301 * Makefile.in (TAGS): Handle constructs in timevar.def.
16302
16303 2014-09-04 Guozhi Wei <carrot@google.com>
16304
16305 PR target/62040
16306 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
16307 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
16308 it into two patterns.
16309 (move_lo_quad_internal_be_<mode>): Likewise.
16310
16311 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
16312
16313 * doc/options.texi: Document that Var and Init are required if CPP
16314 is given.
16315 * optc-gen.awk: Require Var and Init if CPP is given.
16316 * common.opt (Wpedantic): Use Init.
16317
16318 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16319
16320 * config/rs6000/rs6000.c (special_handling_values): Add
16321 SH_EXTRACT.
16322 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
16323 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
16324 as swappable with special handling SH_EXTRACT. Remove
16325 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
16326 optimization.
16327 (adjust_extract): New function.
16328 (handle_special_swappables): Add default to case statement; add
16329 case for SH_EXTRACT that calls adjust_extract.
16330 (dump_swap_insn_table): Handle SH_EXTRACT.
16331
16332 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16333
16334 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
16335 selection of 0th memory doubleword, regardless of endianness.
16336
16337 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16338
16339 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
16340
16341 2014-09-04 Alan Modra <amodra@gmail.com>
16342
16343 PR debug/60655
16344 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
16345 can't be output.
16346
16347 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
16348
16349 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
16350 * targhooks.c (default_dwarf_frame_reg_mode): New function.
16351 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
16352 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
16353 * doc/tm.texi: Regenerate.
16354 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
16355 selection logic to default_dwarf_frame_reg_mode.
16356
16357 2014-09-03 Marek Polacek <polacek@redhat.com>
16358
16359 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
16360 by -Wall.
16361
16362 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
16363
16364 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
16365 the automodified register.
16366
16367 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
16368
16369 * output.h (get_some_local_dynamic_name): Declare.
16370 * final.c (some_local_dynamic_name): New variable.
16371 (get_some_local_dynamic_name): New function.
16372 (final_end_function): Clear some_local_dynamic_name.
16373 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
16374 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
16375 (print_operand): Report an error if '%&' is used inappropriately.
16376 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
16377 (get_some_local_dynamic_name_1): Delete.
16378 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
16379 (rs6000_get_some_local_dynamic_name): Delete.
16380 (rs6000_get_some_local_dynamic_name_1): Delete.
16381 (print_operand): Report an error if '%&' is used inappropriately.
16382 * config/s390/s390.c (machine_function): Remove some_ld_name.
16383 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
16384 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
16385 * config/sparc/sparc.c: Include rtl-iter.h.
16386 (machine_function): Remove some_ld_name.
16387 (sparc_print_operand): Report an error if '%&' is used inappropriately.
16388 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
16389
16390 2014-09-03 Richard Henderson <rth@redhat.com>
16391
16392 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
16393 (aarch64_popwb_pair_reg): Remove.
16394 (aarch64_set_frame_expr): Remove.
16395 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
16396 the restore ops performed by the insns generated.
16397 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
16398 insn. Perform the calls_eh_return addition later; do not attempt to
16399 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
16400 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
16401 special markup at all. Load cfun->machine->frame.hard_fp_offset
16402 into a local variable.
16403 (aarch64_frame_pointer_required): Don't check calls_alloca.
16404
16405 2014-09-03 Richard Biener <rguenther@suse.de>
16406
16407 * opts.c (default_options_optimization): Adjust
16408 max-combine-insns to 2 for -Og.
16409
16410 2014-09-03 Martin Jambor <mjambor@suse.cz>
16411
16412 PR ipa/62015
16413 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
16414 pass-trough jump functions correctly.
16415
16416 2014-09-03 Martin Jambor <mjambor@suse.cz>
16417
16418 PR ipa/61986
16419 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
16420 created replacements in ascending order of offsets.
16421 (known_aggs_to_agg_replacement_list): Likewise.
16422
16423 2014-09-03 Martin Liska <mliska@suse.cz>
16424
16425 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
16426 is set to set uninitialized value for vnresult.
16427
16428 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16429
16430 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
16431 for TARGET_MUST_PASS_IN_STACK.
16432
16433 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16434
16435 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
16436 for TARGET_ARG_PARTIAL_BYTES.
16437
16438 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16439
16440 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
16441 instructions for varargs implementation.
16442 (nds32_expand_epilogue): Emit stack adjustment instructions for
16443 varargs implementation.
16444
16445 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16446
16447 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
16448 optimization detection.
16449
16450 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16451
16452 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
16453 arguments.
16454 (nds32_function_arg_advance): Deal with nameless arguments.
16455 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
16456 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
16457 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
16458
16459 2014-09-03 Richard Biener <rguenther@suse.de>
16460
16461 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
16462 (struct bb_bitmap_sets): Remove deferred member.
16463 (BB_DEFERRED): Remove.
16464 (defer_or_phi_translate_block): Remove.
16465 (compute_antic_aux): Remove deferring of blocks, assert
16466 proper iteration order.
16467 (compute_antic): Do not set BB_DEFERRED.
16468 (eliminate): Allocate el_avail of proper size initially.
16469
16470 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16471
16472 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
16473 according to the value of crtl->args.pretend_args_size.
16474
16475 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16476
16477 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
16478 varargs information.
16479
16480 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16481
16482 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
16483 implementation for TARGET_SETUP_INCOMING_VARARGS.
16484 (nds32_strict_argument_naming): Refine comment.
16485 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
16486 Define for future implementation.
16487
16488 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
16489
16490 * config/i386/adxintrin.h (_subborrow_u32): New.
16491 (_addcarry_u32): Ditto.
16492 (_subborrow_u64): Ditto.
16493 (_addcarry_u64): Ditto.
16494 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
16495 IX86_BUILTIN_SBB64.
16496 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
16497 __builtin_ia32_sbb_u64
16498
16499 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16500
16501 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
16502 GPR-specific stuff.
16503 (nds32_function_arg_advance): Likewise.
16504 (nds32_init_cumulative_args): Likewise.
16505 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
16506 (NDS32_FIRST_GPR_REGNUM): Define.
16507 (NDS32_LAST_GPR_REGNUM): Define.
16508 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
16509 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
16510 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
16511 (machine_function): Use GRP-specific stuff.
16512
16513 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16514
16515 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
16516 (nds32_expand_epilogue): Likewise.
16517 (nds32_expand_prologue_v3push): Likewise.
16518 (nds32_expand_epilogue_v3pop): Likewise.
16519
16520 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16521
16522 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
16523 v3push/v3pop for variadic function.
16524 * config/nds32/nds32.md (prologue, epilogue): Likewise.
16525
16526 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16527
16528 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16529 Check rtx for varargs implementation.
16530 (nds32_output_stack_pop): Likewise.
16531 * config/nds32/nds32-protos.h: Have a rtx argument for
16532 nds32_output_stack_push and nds32_output_stack_pop.
16533 * config/nds32/nds32.md: Likewise.
16534
16535 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16536
16537 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
16538 to check if FUNC is an interrupt service routine.
16539 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
16540
16541 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16542
16543 * config/nds32/nds32.h (machine_function): Add some fields for variadic
16544 arguments implementation.
16545
16546 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16547
16548 * config/nds32/nds32-predicates.c
16549 (nds32_valid_stack_push_pop): Rename to ...
16550 (nds32_valid_stack_push_pop_p): ... this.
16551 * config/nds32/nds32-protos.h: Likewise.
16552 * config/nds32/predicates.md: Likewise.
16553
16554 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16555
16556 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
16557 (nds32_emit_stack_v3push): ... this.
16558 (nds32_gen_stack_v3pop): Rename to ...
16559 (nds32_emit_stack_v3pop): ... this and consider CFA restore
16560 information.
16561
16562 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16563
16564 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
16565 (nds32_emit_stack_push_multiple): ... this.
16566 (nds32_gen_stack_pop_multiple): Rename to ...
16567 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
16568 information.
16569
16570 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16571
16572 PR target/61078
16573 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
16574 and add a second splitter to handle the remaining cases.
16575
16576 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
16577
16578 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
16579
16580 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
16581
16582 * cfgexpand.c (label_rtx_for_bb): Change type to
16583 hash_map<basic_block, rtx_code_label *> *.
16584 (expand_gimple_basic_block): Adjust.
16585 (pass_expand::execute): Likewise.
16586
16587 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
16588
16589 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
16590 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
16591 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
16592 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
16593 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
16594 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
16595 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
16596 of rtx.
16597
16598 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
16599
16600 * alloc-pool.c: Include coretypes.h.
16601 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
16602 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
16603 hash_set instead of htab.
16604 * ggc-page.c (in_gc): New variable.
16605 (ggc_free): Do nothing if a collection is taking place.
16606 (ggc_collect): Set in_gc appropriately.
16607 * ggc.h (gt_ggc_mx(const char *)): New function.
16608 (gt_pch_nx(const char *)): Likewise.
16609 (gt_ggc_mx(int)): Likewise.
16610 (gt_pch_nx(int)): Likewise.
16611 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
16612 (hash_map::hash_entry::pch_nx): Likewise.
16613 (hash_map::hash_entry::pch_nx_helper): Likewise.
16614 (hash_map::hash_map): Adjust.
16615 (hash_map::create_ggc): New function.
16616 (gt_ggc_mx): Likewise.
16617 (gt_pch_nx): Likewise.
16618 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
16619 (default_hashset_traits::pch_nx): Likewise.
16620 (hash_set::hash_entry::ggc_mx): Likewise.
16621 (hash_set::hash_entry::pch_nx): Likewise.
16622 (hash_set::hash_entry::pch_nx_helper): Likewise.
16623 (hash_set::hash_set): Adjust.
16624 (hash_set::create_ggc): New function.
16625 (hash_set::elements): Likewise.
16626 (gt_ggc_mx): Likewise.
16627 (gt_pch_nx): Likewise.
16628 * hash-table.h (hash_table::hash_table): Adjust.
16629 (hash_table::m_ggc): New member.
16630 (hash_table::~hash_table): Adjust.
16631 (hash_table::expand): Likewise.
16632 (hash_table::empty): Likewise.
16633 (gt_ggc_mx): New function.
16634 (hashtab_entry_note_pointers): Likewise.
16635 (gt_pch_nx): Likewise.
16636
16637 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16638
16639 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
16640 built-in definition.
16641 (XVCVUXDDP_SCALE): Likewise.
16642 (XVCVDPSXDS_SCALE): Likewise.
16643 (XVCVDPUXDS_SCALE): Likewise.
16644 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16645 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
16646 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
16647 VSX_BUILTIN_XVCVDPUXDS_SCALE.
16648 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
16649 prototype.
16650 * config/rs6000/rs6000.c (real.h): New include.
16651 (rs6000_scale_v2df): New function.
16652 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
16653 (UNSPEC_VSX_XVCVUXDDP): Likewise.
16654 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
16655 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
16656 (vsx_xvcvsxddp_scale): New define_expand.
16657 (vsx_xvcvsxddp): New define_insn.
16658 (vsx_xvcvuxddp_scale): New define_expand.
16659 (vsx_xvcvuxddp): New define_insn.
16660 (vsx_xvcvdpsxds_scale): New define_expand.
16661 (vsx_xvcvdpsxds): New define_insn.
16662 (vsx_xvcvdpuxds_scale): New define_expand.
16663 (vsx_xvcvdpuxds): New define_insn.
16664 * doc/extend.texi (vec_ctf): Add new prototypes.
16665 (vec_cts): Likewise.
16666 (vec_ctu): Likewise.
16667 (vec_splat): Likewise.
16668 (vec_div): Likewise.
16669 (vec_mul): Likewise.
16670
16671 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16672
16673 PR target/62275
16674 * config/arm/neon.md
16675 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
16676 <v_cmp_result>): New pattern.
16677 * config/arm/iterators.md (NEON_VCVT): New int iterator.
16678 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
16679 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
16680 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
16681 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
16682 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
16683
16684 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16685
16686 PR target/62275
16687 * config/arm/iterators.md (FIXUORS): New code iterator.
16688 (VCVT): New int iterator.
16689 (su_optab): New code attribute.
16690 (su): Likewise.
16691 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
16692
16693 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16694
16695 * config/aarch64/predicates.md (aarch64_comparison_operation):
16696 New special predicate.
16697 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
16698 aarch64_comparison_operation instead of matching an operator.
16699 Update operand numbers.
16700 (csinc3<mode>_insn): Likewise.
16701 (*csinv3<mode>_insn): Likewise.
16702 (*csneg3<mode>_insn): Likewise.
16703 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
16704 * config/aarch64/aarch64.c (aarch64_get_condition_code):
16705 Return -1 instead of aborting on invalid condition codes.
16706 (aarch64_print_operand): Update aarch64_get_condition_code callsites
16707 to assert that the returned condition code is valid.
16708 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
16709
16710 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
16711
16712 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
16713 tree.def, and gimple.def
16714
16715 2014-09-02 Jakub Jelinek <jakub@redhat.com>
16716 Balaji V. Iyer <balaji.v.iyer@intel.com>
16717 Igor Zamyatin <igor.zamyatin@intel.com>
16718
16719 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
16720 (__cilkrts_cilk_for_64): Likewise.
16721 * cilk-common.c (declare_cilk_for_builtin): New function.
16722 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
16723 __cilkrts_cilk_for_64 bultins.
16724 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
16725 CILK_TI_F_LOOP_64.
16726 (cilk_for_32_fndecl): New define.
16727 (cilk_for_64_fndecl): Likewise.
16728 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
16729 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
16730 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
16731 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
16732 GF_OMP_FOR_COMBINED_INTO.
16733 * gimplify.c (gimplify_scan_omp_clauses): Added
16734 OMP_CLAUSE__CILK_FOR_COUNT_ case.
16735 (gimplify_adjust_omp_clauses): Ditto.
16736 (gimplify_omp_for): Added CILK_FOR case.
16737 (gimplify_expr): Ditto.
16738 * omp-low.c: Include cilk.h.
16739 (extract_omp_for_data): Set appropriate kind for
16740 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
16741 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
16742 (create_omp_child_function_name): Added second argument to handle
16743 cilk_for case.
16744 (cilk_for_check_loop_diff_type): New function.
16745 (expand_cilk_for_call): Likewise.
16746 (expand_cilk_for): Likewise.
16747 (create_omp_child_function): Set cilk_for_count; handle the cases when
16748 it is true; call create_omp_child_function_name with second argument.
16749 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
16750 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
16751 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
16752 * tree-nested.c (convert_nonlocal_omp_clauses): Added
16753 OMP_CLAUSE__CILK_FOR_COUNT_ case.
16754 (convert_local_omp_clauses): Ditto.
16755 * tree-pretty-print.c (dump_omp_clause): Added
16756 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
16757 (dump_generic_node): Added CILK_FOR case.
16758 * tree.c (omp_clause_num_ops): New element
16759 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
16760 (omp_clause_code_name): New element _Cilk_for_count_.
16761 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
16762 * tree.def: Add tree code for CILK_FOR.
16763
16764 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
16765
16766 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
16767 (ppc403-compare): Add "exts with dot" case.
16768 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
16769 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
16770 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
16771 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
16772 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
16773 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
16774 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
16775 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
16776 cell-cmp-microcoded): Similarly.
16777 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
16778 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
16779 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
16780 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
16781 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
16782 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
16783 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
16784 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
16785 (power6-compare): Add "exts with dot" case.
16786 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
16787 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
16788 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
16789
16790 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
16791 if avoiding Cell microcode.
16792 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
16793 (is_cracked_insn): Ditto.
16794 (insn_must_be_first_in_group): Ditto.
16795 * config/rs6000/rs6000.md (dot): Adjust comment.
16796 (cell_micro): Handle exts+dot.
16797 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
16798 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
16799 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
16800 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
16801 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
16802 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
16803 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
16804
16805 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
16806
16807 * config/rs6000/rs6000.md (QHSI): Delete.
16808 (EXTQI, EXTHI, EXTSI): New mode iterators.
16809 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
16810 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
16811 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
16812 9 anonymous instructions, and 8 splitters): Delete.
16813 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
16814 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
16815 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
16816 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
16817 *zero_extendsi<mode>2_dot2): New.
16818
16819 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
16820
16821 * config/rs6000/rs6000.md (any_extend): New code iterator.
16822 (u, su): New code attributes.
16823 (dmode, DMODE): New mode attributes.
16824 (<su>mul<mode>3_highpart): New.
16825 (*<su>mul<mode>3_highpart): New.
16826 (<su>mulsi3_highpart_le): New.
16827 (<su>muldi3_highpart_le): New.
16828 (<su>mulsi3_highpart_64): New.
16829 (<u>mul<mode><dmode>3): New.
16830 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
16831 splitters): Delete.
16832 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
16833 splitters): Delete.
16834
16835 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
16836
16837 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
16838 *mulsi3_internal2, and two splitters): Delete.
16839 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
16840 Delete.
16841 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
16842
16843 2014-09-02 Richard Biener <rguenther@suse.de>
16844
16845 PR tree-optimization/62695
16846 * tree-ssa-structalias.c (find_func_clobbers): Add missing
16847 vector truncate.
16848
16849 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
16850
16851 PR target/62312
16852 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
16853
16854 2014-09-01 Andi Kleen <ak@linux.intel.com>
16855
16856 * file-find.c (add_prefix_begin): Add.
16857 (do_add_prefix): Rename from add_prefix with first argument.
16858 (add_prefix): Add new wrapper.
16859 * file-find.h (add_prefix_begin): Add.
16860 * gcc-ar.c (main): Support -B option.
16861
16862 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
16863
16864 * genemit.c: Include dumpfile.h.
16865 (gen_split): Print name of splitter function to dump file.
16866
16867 2014-09-01 Richard Biener <rguenther@suse.de>
16868
16869 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
16870 Use stack auto_vecs for constraint expressions.
16871 (find_func_aliases_for_call): Likewise.
16872 (find_func_aliases): Likewise.
16873 (find_func_clobbers): Likewise.
16874
16875 2014-09-01 Richard Biener <rguenther@suse.de>
16876
16877 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
16878 operands vector in most cases. Remove redundant code.
16879
16880 2014-09-01 Olivier Hainque <hainque@adacore.com>
16881
16882 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
16883 $WIND_BASE instead of designating a harcoded arbitrary home dir.
16884 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
16885
16886 2014-09-01 Richard Biener <rguenther@suse.de>
16887
16888 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
16889 copy_reference_ops_from_call, vn_nary_op_compute_hash,
16890 vn_reference_compute_hash, vn_reference_insert): Remove.
16891 (vn_reference_lookup_call): New function.
16892 * tree-ssa-sccvn.c (vn_reference_compute_hash,
16893 copy_reference_ops_from_ref, copy_reference_ops_from_call,
16894 vn_reference_insert, vn_nary_op_compute_hash): Make static.
16895 (create_reference_ops_from_call): Remove.
16896 (vn_reference_lookup_3): Properly update shared_lookup_references.
16897 (vn_reference_lookup_pieces): Assert that we updated
16898 shared_lookup_references properly.
16899 (vn_reference_lookup): Likewise.
16900 (vn_reference_lookup_call): New function.
16901 (visit_reference_op_call): Use it. Avoid re-building the
16902 reference ops.
16903 (visit_reference_op_load): Remove redundant lookup.
16904 (visit_reference_op_store): Perform special tail-merging work
16905 only when possibly doing tail-merging.
16906 (visit_use): Likewise.
16907 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
16908
16909 2014-09-01 Jakub Jelinek <jakub@redhat.com>
16910
16911 PR target/62025
16912 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
16913 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
16914 (find_inc): Revert 2014-08-13 change.
16915
16916 2014-09-01 Marek Polacek <polacek@redhat.com>
16917
16918 PR middle-end/61903
16919 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
16920 Change the type of V to unsigned HOST_WIDE_INT.
16921
16922 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
16923
16924 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
16925 the size of byte markers.
16926 (do_shift_rotate): Fix confusion between host, target and marker byte
16927 size.
16928 (verify_symbolic_number_p): Likewise.
16929 (find_bswap_or_nop_1): Likewise.
16930 (find_bswap_or_nop): Likewise.
16931
16932 2014-09-01 Olivier Hainque <hainque@adacore.com>
16933
16934 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
16935 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
16936
16937 2014-09-01 Jakub Jelinek <jakub@redhat.com>
16938
16939 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
16940 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
16941 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
16942
16943 2014-09-01 Yury Gribov <y.gribov@samsung.com>
16944
16945 PR sanitizer/61897
16946 PR sanitizer/62140
16947 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
16948 (build_check_stmt): Likewise.
16949 (instrument_strlen_call): Likewise.
16950 (asan_expand_check_ifn): Likewise and fix types.
16951 (maybe_cast_to_ptrmode): New function.
16952
16953 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16954
16955 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
16956
16957 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
16958
16959 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
16960
16961 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
16962
16963 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
16964 prefix to function labels when generating fast indirect calls.
16965
16966 2014-08-30 David Malcolm <dmalcolm@redhat.com>
16967
16968 PR bootstrap/62304
16969
16970 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
16971 param back from rtx_insn * to rtx. Rename param from "label" to
16972 "label_or_return", reintroducing "label" as an rtx_insn * after
16973 we've ensured it's not a RETURN.
16974 (first_active_target_insn): Likewise for return type and param;
16975 add a checked cast to rtx_insn * once we've ensured "insn" is not
16976 a RETURN.
16977 (steal_delay_list_from_target): Convert param "pnew_thread" back
16978 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
16979 with JUMP_LABEL.
16980 (own_thread_p): Convert param "thread" back from an rtx_insn * to
16981 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
16982 cast once we've established we're not dealing with a RETURN,
16983 renaming subsequent uses of "thread" to "thread_insn".
16984 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
16985 to JUMP_LABEL.
16986 (follow_jumps): Convert return type and param "label" from
16987 rtx_insn * back to rtx. Move initialization of "value" to after
16988 the handling for ANY_RETURN_P, adding a checked cast there to
16989 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
16990 rename to "this_label_or_return", reintroducing "this_label" as
16991 an rtx_insn * once we've handled the case where it could be an
16992 ANY_RETURN_P.
16993 (fill_slots_from_thread): Rename param "thread" to
16994 "thread_or_return", converting from an rtx_insn * back to an rtx.
16995 Reintroduce name "thread" as an rtx_insn * local with a checked
16996 cast once we've handled the case of it being an ANY_RETURN_P.
16997 Convert local "new_thread" from an rtx_insn * back to an rtx.
16998 Add a checked cast when assigning to "trial" from "new_thread".
16999 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
17000 checked cast to rtx_insn * from "new_thread" when invoking
17001 get_label_before.
17002 (fill_eager_delay_slots): Convert locals "target_label",
17003 "insn_at_target" from rtx_insn * back to rtx.
17004 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
17005 (relax_delay_slots): Convert locals "trial", "target_label" from
17006 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
17007 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
17008 invoking update_block.
17009 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
17010 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
17011
17012 * resource.h (mark_target_live_regs): Undo erroneous conversion
17013 of second param of r214693, converting it back from rtx_insn * to
17014 rtx, since it could be a RETURN.
17015
17016 * resource.c (find_dead_or_set_registers): Similarly, convert
17017 param "jump_target" back from an rtx_insn ** to an rtx *, as we
17018 could be writing back a RETURN. Rename local rtx_insn * "next" to
17019 "next_insn", and introduce "lab_or_return" as a local rtx,
17020 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
17021 (mark_target_live_regs): Undo erroneous conversion
17022 of second param of r214693, converting it back from rtx_insn * to
17023 rtx, since it could be a RETURN. Rename it from "target" to
17024 "target_maybe_return", reintroducing the name "target" as a local
17025 rtx_insn * with a checked cast, after we've handled the case of
17026 ANY_RETURN_P.
17027
17028 2014-08-29 DJ Delorie <dj@redhat.com>
17029
17030 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
17031 pointer size up to a power of two.
17032 * defaults.h (DWARF2_ADDR_SIZE): Round up.
17033 (POINTER_SIZE_UNITS): New, rounded up value.
17034 * dwarf2asm.c (size_of_encoded_value): Use it.
17035 (dw2_output_indirect_constant_1): Likewise.
17036 * expmed.c (init_expmed_one_conv): We now know the sizes of
17037 partial int modes.
17038 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
17039 * optabs.c (expand_float): Use precision, not size.
17040 (expand_fix): Likewise.
17041 * simplify-rtx (simplify_unary_operation_1): Likewise.
17042 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17043 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
17044 (default_assemble_integer) Likewise.
17045 (dump_tm_clone_pairs): Likewise.
17046 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
17047 * var-tracking.c (adjust_mems): Allow partial-int modes also.
17048 (prepare_call_arguments): Likewise.
17049 * stor-layout.c (finalize_type_size): Preserve precision.
17050 (layout_type): Use precision, not size.
17051
17052 * expr.c (convert_move): If the target has an explicit converter,
17053 use it.
17054
17055 2014-08-29 David Malcolm <dmalcolm@redhat.com>
17056
17057 * gdbinit.in: Skip various inline functions in rtl.h when
17058 stepping.
17059
17060 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
17061
17062 PR bootstrap/62301
17063 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
17064
17065 2014-08-29 Richard Biener <rguenther@suse.de>
17066
17067 PR tree-optimization/62291
17068 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
17069 exactly the vector size needed and use quick_push.
17070 (phi_translate_1): Adjust comment.
17071 (valid_in_sets): Remove block argument and remove pointless
17072 checking of NAMEs.
17073 (dependent_clean): Adjust for removal of block argument.
17074 (clean): Likewise.
17075 (compute_antic_aux): Likewise.
17076 (compute_partial_antic_aux): Likewise.
17077
17078 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
17079 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17080 Anna Tikhonova <anna.tikhonova@intel.com>
17081 Ilya Tocar <ilya.tocar@intel.com>
17082 Andrey Turetskiy <andrey.turetskiy@intel.com>
17083 Ilya Verbin <ilya.verbin@intel.com>
17084 Kirill Yukhin <kirill.yukhin@intel.com>
17085 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17086
17087 * config/i386/sse.md
17088 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
17089 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
17090 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
17091 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
17092
17093 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
17094 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17095 Anna Tikhonova <anna.tikhonova@intel.com>
17096 Ilya Tocar <ilya.tocar@intel.com>
17097 Andrey Turetskiy <andrey.turetskiy@intel.com>
17098 Ilya Verbin <ilya.verbin@intel.com>
17099 Kirill Yukhin <kirill.yukhin@intel.com>
17100 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17101
17102 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
17103 * config/i386/sse.md
17104 (define_mode_iterator VI4_128_8_256): New.
17105 (define_mode_iterator VI2_128_4_256): Ditto.
17106 (define_mode_iterator PMOV_DST_MODE): Rename into
17107 (define_mode_iterator PMOV_DST_MODE_1): this.
17108 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
17109 Use PMOV_DST_MODE_1 mode iterator.
17110 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
17111 Ditto.
17112 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
17113 Ditto.
17114 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
17115 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
17116 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
17117 (define_mode_iterator PMOV_DST_MODE_2): New.
17118 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
17119 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
17120 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
17121 Ditto.
17122 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
17123 (define_mode_attr pmov_dst_3): Ditto.
17124 (define_mode_attr pmov_dst_zeroed_3): Ditto.
17125 (define_mode_attr pmov_suff_3): Ditto.
17126 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
17127 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
17128 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
17129 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
17130 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
17131 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
17132 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
17133 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
17134 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
17135 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
17136 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
17137 (define_mode_attr pmov_dst_4): Ditto.
17138 (define_mode_attr pmov_dst_zeroed_4): Ditto.
17139 (define_mode_attr pmov_suff_4): Ditto.
17140 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
17141 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
17142 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
17143 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
17144 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
17145 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
17146 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
17147 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
17148 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
17149 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
17150 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
17151
17152 2014-08-29 Richard Biener <rguenther@suse.de>
17153
17154 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
17155 NON_LVALUE_EXPR in gimple.
17156
17157 2014-08-29 Richard Biener <rguenther@suse.de>
17158
17159 PR middle-end/62292
17160 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
17161 from previous refactoring.
17162 (gimple_fold_builtin_strncpy): Likewise.
17163
17164 2014-08-29 David Malcolm <dmalcolm@redhat.com>
17165
17166 PR bootstrap/62300
17167 * function.c (assign_parm_setup_reg): Remove erroneous checked
17168 cast to rtx_insn * on result of gen_extend_insn in favor of
17169 introducing a new local rtx "pat".
17170
17171 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17172
17173 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
17174 to silence warning.
17175 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
17176
17177 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17178
17179 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
17180 (next_insn): Likewise.
17181 * emit-rtl.c (next_insn): Likewise.
17182 (previous_insn): Likewise.
17183 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
17184 "insn" and "next" from rtx to rtx_insn *.
17185 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
17186 "insn", "insn1", "vliw_start", "prologue_end_note",
17187 "last_insn_in_packet".
17188
17189 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17190
17191 * shrink-wrap.h (active_insn_between): Strengthen both params from
17192 rtx to rtx_insn *.
17193 * function.c (active_insn_between): Likewise.
17194
17195 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17196
17197 * genattr.c (main): When writing out insn-attr.h, strengthen param
17198 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
17199 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
17200 writing out the definition of dfa_clear_single_insn_cache to the
17201 generated insn-automata.c
17202
17203 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17204
17205 * resource.h (clear_hashed_info_for_insn): Strengthen param from
17206 rtx to rtx_insn *.
17207 (incr_ticks_for_insn): Likewise.
17208 (init_resource_info): Likewise.
17209
17210 * resource.c (init_resource_info): Likewise.
17211 (clear_hashed_info_for_insn): Likewise.
17212 (incr_ticks_for_insn): Likewise.
17213
17214 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
17215 rtx to rtx_insn *.
17216 (steal_delay_list_from_target): Use methods of "seq".
17217 (try_merge_delay_insns): Use methods of "merged_insns".
17218 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
17219 (reorg_redirect_jump): Likewise for param "jump".
17220
17221 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17222
17223 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
17224 rtx to rtx_insn *.
17225 * config/s390/s390.c (s390_split_branches): Eliminate top-level
17226 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
17227 "set_insn".
17228 (s390_mainpool_finish): In three places, split out a local rtx
17229 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
17230 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
17231 and split another local rtx "insn" out into rtx "pat" and
17232 rtx_insn * "insn".
17233 * config/sh/sh.c (output_branchy_insn): Rather than working
17234 directly on operands[9], introduce local rtx_code_label *
17235 variables named "lab" in two places, working on them, and then
17236 assigning them to operands[9], so that the intervening operations
17237 are known by the type system to be on insns.
17238
17239 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17240
17241 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
17242 const rtx_insn *.
17243
17244 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
17245 in invocation of INSN_HAS_LOCATION.
17246
17247 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17248
17249 * config/rs6000/altivec.h (vec_xl): New #define.
17250 (vec_xst): Likewise.
17251 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
17252 (XXSPLTD_V2DI): Likewise.
17253 (DIV_V2DI): Likewise.
17254 (UDIV_V2DI): Likewise.
17255 (MUL_V2DI): Likewise.
17256 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17257 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
17258 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
17259 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
17260 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
17261 (UNSPEC_VSX_DIVSD): Likewise.
17262 (UNSPEC_VSX_DIVUD): Likewise.
17263 (UNSPEC_VSX_MULSD): Likewise.
17264 (vsx_mul_v2di): New insn-and-split.
17265 (vsx_div_v2di): Likewise.
17266 (vsx_udiv_v2di): Likewise.
17267 (vsx_xxspltd_<mode>): New insn.
17268
17269 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17270
17271 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
17272 NEXT_INSN.
17273 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
17274 (NEXT_INSN): Likewise.
17275 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
17276 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
17277 const rtx_insn *.
17278 (no_labels_between_p): Likewise for both params.
17279
17280 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
17281 cast when using NEXT_INSN on operands[2].
17282 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
17283 "insn" from rtx to rtx_insn *, adding a checked cast.
17284 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
17285 rtx_insn *.
17286 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
17287 for third param.
17288 (arc_text_label): Likewise for param "insn".
17289 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
17290 "insn".
17291 (arc_ccfsm_record_condition): Likewise for param "jump".
17292 (arc_text_label): Likewise for local "label".
17293 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
17294 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
17295 a method for typesafety. Add a checked cast.
17296 * config/arc/constraints.md (Clb): Add a checked cast when getting
17297 the CODE_LABEL from a LABEL_REF.
17298 * config/arm/arm.c (require_pic_register): Strengthen locals
17299 "seq", "insn" from rtx to rtx_insn *.
17300 (create_fix_barrier): Likewise for locals "selected", "next".
17301 (thumb1_reorg): Likewise for locals "prev", "insn".
17302 (arm_expand_prologue): Likewise for local "last".
17303 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
17304 operands[0].
17305 (thumb2_output_casesi): Likewise for operands[2].
17306 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
17307 strengthen local "insn" from rtx to rtx_insn *.
17308 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
17309 type and param "insn".
17310 (find_prev_insn_start): Likewise.
17311 (hwloop_optimize): Likewise for locals "insn", "last_insn",
17312 "prev".
17313 (gen_one_bundle): Likewise for loal "t".
17314 (find_load): Likewise for param "insn".
17315 (workaround_speculation): Likewise for locals "insn", "next",
17316 "target", "next_tgt".
17317 * config/c6x/c6x.c (assign_reservations): Likewise for both params
17318 and for locals "insn", "within", "last".
17319 (count_unit_reqs): Likewise for params "head", "tail" and local
17320 "insn".
17321 (try_rename_operands): Likewise for params "head", "tail".
17322 (reshuffle_units): Likewise for locals "head", "tail", "insn".
17323 (struct c6x_sched_context): Likewise for fields
17324 "last_scheduled_insn", "last_scheduled_iter0".
17325 (init_sched_state): Replace NULL_RTX with NULL.
17326 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
17327 to rtx_insn *.
17328 (undo_split_delayed_nonbranch): Likewise for param and for local
17329 "prev".
17330 (conditionalize_after_sched): Likewise for local "insn".
17331 (bb_earliest_end_cycle): Likewise.
17332 (filter_insns_above): Likewise for locals "insn", "next".
17333 (hwloop_optimize): Remove redundant checked cast.
17334 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
17335 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
17336 NULL_RTX with NULL.
17337 (cris_simple_epilogue): Likewise.
17338 (cris_expand_prologue): Likewise.
17339 (cris_expand_epilogue): Likewise.
17340 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
17341 local "insn" from rtx to rtx_insn *.
17342 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
17343 (struct frv_packet_group): Likewise for the elements within array
17344 fields "insns", "sorted", and for field "nop".
17345 (frv_packet): Likewise for the elements within array field
17346 "insns".
17347 (frv_add_insn_to_packet): Likewise for param "insn".
17348 (frv_insert_nop_in_packet): Likewise for param "insn" and local
17349 "last".
17350 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
17351 (frv_sort_insn_group_1): Likewise for local "insn".
17352 (frv_optimize_membar_local): Likewise.
17353 (frv_align_label): Likewise for locals "x", "last", "barrier",
17354 "label".
17355 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
17356 local.
17357 (ia64_sched_init): Likewise for local "insn".
17358 (scheduled_good_insn): Likewise for param "last".
17359 (struct _ia64_sched_context): Likewise for field
17360 "last_scheduled_insn".
17361 (ia64_init_sched_context): Replace NULL_RTX with NULL.
17362 (struct bundle_state): Likewise for field "insn".
17363 (issue_nops_and_insn): Likewise for param "insn".
17364 (get_next_important_insn): Likewise for return type and both
17365 params.
17366 (ia64_add_bundle_selector_before): Likewise for param "insn".
17367 (bundling): Likewise for params "prev_head_insn", "tail" and
17368 locals "insn", "next_insn", "b". Eliminate top-level local rtx
17369 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
17370 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
17371 Strengthen final param from rtx to rtx_insn *.
17372 (iq2000_move_1word): Likewise for second param.
17373 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
17374 param "cur_insn" and local "next_insn".
17375 (iq2000_move_1word): Likewise for param "insn".
17376 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
17377 casts when using NEXT_INSN on operands[1].
17378 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
17379 "insn" from rtx to rtx_insn *.
17380 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
17381 "x", introducing local rtx_insn * "insn" for when working with the
17382 CODE_LABEL of the LABEL_REF.
17383 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
17384 rtx_insn *.
17385 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
17386 param.
17387 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
17388 type.
17389 (conditionalize_block): Likewise for return type and param.
17390 (mcore_is_dead): Likewise for param "first" and local "insn".
17391 (emit_new_cond_insn): Likewise for return type.
17392 (conditionalize_block): Likewise for return type, param, and
17393 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
17394 "newinsn".
17395 (conditionalize_optimization): Likewise for local "insn".
17396 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
17397 using NEXT_INSN.
17398 * config/microblaze/microblaze.md: Add checked casts when using
17399 NEXT_INSN.
17400 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
17401 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
17402 and rtx_insn * "insn".
17403 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
17404 checked cast when using NEXT_INSN on operands[2].
17405 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
17406 local "insn" from rtx to rtx_insn *.
17407 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
17408 Likewise.
17409 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
17410 Add a checked cast when using NEXT_INSN on operands[1].
17411 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
17412 rtx to rtx_insn *.
17413 (pa_output_cbranch): Likewise for final param.
17414 (pa_output_lbranch): Likewise for second param.
17415 (pa_output_bb): Likewise for third param.
17416 (pa_output_bvb): Likewise.
17417 (pa_output_dbra): Likewise for second param.
17418 (pa_output_movb): Likewise.
17419 (pa_output_parallel_movb): Likewise.
17420 (pa_output_parallel_addb): Likewise.
17421 (pa_output_millicode_call): Likewise for first param.
17422 (pa_output_mul_insn): Likewise for second param.
17423 (pa_output_div_insn): Likewise for third param.
17424 (pa_output_mod_insn): Likewise for second param.
17425 (pa_jump_in_call_delay): Likewise for param.
17426 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
17427 (pa_output_div_insn): Likewise.
17428 (pa_output_mod_insn): Likewise.
17429 (pa_output_cbranch): Likewise.
17430 (pa_output_lbranch): Likewise.
17431 (pa_output_bb): Likewise.
17432 (pa_output_bvb): Likewise.
17433 (pa_output_dbra): Likewise.
17434 (pa_output_movb): Likewise.
17435 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
17436 to simplify and for typesafety.
17437 (pa_output_call): Use method of rtx_sequence *.
17438 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
17439 (pa_jump_in_call_delay): Likewise.
17440 (pa_output_parallel_movb): Likewise.
17441 (pa_output_parallel_addb): Likewise.
17442 (pa_following_call): Likewise.
17443 (pa_combine_instructions): Likewise for locals "anchor",
17444 "floater".
17445 (pa_can_combine_p): Likewise for params "anchor", "floater" and
17446 locals "start", "end".
17447 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
17448 param "insn" and local "local_insn".
17449 (picochip_final_prescan_insn): Likewise for local "local_insn".
17450 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
17451 local "insn".
17452 (uses_TOC): Likewise.
17453 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
17454 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
17455 splitting out to more tightly-scoped locals, 3 as rtx and one as
17456 rtx_insn *.
17457 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
17458 to rtx_insn *.
17459 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
17460 where needed.
17461 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
17462 to rtx_insn *.
17463 (fixup_addr_diff_vecs): Likewise.
17464 (reg_unused_after): Likewise for param 2.
17465 (sh_can_redirect_branch): Likewise for both params.
17466 (check_use_sfunc_addr): Likewise for param 1.
17467 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
17468 (find_barrier): Likewise for local "last_got".
17469 (gen_block_redirect): Likewise for return type, param "jump" and
17470 locals "prev", "scan", "next", "insn".
17471 (struct far_branch): Likewise for fields "near_label",
17472 "insert_place", "far_label".
17473 (gen_far_branch): Likewise for local "jump".
17474 (fixup_addr_diff_vecs): Likewise for param "first" and locals
17475 "insn", "prev".
17476 (barrier_align): Likewise for param and for locals "prev", "x".
17477 Introduce local rtx_sequence * "prev_seq" and use insn method for
17478 typesafety and clarity.
17479 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
17480 (get_dest_uid): Likewise for local "dest".
17481 (split_branches): Likewise for locals "next", "beyond", "label",
17482 "block", "far_label". Add checked casts when assigning to
17483 bp->far_label and "far_label".
17484 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
17485 (sequence_insn_p): Likewise.
17486 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
17487 more loop-scoped rtx "insn" when walking LABEL_REFS.
17488 (sh_can_redirect_branch): Strengthen both params from rtx to
17489 rtx_insn *.
17490 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
17491 new local rtx_sequence * "seq" via a dyn_cast, and use a method
17492 for clarity and typesafety.
17493 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
17494 "insn" from rtx to rtx_insn *.
17495 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
17496 when using NEXT_INSN on the CODE_LABEL in operands[2].
17497 (define_insn "casesi_worker_2"): Likewise.
17498 (define_insn "casesi_shift_media"): Likewise.
17499 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
17500 operands[3].
17501 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
17502 Strengthen field "insn" from rtx to rtx_insn *.
17503 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
17504 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
17505 param "start_insn" and local "start_insn".
17506 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
17507 field "insn".
17508 (find_set_of_reg_bb): Likewise for param "insn".
17509 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
17510 (trace_reg_uses): Likewise for param "start_insn".
17511 (sh_treg_combine::cbranch_trace): Likewise for field
17512 "cbranch_insn".
17513 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
17514 param "insn".
17515 (sh_treg_combine::record_set_of_reg): Likewise for param
17516 "start_insn" and local "i".
17517 (sh_treg_combine::can_remove_cstore): Likewise for local
17518 "prev_insn".
17519 (sh_treg_combine::try_optimize_cbranch): Likewise for param
17520 "insn".
17521 (sh_treg_combine::execute): Likewise for local "i".
17522 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
17523 param.
17524 (sparc_check_64): Likewise for second param.
17525 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
17526 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
17527 dyn_cast, using its insn method for typesafety and clarity.
17528 (empty_delay_slot): Strengthen param "insn" from rtx to
17529 rtx_insn *.
17530 (set_extends): Likewise.
17531 (sparc_check_64): Likewise.
17532 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
17533 for locals "seq", "last_insn".
17534 (combine_bnp): Likewise for param "insn".
17535 (xstormy16_reorg): Likewise for local "insn".
17536 * config/v850/v850.c (substitute_ep_register): Likewise for params
17537 "first_insn", "last_insn" and local "insn".
17538 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
17539 elements of "regs" array, and local "insn".
17540 * except.c (emit_note_eh_region_end): Likewise for param "insn".
17541 * final.c (final_sequence): Strengthen this global from rtx to
17542 rtx_sequence *.
17543 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
17544 rtx_insn *.
17545 (final_scan_insn): Update assignment to "final_sequence" to be
17546 from "seq", the cast version of "body", for type-safety.
17547 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
17548 "insns" from rtx to rtx_insn *.
17549 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
17550 * genattr.c (main): When writing out generated insn-attr.h,
17551 strengthen params 1 and 3 of eligible_for_delay,
17552 eligible_for_annul_true, eligible_for_annul_false from rtx to
17553 rtx_insn *.
17554 * genattrtab.c (write_eligible_delay): Likewise when writing out
17555 generated insn-attrtab.c; also local "insn" the generated
17556 functions.
17557 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
17558 to rtx_insn *.
17559 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
17560 "start_label" from rtx to rtx_insn *.
17561 * ira.c (decrease_live_ranges_number): Likewise for local "p".
17562 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
17563 "insns" and local "insn".
17564 (validate_equiv_mem): Likewise for param "start" and local "insn".
17565 (memref_used_between_p): Likewise for params "start", "end" and
17566 local "insn".
17567 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
17568 final param.
17569 * loop-doloop.c (doloop_optimize): Within region guarded by
17570 INSN_P (doloop_pat), introduce a new local rtx_insn *
17571 "doloop_insn" via a checked cast, and use it for typesafety,
17572 eventually writing the value back into doloop_pat.
17573 * output.h (final_sequence): Strengthen this global from rtx to
17574 rtx_sequence *.
17575 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
17576 reintroducing "insn" as an rtx_insn * via a checked cast.
17577 Strengthen param "attempt" and local "new_insn"from rtx to
17578 rtx_insn *.
17579 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
17580 to rtx_insn *.
17581 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
17582 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
17583 "p" in favor of more tightly-scoped replacements, sometimes rtx
17584 and sometimes rtx_insn *, as appropriate.
17585 (delete_output_reload): Eliminate top-level rtx "i1", splitting
17586 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
17587 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
17588 local "trial" from rtx to rtx_insn *.
17589 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
17590 rtx to rtx_insn *. Strenghten local "pat" from rtx to
17591 rtx_sequence * and use methods for clarity and typesafety.
17592 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
17593 rtx to rtx_insn *. Strenghten local "li" from rtx to
17594 rtx_insn_list * and use its methods for clarity and typesafety.
17595 (steal_delay_list_from_target): Strengthen param "insn" from rtx
17596 to rtx_insn *.
17597 (steal_delay_list_from_fallthrough): Likewise.
17598 (try_merge_delay_insns): Likewise for param "thread" and locals
17599 "trial", "next_trial", "delay_insn".
17600 (redundant_insn): Likewise for param "target" and local "trial".
17601 (own_thread_p): Likewise for param "thread" and locals
17602 "active_insn", "insn".
17603 (get_label_before): Likewise for param "insn".
17604 (fill_simple_delay_slots): Likewise for local "new_label"; use
17605 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
17606 (label_before_next_insn): Strengthen return type and local "insn"
17607 from rtx to rtx_insn *.
17608 (relax_delay_slots): Likewise for locals "other", "tmp".
17609 (make_return_insns): Likewise for param "first" and locals "insn",
17610 "jump_insn", "prev". Move declaration of "pat" to its assignment
17611 and strengthen from rtx to rtx_sequence *. Use its methods for
17612 clarity and typesafety.
17613 * rtlanal.c (no_labels_between_p): Strengthen params from
17614 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
17615 rtx_insn *.
17616 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
17617 from const_rtx to const rtx_insn *.
17618 (reg_set_between_p): Rename param "from_insn" to
17619 "uncast_from_insn", and reintroduce "from_insn" as a
17620 const rtx_insn * via a checked cast.
17621 (modified_between_p): Likewise for param "start" as "uncast_start".
17622 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
17623 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
17624 "tmp", head" from rtx to rtx_insn *.
17625 (recompute_rev_top_order): Likewise for local "insn".
17626 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
17627 * store-motion.c (build_store_vectors): Likewise for local "insn".
17628 Strengthen local "st" from rtx to rtx_insn_list * and use methods
17629 for clarity and typesafety.
17630 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
17631 rtx to rtx_insn *.
17632 (computation_cost): Likewise for local "seq".
17633 (get_address_cost): Likewise.
17634
17635 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17636
17637 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
17638 const rtx_insn *.
17639 (label_is_jump_target_p): Likewise for second param.
17640
17641 * rtlanal.c (tablejump_p): Likewise for param "insn".
17642 (label_is_jump_target_p): Likewise for param "jump_insn".
17643
17644 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17645
17646 * rtl.h (find_first_parameter_load): Strengthen return type and
17647 both params from rtx to rtx_insn *.
17648 * rtlanal.c (find_first_parameter_load): Strengthen return type,
17649 both params and locals "before", "first_set" from rtx to
17650 rtx_insn *. Remove now-redundant cast.
17651 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
17652
17653 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17654
17655 * rtl.h (find_last_value): Delete.
17656 * rtlanal.c (find_last_value): Delete.
17657
17658 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17659
17660 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
17661 from rtx to rtx_insn *.
17662 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
17663 rtx "note" with new local rtx_insn * "new_head" when calculating
17664 head insn of new basic block.
17665 * combine.c (combine_split_insns): Strengthen return type and local
17666 "ret" from rtx to rtx_insn *.
17667 (likely_spilled_retval_p): Likewise for locals "use" and "p".
17668 (try_combine): Eliminate local "m_split", splitting into new
17669 locals "m_split_insn" and "m_split_pat".
17670 (find_split_point): Strengthen local "seq" from rtx into
17671 rtx_insn *.
17672 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
17673 locals "label", "branch".
17674 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
17675 for local "insn".
17676 (define_expand "umulsi3_highpart"): Likewise for local "insn".
17677 * dse.c (note_add_store_info): Likewise for fields "first",
17678 "current".
17679 (note_add_store): Likewise for local "insn".
17680 (emit_inc_dec_insn_before): Likewise for locals "insn",
17681 "new_insn", "cur".
17682 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
17683 (replace_read): Likewise for locals "insns", "this_insn".
17684 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
17685 (notice_eh_throw): Likewise for param "insn".
17686 (before_next_cfi_note): Likewise for return type, param, and local
17687 "prev".
17688 (connect_traces): Likewise for local "note".
17689 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
17690 (verify_rtl_sharing): Likewise.
17691 (unshare_all_rtl_in_chain): Likewise for param "insn".
17692 (get_first_nonnote_insn): Likewise for local "insn".
17693 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
17694 "seq" and use its methods to clarify things.
17695 (next_insn): Strengthen return type from rtx to rtx_insn *.
17696 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
17697 local rtx_insn * using a checked cast, dropping a checked cast
17698 made redundant by this change. Use a cast to and method of
17699 rtx_sequence to clarify the code.
17700 (previous_insn): Rename param "insn" to "uncast_insn" and
17701 reintroduce "insn" as a local rtx_insn * using a checked cast,
17702 dropping a checked cast made redundant by this change. Use a cast
17703 to and method of rtx_sequence to clarify the code.
17704 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
17705 reintroduce "insn" as a local rtx_insn * using a checked cast,
17706 dropping a checked cast made redundant by this change.
17707 (next_nonnote_insn_bb): Likewise.
17708 (prev_nonnote_insn): Likewise.
17709 (prev_nonnote_insn_bb): Likewise.
17710 (next_nondebug_insn): Likewise.
17711 (prev_nondebug_insn): Likewise.
17712 (next_nonnote_nondebug_insn): Likewise.
17713 (prev_nonnote_nondebug_insn): Likewise.
17714 (next_real_insn): Likewise.
17715 (prev_real_insn): Likewise.
17716 (next_active_insn): Likewise.
17717 (prev_active_insn): Likewise.
17718 (next_cc0_user): Likewise. Use rtx_sequence and a method for
17719 clarity.
17720 (prev_cc0_setter): Likewise.
17721 (try_split): Rename param "trial" to "uncast_trial" and
17722 reintroduce "insn" as a local rtx_insn * using a checked cast,
17723 dropping checked casts made redundant by this change.
17724 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
17725 rtx to rtx_insn *.
17726 (remove_insn): Rename param "insn" to "uncast_insn" and
17727 reintroduce "insn" as a local rtx_insn * using a checked cast.
17728 (emit_pattern_after_setloc): Likewise for param "after", as
17729 "uncast_after".
17730 (emit_pattern_after): Likewise. Strengthen local "prev" from
17731 rtx to rtx_insn *.
17732 (emit_pattern_before_setloc): Rename param "before" to
17733 "uncast_before" and reintroduce "before" as a local rtx_insn *
17734 using a checked cast. Strengthen locals "first", "last" from
17735 rtx to rtx_insn *.
17736 (emit_pattern_before): Likewise rename/cast param "before" to
17737 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
17738 * except.c (copy_reg_eh_region_note_forward): Strengthen param
17739 "first" and local "insn" from rtx to rtx_insn *.
17740 (copy_reg_eh_region_note_backward): Likewise for param "last"
17741 and local "insn".
17742 * expr.c (fixup_args_size_notes): Rename param "last" to
17743 "uncast_last" and reintroduce "last" as a local rtx_insn *
17744 using a checked cast. Strengthen local "insn" from rtx to
17745 rtx_insn *.
17746 * function.c (set_insn_locations): Strengthen param "insn" from
17747 rtx to rtx_insn *.
17748 (record_insns): Likewise for param "insns" and local "tmp".
17749 (active_insn_between): Rename param "tail" to
17750 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
17751 using a checked cast.
17752 (thread_prologue_and_epilogue_insns): Split out top-level local
17753 rtx "seq" into three different rtx_insn * locals. Strengthen
17754 local "prologue_seq" from rtx to rtx_insn *.
17755 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
17756 from rtx to rtx_insn *.
17757 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
17758 (priority): Likewise for locals "prev_first", "twin".
17759 (setup_insn_max_reg_pressure): Likewise for param "after".
17760 (sched_setup_bb_reg_pressure_info): Likewise.
17761 (no_real_insns_p): Strengthen params from const_rtx to
17762 const rtx_insn *.
17763 (schedule_block): Strengthen local "next_tail" from rtx to
17764 rtx_insn *.
17765 * ifcvt.c (find_active_insn_before): Strengthen return type and
17766 param "insn" from rtx to rtx_insn *.
17767 (find_active_insn_after): Likewise.
17768 (cond_exec_process_insns): Likewise for param "start" and local "insn".
17769 (cond_exec_process_if_block): Likewise for locals "then_start",
17770 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
17771 (noce_process_if_block): Likewise for local "jump".
17772 (merge_if_block): Likewise for two locals named "end".
17773 (cond_exec_find_if_block): Likewise for local "last_insn".
17774 * jump.c (delete_related_insns): Rename param "insn" to
17775 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
17776 checked cast. Strengthen local "p" from rtx to rtx_insn *.
17777 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
17778 NULL.
17779 (split_reg): Likewise.
17780 * lra.c (lra_process_new_insns): Likewise.
17781 * modulo-sched.c (permute_partial_schedule): Strengthen param
17782 "last" from rtx to rtx_insn *.
17783 * optabs.c (add_equal_note): Likewise for param "insns" and local
17784 "last_insn".
17785 (expand_binop_directly): Add checked casts to rtx_insn * within
17786 NEXT_INSN (pat) uses.
17787 (expand_unop_direct): Likewise.
17788 (maybe_emit_unop_insn): Likewise.
17789 * recog.c (peep2_attempt): Strengthen locals "last",
17790 "before_try", "x" from rtx to rtx_insn *.
17791 * reorg.c (optimize_skip): Strengthen return type and local
17792 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
17793 and locals "trial", "next_trial" from rtx to rtx_insn *.
17794 * resource.c (next_insn_no_annul): Strengthen return type and
17795 param "insn" from rtx to rtx_insn *. Use a cast to and method of
17796 rtx_sequence to clarify the code.
17797 (mark_referenced_resources): Add a checked cast to rtx_insn *
17798 within PREV_INSN (x).
17799 (find_dead_or_set_registers): Strengthen return type, param
17800 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
17801 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
17802 to rtx_insn **.
17803 (mark_target_live_regs): Strengthen params "insns" and "target",
17804 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
17805 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
17806 the code.
17807 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
17808 from rtx to rtx_insn *.
17809 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
17810 from rtx to rtx_insn *.
17811 (copy_reg_eh_region_note_backward): Likewise.
17812 (unshare_all_rtl_in_chain): Likewise for sole param.
17813 (dump_rtl_slim): Strengthen second and third params from const_rtx
17814 to const rtx_insn *.
17815 * sched-deps.c (sched_free_deps): Strengthen params "head" and
17816 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
17817 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
17818 "next_tail" from rtx to rtx_insn *.
17819 (begin_move_insn): Likewise for local "next".
17820 * sched-int.h (sched_free_deps): Likewise for first and second
17821 params.
17822 (no_real_insns_p): Strengthen both params from const_rtx to
17823 const rtx_insn *.
17824 (sched_setup_bb_reg_pressure_info): Strengthen second params from
17825 rtx to rtx_insn *.
17826 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
17827 "next_tail".
17828 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
17829 and locals "insn", "tail" from const_rtx to const rtx_insn *.
17830 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
17831 rtx_insn *.
17832 (debug_rtl_slim): Strengthen params "first" and "last" from
17833 const_rtx to const rtx_insn *.
17834 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
17835 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
17836 (convert_to_simple_return): Likewise for param "returnjump".
17837 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
17838 "prologue_seq".
17839 (convert_to_simple_return): Likewise for param "returnjump".
17840 * valtrack.c (propagate_for_debug): Likewise for params
17841 "insn", "last".
17842 * valtrack.h (propagate_for_debug): Likewise for second param.
17843
17844 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17845
17846 * output.h (insn_current_reference_address): Strengthen param
17847 from rtx to rtx_insn *.
17848 * final.c (insn_current_reference_address): Likewise.
17849
17850 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17851
17852 * basic-block.h (inside_basic_block_p): Strengthen param from
17853 const_rtx to const rtx_insn *.
17854 * cfgbuild.c (inside_basic_block_p): Likewise.
17855
17856 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17857
17858 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
17859 rtx_insn *.
17860 (get_trace_info): Likewise for param "insn".
17861 (save_point_p): Likewise.
17862 (maybe_record_trace_start): Likewise for both params.
17863 (maybe_record_trace_start_abnormal): Likewise.
17864 (create_trace_edges): Likewise for sole param and for three of the
17865 locals named "lab".
17866 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
17867 to rtx_insn *, and update a call to pat->element to pat->insn.
17868
17869 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17870
17871 * function.h (struct expr_status): Convert field "x_forced_labels"
17872 from rtx_expr_list * to rtx_insn_list *.
17873
17874 * cfgbuild.c (make_edges): Convert local "x" from an
17875 rtx_expr_list * to an rtx_insn_list *, replacing use of
17876 "element" method with "insn" method.
17877 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
17878 * except.c (sjlj_emit_dispatch_table): Replace use of
17879 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
17880 forced_labels.
17881 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
17882 rtx_expr_list * to an rtx_insn_list *, replacing use of
17883 "element" method with "insn" method.
17884 * reload1.c (set_initial_label_offsets): Likewise for local "x".
17885 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
17886 rtx_insn *, adding a checked cast. Replace use of
17887 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
17888 forced_labels.
17889 (expand_label): Likewise for local "label_r".
17890
17891 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17892
17893 * function.h (struct rtl_data): Convert field
17894 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
17895 rtx_insn_list *.
17896 * rtl.h (remove_node_from_insn_list): New prototype.
17897
17898 * builtins.c (expand_builtin): When prepending to
17899 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
17900 gen_rtx_EXPR_LIST.
17901 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
17902 to rtx_insn_list *, and use its "insn" method rather than
17903 "element" method.
17904 * cfgrtl.c (delete_insn): Use new function
17905 remove_node_from_insn_list rather than
17906 remove_node_from_expr_list.
17907 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
17908 to rtx_insn_list *, and use its "insn" method rather than
17909 "element" method.
17910 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
17911 * reload1.c (set_initial_label_offsets): Likewise for local "x".
17912 * rtlanal.c (remove_node_from_insn_list): New function, adapted
17913 from remove_node_from_expr_list.
17914 * stmt.c (expand_label): When prepending to
17915 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
17916 gen_rtx_EXPR_LIST.
17917
17918 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17919
17920 * function.h (struct rtl_data): Strengthen fields "x_return_label"
17921 and "x_naked_return_label" from rtx to rtx_code_label *.
17922
17923 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17924
17925 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
17926 (SET_NEXT_INSN): Likewise.
17927 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
17928
17929 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
17930 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
17931 to split out the SEQUENCE from local "bundle", strengthening the
17932 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
17933 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
17934 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
17935 and the type of the elements of the "slot" array from rtx to
17936 rtx_insn *.
17937 (reorg_split_calls): Likewise for locals "insn" and "next", and
17938 the type of the elements of the "slot" array.
17939
17940 * config/frv/frv.c (frv_nops): Likewise for the elements of this
17941 array.
17942 (frv_function_prologue): Likewise for locals "insn", "next",
17943 "last_call".
17944 (frv_register_nop): Introduce a local "nop_insn" to be the
17945 rtx_insn * containing rtx "nop".
17946
17947 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
17948 used as an insn and sometimes as a pattern, so rename it to
17949 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
17950 using it where dealing with the core insn.
17951
17952 * config/picochip/picochip.c (reorder_var_tracking_notes):
17953 Strengthen locals "insn", "next", "last_insn", "queue",
17954 "next_queue", "prev" from rtx to rtx_insn *.
17955
17956 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
17957 the second param is an rtx_insn ** rather than an rtx **.
17958 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
17959 from rtx to rtx_sequence *, and introduce local named "sequence",
17960 using methods of rtx_sequence to clarify the code.
17961 (remove_insn): Introduce local rtx_sequence * named "sequence" and
17962 use its methods.
17963 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
17964 Rename param "after" to "uncast_after", reintroducing "after" as a
17965 local rtx_insn * with a checked cast.
17966 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
17967 reintroducing "after" as a local rtx_insn * with a checked cast.
17968 Strengthen local "last" from rtx to rtx_insn * and remove the
17969 now-redundant checked casts.
17970 (copy_delay_slot_insn): Strengthen return type and param from rtx
17971 to rtx_insn *.
17972
17973 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
17974 "last" from rtx to rtx_insn *.
17975
17976 2014-08-28 David Malcolm <dmalcolm@redhat.com>
17977
17978 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
17979 param from rtx to rtx_insn *.
17980
17981 * emit-rtl.c (copy_delay_slot_insn): Likewise.
17982
17983 * reorg.c (skip_consecutive_labels): Strengthen return type, param
17984 and local "insn" from rtx to rtx_insn *.
17985 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
17986 (unfilled_slots_next): Likewise.
17987 (function_return_label): Strengthen from rtx to rtx_code_label *.
17988 (function_simple_return_label): Likewise.
17989 (first_active_target_insn): Strengthen return type and param from
17990 rtx to rtx_insn *.
17991 (find_end_label): Strengthen return type from rtx to
17992 rtx_code_label *; strengthen locals as appropriate.
17993 (emit_delay_sequence): Strengthen return type, param "insn" and
17994 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
17995 and local "li" from rtx to rtx_insn_list *, using methods of
17996 rtx_insn_list for clarity and typesafety.
17997 (add_to_delay_list): Strengthen return type and param "insn" from
17998 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
17999 rtx_insn_list * and use methods of rtx_insn_list.
18000 (delete_from_delay_slot): Strengthen return type, param "insn",
18001 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
18002 Strengthen local "seq" from rtx to rtx_sequence *, and local
18003 "delay_list" from rtx to rtx_insn_list *, using methods of
18004 rtx_sequence for clarity and type-safety.
18005 (delete_scheduled_jump): Add checked cast when invoking
18006 delete_from_delay_slot. Strengthen local "trial" from rtx to
18007 rtx_insn *.
18008 (optimize_skip): Strengthen return type and local "delay_list"
18009 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
18010 rtx_insn *.
18011 (steal_delay_list_from_target): Strengthen return type, param
18012 "delay_list" and local "new_delay_list" from rtx to
18013 rtx_insn_list *. Strengthen param "seq" from rtx to
18014 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
18015 rtx_insn **.
18016 Split out local "temp" into multiple more-tightly scoped locals:
18017 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
18018 of rtx_insn_list and rtx_sequence for clarity and typesafety.
18019 Strengthen locals named "trial" from rtx to rtx_insn *.
18020 (steal_delay_list_from_fallthrough): Strengthen return type and
18021 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
18022 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
18023 Strengthen local "trial" from rtx to rtx_insn *.
18024 (try_merge_delay_insns): Strength local "merged_insns" from rtx
18025 to rtx_insn_list * and use its methods. Strengthen local "pat"
18026 from rtx to rtx_sequence * and use its methods. Strengthen locals
18027 "dtrial" and "new_rtx" from rtx to rtx_insn *.
18028 (get_label_before): Strengthen return type and local "label" from
18029 rtx to rtx_insn *.
18030 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
18031 "next_trial", "next", prev". Strengthen local "delay_list" from
18032 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
18033 rtx_insn **.
18034 (follow_jumps): Strengthen return type, param "label" and locals
18035 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
18036 (fill_slots_from_thread): Strengthen return type, param
18037 "delay_list" from rtx to rtx_insn_list *. Strengthen params
18038 "insn", "thread", "opposite_thread" and locals "new_thread",
18039 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
18040 "sequence" from a checked cast to rtx_sequence so that we can call
18041 steal_delay_list_from_target and steal_delay_list_from_fallthrough
18042 with an rtx_sequence *.
18043 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
18044 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
18045 Strengthen local "delay_list" from rtx to rtx_insn_list *.
18046 (relax_delay_slots): Strengthen param "first" and locals "insn",
18047 "next", "trial", "delay_insn", "target_label" from rtx to
18048 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
18049 Introduce a local "trial_seq" for PATTERN (trial) of type
18050 rtx_sequence *, in both cases using methods of rtx_sequence.
18051 (dbr_schedule): Strengthen param "first" and locals "insn",
18052 "next", "epilogue_insn" from rtx to rtx_insn *.
18053
18054 2014-08-28 Richard Biener <rguenther@suse.de>
18055
18056 PR tree-optimization/62283
18057 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18058 Do not peel loops for alignment where the vector loop likely
18059 doesn't run at least VF times.
18060
18061 2014-08-28 Bin Cheng <bin.cheng@arm.com>
18062
18063 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
18064 important_candidates. Consider all important candidates if
18065 IVS doesn't give any result. Remove check on ivs->upto.
18066 (try_add_cand_for): Call iv_ca_add_use only once.
18067
18068 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
18069 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18070 Anna Tikhonova <anna.tikhonova@intel.com>
18071 Ilya Tocar <ilya.tocar@intel.com>
18072 Andrey Turetskiy <andrey.turetskiy@intel.com>
18073 Ilya Verbin <ilya.verbin@intel.com>
18074 Kirill Yukhin <kirill.yukhin@intel.com>
18075 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18076
18077 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
18078 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
18079 masking.
18080 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
18081 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
18082 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
18083 (define_insn "*mul<mode>3"): Add EVEX version.
18084
18085 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
18086 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18087 Anna Tikhonova <anna.tikhonova@intel.com>
18088 Ilya Tocar <ilya.tocar@intel.com>
18089 Andrey Turetskiy <andrey.turetskiy@intel.com>
18090 Ilya Verbin <ilya.verbin@intel.com>
18091 Kirill Yukhin <kirill.yukhin@intel.com>
18092 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18093
18094 * config/i386/sse.md
18095 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
18096 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
18097 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
18098 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
18099 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
18100 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
18101 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
18102 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
18103 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
18104 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
18105 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
18106 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
18107 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
18108 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
18109 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
18110 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
18111
18112 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
18113 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18114 Anna Tikhonova <anna.tikhonova@intel.com>
18115 Ilya Tocar <ilya.tocar@intel.com>
18116 Andrey Turetskiy <andrey.turetskiy@intel.com>
18117 Ilya Verbin <ilya.verbin@intel.com>
18118 Kirill Yukhin <kirill.yukhin@intel.com>
18119 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18120
18121 * config/i386/sse.md
18122 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
18123 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
18124 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
18125
18126 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
18127 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18128 Anna Tikhonova <anna.tikhonova@intel.com>
18129 Ilya Tocar <ilya.tocar@intel.com>
18130 Andrey Turetskiy <andrey.turetskiy@intel.com>
18131 Ilya Verbin <ilya.verbin@intel.com>
18132 Kirill Yukhin <kirill.yukhin@intel.com>
18133 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18134
18135 * config/i386/sse.md
18136 (define_mode_iterator VI128_256): New.
18137 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
18138
18139 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
18140 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18141 Anna Tikhonova <anna.tikhonova@intel.com>
18142 Ilya Tocar <ilya.tocar@intel.com>
18143 Andrey Turetskiy <andrey.turetskiy@intel.com>
18144 Ilya Verbin <ilya.verbin@intel.com>
18145 Kirill Yukhin <kirill.yukhin@intel.com>
18146 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18147
18148 * config/i386/sse.md
18149 (define_mode_iterator VI8_256_512): New.
18150 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
18151 Ditto.
18152 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
18153 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
18154 Ditto.
18155 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
18156
18157 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18158
18159 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
18160 pointer to the cumulative reloc value and return the value for
18161 this reloc instead.
18162 (compute_reloc_for_rtx): Take a const_rtx. Call
18163 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
18164 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
18165 for_each_rtx for the CONST case.
18166
18167 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18168
18169 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
18170 (mark_constants_in_pattern): ...this new function to iterate over
18171 all the subrtxes.
18172 (mark_constants): Update accordingly.
18173
18174 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18175
18176 * varasm.c: Include rtl-iter.h.
18177 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
18178 Remove the pointer to the cumulative hashval_t and just return
18179 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
18180 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
18181 Accumulate the hashval_ts here instead of const_rtx_hash_1.
18182
18183 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18184
18185 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
18186 Give real type of data parameter. Remove return value.
18187 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
18188 to iterate over subrtxes.
18189
18190 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18191
18192 * var-tracking.c (use_narrower_mode_test): Turn from being a
18193 for_each_rtx callback to being a function that examines each
18194 subrtx itself.
18195 (adjust_mems): Update accordingly.
18196
18197 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18198
18199 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
18200 callback to being a function that examines each subrtx itself.
18201 Remove handling of null rtxes.
18202 (add_uses): Update accordingly.
18203
18204 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18205
18206 * var-tracking.c: Include rtl-iter.h.
18207 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
18208 to being a function that examines each subrtx itself.
18209 (use_type): Update accordingly.
18210
18211 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18212
18213 * store-motion.c: Include rtl-iter.h.
18214 (extract_mentioned_regs_1): Delete.
18215 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
18216 for_each_rtx to iterate over subrtxes.
18217
18218 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18219
18220 * sel-sched.c: Include rtl-iter.h
18221 (count_occurrences_1): Delete.
18222 (count_occurrences_equiv): Turn rtxes into const_rtxes.
18223 Use FOR_EACH_SUBRTX rather than for_each_rtx.
18224
18225 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18226
18227 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
18228 * rtlanal.c (tls_referenced_p_1): Delete.
18229 (tls_referenced_p): Take a const_rtx rather than an rtx.
18230 Use FOR_EACH_SUBRTX rather than for_each_rtx.
18231
18232 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18233
18234 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
18235 (for_each_inc_dec): Take an rtx rather than an rtx *.
18236 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
18237 (cselib_record_sets): Likewise.
18238 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
18239 (check_for_inc_dec): Likewise.
18240 * rtlanal.c (for_each_inc_dec_ops): Delete.
18241 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
18242 rather than a pointer to the memory address. Replace
18243 for_each_inc_dec_ops argument with separate function and data
18244 arguments. Abort on non-autoinc addresses.
18245 (for_each_inc_dec_find_mem): Delete.
18246 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
18247 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
18248
18249 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18250
18251 * rtl.h (find_all_hard_regs): Declare.
18252 * rtlanal.c (find_all_hard_regs): New function.
18253 (record_hard_reg_uses_1): Delete.
18254 (record_hard_reg_uses): Use find_all_hard_regs.
18255
18256 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18257
18258 * rtl.h (replace_label_data): Delete.
18259 (replace_label): Take the old label, new label and update-nuses flag
18260 as direct arguments. Return void.
18261 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
18262 * rtlanal.c (replace_label): Update interface as above. Handle
18263 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
18264 iterator. Use FOR_EACH_SUBRTX_PTR.
18265
18266 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18267
18268 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
18269 with const_rtx parameters.
18270 * varasm.c (get_pool_constant): Likewise.
18271 * rtlanal.c (rtx_referenced_p_1): Delete.
18272 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
18273 Assert that the rtx we're looking for is nonnull. Allow searches
18274 for constant pool SYMBOL_REFs.
18275
18276 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18277
18278 * reload1.c: Include rtl-iter.h.
18279 (note_reg_elim_costly): Turn from being a for_each_rtx callback
18280 to being a function that examines each subrtx itself.
18281 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
18282
18283 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18284
18285 * regcprop.c (cprop_find_used_regs_1): Delete.
18286 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
18287
18288 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18289
18290 * regcprop.c: Include rtl-iter.h.
18291 (kill_value): Take a const_rtx.
18292 (kill_autoinc_value): Turn from being a for_each_rtx callback
18293 to being a function that examines each subrtx itself.
18294 (copyprop_hardreg_forward_1): Update accordingly.
18295
18296 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18297
18298 * reg-stack.c: Include rtl-iter.h.
18299 (subst_stack_regs_in_debug_insn): Delete.
18300 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
18301 instead of for_each_rtx.
18302
18303 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18304
18305 * lower-subreg.c (find_decomposable_subregs): Turn from being
18306 a for_each_rtx callback to being a function that examines each
18307 subrtx itself. Remove handling of null rtxes.
18308 (decompose_multiword_subregs): Update accordingly.
18309
18310 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18311
18312 * lower-subreg.c (adjust_decomposed_uses): Delete.
18313 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
18314 Remove handling of null rtxes.
18315
18316 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18317
18318 * lower-subreg.c: Include rtl-iter.h.
18319 (resolve_subreg_use): Turn from being a for_each_rtx callback
18320 to being a function that examines each subrtx itself. Remove
18321 handling of null rtxes.
18322 (resolve_reg_notes, resolve_simple_move): Update accordingly.
18323 (decompose_multiword_subregs): Likewise.
18324
18325 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18326
18327 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
18328 to being a function that examines each subrtx itself.
18329 (simplify_using_condition, simplify_using_initial_values): Update
18330 accordingly.
18331
18332 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18333
18334 * loop-iv.c: Include rtl-iter.h.
18335 (find_single_def_src): New function.
18336 (replace_single_def_regs): Turn from being a for_each_rtx callback
18337 to being a function that examines each subrtx itself.
18338 (replace_in_expr, simplify_using_initial_values): Update accordingly.
18339
18340 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18341
18342 * jump.c (eh_returnjump_p_1): Delete.
18343 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
18344 Remove handling of null rtxes.
18345
18346 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18347
18348 * jump.c: Include rtl-iter.h.
18349 (returnjump_p_1): Delete.
18350 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
18351 Remove handling of null rtxes.
18352
18353 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18354
18355 * ira.c: Include rtl-iter.h.
18356 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
18357 to being a function that examines each subrtx itself. Remove
18358 handling of null rtxes.
18359 (update_equiv_regs): Update call accordingly.
18360
18361 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18362
18363 * fwprop.c: Include rtl-iter.h.
18364 (varying_mem_p): Turn from being a for_each_rtx callback to being
18365 a function that examines each subrtx itself.
18366 (propagate_rtx): Update accordingly.
18367
18368 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18369
18370 * function.c: Include rtl-iter.h
18371 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
18372 callback to being a function that examines each subrtx itself.
18373 Return the changed flag.
18374 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
18375 (instantiate_virtual_regs): Update calls accordingly.
18376
18377 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18378
18379 * final.c: Include rtl-iter.h.
18380 (mark_symbol_ref_as_used): Delete.
18381 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
18382 for_each_rtx.
18383
18384 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18385
18386 * emit-rtl.c: Include rtl-iter.h.
18387 (find_auto_inc): Turn from being a for_each_rtx callback to being
18388 a function that examines each subrtx itself. Assume the first operand
18389 to an RTX_AUTOINC is the automodified register.
18390 (try_split): Update call accordingly.
18391
18392 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18393
18394 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
18395 Return a bool, inverting the result so that 0/false means "not ok".
18396 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
18397 subrtxes of a CONST.
18398 (mem_loc_descriptor, add_const_value_attribute)
18399 (resolve_addr_in_expr): Update calls accordingly.
18400
18401 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18402
18403 * dwarf2out.c: Include rtl-iter.h.
18404 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
18405 Remove unused data parameter. Return a bool, inverting the result
18406 so that 0/false means "not ok".
18407 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
18408 instead of for_each_rtx.
18409
18410 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18411
18412 * dse.c: Include rtl-iter.h.
18413 (check_mem_read_rtx): Change void * parameter to real type.
18414 Remove return value.
18415 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
18416 for_each_rtx. Don't handle null rtxes.
18417
18418 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18419
18420 * df-problems.c: Include rtl-iter.h.
18421 (find_memory): Turn from being a for_each_rtx callback to being
18422 a function that examines each subrtx itself. Continue to look for
18423 volatile references even after a nonvolatile one has been found.
18424 (can_move_insns_across): Update calls accordingly.
18425
18426 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18427
18428 * ddg.c (walk_mems_2, walk_mems_1): Delete.
18429 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
18430 to iterate over subrtxes. Return a bool rather than an int.
18431
18432 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18433
18434 * ddg.c: Include rtl-iter.h.
18435 (mark_mem_use_1): Rename to...
18436 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
18437 instead of for_each_rtx.
18438 (mem_read_insn_p): Update accordingly.
18439
18440 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18441
18442 * cse.c (change_cc_mode_args): Delete.
18443 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
18444 a function that examines each subrtx itself. Take the fields of
18445 change_cc_mode_args as argument and return void.
18446 (cse_change_cc_mode_insn): Update calls accordingly.
18447
18448 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18449
18450 * cse.c (is_dead_reg): Change argument to const_rtx.
18451 (dead_debug_insn_data): Delete.
18452 (is_dead_debug_insn): Expand commentary. Turn from being a
18453 for_each_rtx callback to being a function that examines
18454 each subrtx itself. Take the fields of dead_debug_insn_data
18455 as argument.
18456 (delete_trivially_dead_insns): Update call accordingly.
18457
18458 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18459
18460 * cse.c (check_for_label_ref): Move earlier in file. Turn from
18461 being a for_each_rtx callback to being a function that examines
18462 each subrtx itself.
18463 (cse_extended_basic_block): Update call accordingly.
18464
18465 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18466
18467 * cse.c (check_dependence_data): Delete.
18468 (check_dependence): Change from being a for_each_rtx callback to being
18469 a function that examines all subrtxes itself. Don't handle null rtxes.
18470 (invalidate): Update call accordingly.
18471
18472 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18473
18474 * cse.c: Include rtl-iter.h.
18475 (approx_reg_cost_1): Delete.
18476 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
18477 Don't handle null rtxes.
18478
18479 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18480
18481 * cfgcleanup.c: Include rtl-iter.h.
18482 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
18483 to being a function that examines each subrtx itself.
18484 (thread_jump): Update accordingly.
18485
18486 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18487
18488 * combine-stack-adj.c: Include rtl-iter.h.
18489 (record_stack_refs_data): Delete.
18490 (record_stack_refs): Turn from being a for_each_rtx callback
18491 to being a function that examines each subrtx itself.
18492 Take a pointer to the reflist. Invert sense of return value
18493 so that true means success and false means failure. Don't
18494 handle null rtxes.
18495 (combine_stack_adjustments_for_block): Update accordingly.
18496
18497 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18498
18499 * combine.c (record_truncated_value): Turn from being a for_each_rtx
18500 callback to a function that takes an rtx and returns a bool
18501 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
18502 for_each_rtx.
18503
18504 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18505
18506 * combine.c: Include rtl-iter.h.
18507 (unmentioned_reg_p_1): Delete.
18508 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
18509 Don't handle null rtxes.
18510
18511 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18512
18513 * calls.c: Include rtl-iter.h.
18514 (internal_arg_pointer_based_exp_1): Delete.
18515 (internal_arg_pointer_based_exp): Take a const_rtx.
18516 Use FOR_EACH_SUBRTX to iterate over subrtxes.
18517
18518 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18519
18520 * caller-save.c: Include rtl-iter.h.
18521 (add_used_regs_1): Delete.
18522 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
18523 to iterate over subrtxes. Assert that any remaining pseudos
18524 have been spilled.
18525
18526 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18527
18528 * bt-load.c: Include rtl-iter.h.
18529 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
18530 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
18531 to iterate over subrtxes.
18532 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
18533 find_btr_use rather than btr_referenced_p.
18534
18535 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18536
18537 * alias.c: Include rtl-iter.h.
18538 (refs_newer_value_cb): Delete.
18539 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
18540
18541 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
18542
18543 * rtl-iter.h: New file.
18544 * rtlanal.c: Include it.
18545 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
18546 (generic_subrtx_iterator <T>::add_single_to_queue)
18547 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
18548 (generic_subrtx_iterator <T>::free_array): New functions.
18549 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
18550 (generic_subrtx_iterator <const_rtx_accessor>)
18551 (generic_subrtx_iterator <rtx_var_accessor>
18552 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
18553 (setup_reg_subrtx_bounds): New function.
18554 (init_rtlanal): Call it.
18555
18556 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
18557
18558 PR target/62261
18559 * config/sh/sh.md (ashlsi3): Handle negative shift count for
18560 TARGET_SHMEDIA.
18561 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
18562
18563 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
18564
18565 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
18566
18567 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18568
18569 * rtl.h (JUMP_LABEL_AS_INSN): New.
18570
18571 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18572
18573 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
18574 rtx_expr_list **.
18575 (alloc_EXPR_LIST): Strengthen return type from rtx to
18576 rtx_expr_list *.
18577 (remove_free_EXPR_LIST_node): Likewise for param.
18578 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
18579 from rtx to rtx_expr_list *.
18580 * sched-int.h (struct deps_desc): Strengthen fields
18581 "pending_read_mems" and "pending_write_mems" from rtx to
18582 rtx_expr_list *.
18583
18584 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
18585 rtx to rtx_expr_list *.
18586 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
18587 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
18588 rtx_expr_list **.
18589 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
18590 from rtx to rtx_expr_list *.
18591 * loop-iv.c (simplify_using_initial_values): Strengthen local
18592 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
18593 "pnote_next" from rtx * to rtx_expr_list **.
18594 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
18595 param "exprp" from rtx * to rtx_expr_list **.
18596 (add_insn_mem_dependence): Strengthen local "mem_list" from
18597 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
18598 to rtx_expr_list *.
18599 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
18600 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
18601 param "old_mems_p" from rtx * to rtx_expr_list **.
18602 * var-tracking.c (struct adjust_mem_data): Strengthen field
18603 "side_effects" from rtx to rtx_expr_list *.
18604 (adjust_insn): Replace NULL_RTX with NULL when assigning to
18605 rtx_expr_list *.
18606 (prepare_call_arguments): Likewise.
18607
18608 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18609
18610 * function.h (struct rtl_data): Strengthen field
18611 "x_stack_slot_list" from rtx to rtx_expr_list *.
18612
18613 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
18614 when assigning to stack_slot_list.
18615
18616 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18617
18618 * function.h (struct rtl_data): Strengthen field
18619 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
18620 * rtl.h (remove_node_from_expr_list): Strengthen second param from
18621 rtx * to rtx_expr_list **.
18622
18623 * cfgbuild.c (make_edges): In loop over
18624 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
18625 rtx_expr_list *, and use methods of the latter class to clarify
18626 the code.
18627 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
18628 rtx_expr_list *, and use methods of the latter class to clarify
18629 the code.
18630 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
18631 * reload1.c (set_initial_label_offsets): Likewise for local "x".
18632 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
18633 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
18634 to rtx_expr_list *. Use methods of the latter class to clarify
18635 the code.
18636
18637 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18638
18639 * function.h (struct expr_status): Strengthen field
18640 "x_forced_labels" from rtx to rtx_expr_list *.
18641
18642 * cfgbuild.c (make_edges): Split local "x" into two locals,
18643 strengthening one from rtx to rtx_expr_list *, and using methods
18644 of said class.
18645 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
18646 loop over forced_labels, introduce strengthen it from rtx to
18647 rtx_expr_list *, using methods to clarify the code.
18648 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
18649 to rtx_expr_list *, using methods of said class to clarify the
18650 code.
18651 * reload1.c (set_initial_label_offsets): Split local "x" into two
18652 per-loop variables, strengthening the first from rtx to
18653 rtx_expr_list * and using methods.
18654
18655 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18656
18657 * coretypes.h (class rtx_expr_list): Add forward declaration.
18658 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
18659 * gengenrtl.c (special_rtx): Add EXPR_LIST.
18660 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
18661 invariant: GET_CODE (X) == EXPR_LIST.
18662 (is_a_helper <rtx_expr_list *>::test): New.
18663 (rtx_expr_list::next): New.
18664 (rtx_expr_list::element): New.
18665 (gen_rtx_EXPR_LIST): New.
18666
18667 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18668
18669 * varasm.c (mark_constants): Convert a GET_CODE check into a
18670 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
18671 Use methods of rtx_sequence to clarify the code.
18672
18673 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18674
18675 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
18676 local "seq" via a checked cast, and use methods of rtx_sequence
18677 to simplify the code.
18678
18679 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18680
18681 * resource.c (mark_referenced_resources): Strengthen local
18682 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
18683 using methods of rtx_sequence to clarify the code.
18684 (find_dead_or_set_registers): Within the switch statement, convert
18685 a GET_CODE check to a dyn_cast, introducing local "seq". Within
18686 the JUMP_P handling, introduce another local "seq", adding a
18687 checked cast to rtx_sequence *. In both cases, use methods of
18688 rtx_sequence to clarify the code.
18689 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
18690 via a checked cast, and use methods of rtx_sequence to simplify
18691 the code.
18692
18693 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18694
18695 * reorg.c (redundant_insn): In two places in the function, replace
18696 a check of GET_CODE with a dyn_cast, introducing local "seq", and
18697 usings methods of rtx_sequence to clarify the code.
18698
18699 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18700
18701 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
18702 local "seq" with a checked cast, and use methods of rtx_sequence
18703 to clarify the code.
18704
18705 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18706
18707 * function.c (contains): Introduce local "seq" for PATTERN (insn),
18708 with a checked cast, in the region for where we know it's a
18709 SEQUENCE. Use methods of rtx_sequence.
18710
18711 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18712
18713 * final.c (get_attr_length_1): Replace GET_CODE check with a
18714 dyn_cast, introducing local "seq" and the use of methods of
18715 rtx_sequence.
18716 (shorten_branches): Likewise, introducing local "body_seq".
18717 Strengthen local "inner_insn" from rtx to rtx_insn *.
18718 (reemit_insn_block_notes): Replace GET_CODE check with a
18719 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
18720 Use methods of rtx_sequence.
18721 (final_scan_insn): Likewise, introducing local "seq" for when
18722 "body" is known to be a SEQUENCE, using its methods.
18723
18724 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18725
18726 * except.c (can_throw_external): Strengthen local "seq" from rtx
18727 to rtx_sequence *. Use methods of rtx_sequence.
18728 (insn_nothrow_p): Likewise.
18729
18730 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18731
18732 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
18733 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
18734 Use methods of rtx_sequence.
18735 (scan_trace): Likewise for local "pat".
18736
18737 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18738
18739 * coretypes.h (class rtx_sequence): Add forward declaration.
18740 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
18741 invariant: GET_CODE (X) == SEQUENCE.
18742 (is_a_helper <rtx_sequence *>::test): New.
18743 (is_a_helper <const rtx_sequence *>::test): New.
18744 (rtx_sequence::len): New.
18745 (rtx_sequence::element): New.
18746 (rtx_sequence::insn): New.
18747
18748 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18749
18750 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
18751 rtx_insn_list **.
18752 (alloc_INSN_LIST): Strengthen return type from rtx to
18753 rtx_insn_list *.
18754 (copy_INSN_LIST): Likewise for return type and param.
18755 (concat_INSN_LIST): Likewise for both params and return type.
18756 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
18757 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
18758 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
18759 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
18760
18761 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
18762 "implicit_sets", "control_uses", "clobbers" from rtx to
18763 rtx_insn_list *.
18764 (struct deps_desc): Likewise for fields "pending_read_insns",
18765 "pending_write_insns", "pending_jump_insns",
18766 "last_pending_memory_flush", "last_function_call",
18767 "last_function_call_may_noreturn", "sched_before_next_call",
18768 "sched_before_next_jump".
18769 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
18770 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
18771
18772 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
18773 from rtx to rtx_insn_list *.
18774 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
18775 rtx_insn_list *.
18776
18777 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
18778 to rtx_insn_list **.
18779 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
18780 rtx_insn_list *.
18781 (queue_insn): Likewise for local "link".
18782 (struct haifa_saved_data): Strengthen field "insn_queue" from
18783 rtx * to rtx_insn_list **.
18784 (save_backtrack_point): Update allocation of save->insn_queue to
18785 reflect the strengthening of elements from rtx to rtx_insn_list *.
18786 (queue_to_ready): Strengthen local "link" from rtx to
18787 rtx_insn_list *; use methods "next" and "insn" when traversing the
18788 list.
18789 (early_queue_to_ready): Likewise for locals "link", "next_link",
18790 "prev_link".
18791 (schedule_block): Update allocation of insn_queue to reflect the
18792 strengthening of elements from rtx to rtx_insn_list *. Strengthen
18793 local "link" from rtx to rtx_insn_list *, and use methods when
18794 working it.
18795 (add_to_speculative_block): Strengthen locals "twins" and
18796 "next_node" from rtx to rtx_insn_list *, and use methods when
18797 working with them. Strengthen local "twin" from rtx to
18798 rtx_insn *, eliminating a checked cast.
18799 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
18800 from rtx to rtx_insn_list *, and use methods when working with
18801 them.
18802
18803 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
18804 from rtx to rtx_insn_list *, adding a checked cast.
18805 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
18806 rtx_insn_list **.
18807 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
18808 "newlink" from rtx to rtx_insn_list *. Strengthen local
18809 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
18810 from rtx to rtx_insn *.
18811 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
18812 from rtx to rtx_insn_list *. Use methods of the latter class.
18813 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
18814 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
18815 (remove_free_INSN_LIST_node): Strengthen return type and local
18816 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
18817 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
18818 rtx_insn_list *, using "insn" method.
18819
18820 * sched-deps.c (add_dependence_list): Strengthen param "list"
18821 from rtx to rtx_insn_list *, and use methods when working with it.
18822 (add_dependence_list_and_free): Strengthen param "listp" from
18823 rtx * to rtx_insn_list **.
18824 (remove_from_dependence_list): Strenghten param "listp" from rtx *
18825 to rtx_insn_list **, and use methods when working with *listp.
18826 (remove_from_both_dependence_lists): Strengthen param "listp" from
18827 rtx * to rtx_insn_list **
18828 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
18829 to rtx_insn_list **. Eliminate local "link", in favor of two new
18830 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
18831 respectively.
18832 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
18833 by introducing local "cond_deps".
18834 (remove_from_deps): Strengthen param "insn" from rtx to
18835 rtx_insn *.
18836
18837 * sched-rgn.c (concat_insn_mem_list): Strengthen param
18838 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
18839 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
18840 Use methods of rtx_insn_list.
18841
18842 * store-motion.c (struct st_expr): Strengthen fields
18843 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
18844 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
18845 rtx_insn_list *.
18846 (find_moveable_store): Split out "tmp" into multiple more-tightly
18847 scoped locals. Use methods of rtx_insn_list *.
18848 (compute_store_table): Strengthen local "tmp" from rtx to
18849 rtx_insn *. Use methods of rtx_insn_list *.
18850
18851 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18852
18853 * coretypes.h (class rtx_insn_list): Add forward declaration.
18854 * rtl.h (class rtx_insn_list): New subclass of rtx_def
18855 (is_a_helper <rtx_insn_list *>::test): New.
18856 (rtx_insn_list::next): New.
18857 (rtx_insn_list::insn): New.
18858 (gen_rtx_INSN_LIST): Add prototype.
18859 * emit-rtl.c (gen_rtx_INSN_LIST): New.
18860 * gengenrtl.c (special_rtx): Add INSN_LIST.
18861
18862 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18863
18864 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
18865 "prev" from rtx to rtx_insn *.
18866
18867 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18868
18869 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
18870 functions. Require merely an rtx for now, not an rtx_insn *.
18871 (BLOCK_FOR_INSN): Likewise.
18872 (INSN_LOCATION): Likewise.
18873 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
18874
18875 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18876
18877 * rtl.h (PATTERN): Convert this macro into a pair of inline
18878 functions, for now, requiring const_rtx and rtx.
18879
18880 2014-08-27 David Malcolm <dmalcolm@redhat.com>
18881
18882 * target.def (unwind_emit): Strengthen param "insn" from rtx to
18883 rtx_insn *.
18884 (final_postscan_insn): Likewise.
18885 (adjust_cost): Likewise.
18886 (adjust_priority): Likewise.
18887 (variable_issue): Likewise.
18888 (macro_fusion_pair_p): Likewise.
18889 (dfa_post_cycle_insn): Likewise.
18890 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
18891 (first_cycle_multipass_issue): Likewise.
18892 (dfa_new_cycle): Likewise.
18893 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
18894 (speculate_insn): Likewise for param "insn".
18895 (gen_spec_check): Likewise for params "insn" and "label".
18896 (get_insn_spec_ds): Likewise for param "insn".
18897 (get_insn_checked_ds): Likewise.
18898 (dispatch_do): Likewise.
18899 (dispatch): Likewise.
18900 (cannot_copy_insn_p): Likewise.
18901 (invalid_within_doloop): Likewise.
18902 (legitimate_combined_insn): Likewise.
18903 (needed): Likewise.
18904 (after): Likewise.
18905
18906 * doc/tm.texi: Automatically updated to reflect changes to
18907 target.def.
18908
18909 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
18910 working with insn.
18911 (schedule_block): Likewise.
18912 (sched_init): Likewise.
18913 (sched_speculate_insn): Strengthen param "insn" from rtx to
18914 rtx_insn *.
18915 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
18916 working with insn.
18917 * hooks.c (hook_bool_rtx_true): Rename to...
18918 hook_bool_rtx_insn_true): ...this, and strengthen first param from
18919 rtx to rtx_insn *.
18920 (hook_constcharptr_const_rtx_null): Rename to...
18921 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
18922 first param from const_rtx to const rtx_insn *.
18923 (hook_bool_rtx_int_false): Rename to...
18924 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
18925 param from rtx to rtx_insn *.
18926 (hook_void_rtx_int): Rename to...
18927 (hook_void_rtx_insn_int): ...this, and strengthen first param from
18928 rtx to rtx_insn *.
18929
18930 * hooks.h (hook_bool_rtx_true): Rename to...
18931 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
18932 rtx to rtx_insn *.
18933 (hook_bool_rtx_int_false): Rename to...
18934 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
18935 param from rtx to rtx_insn *.
18936 (hook_void_rtx_int): Rename to...
18937 (hook_void_rtx_insn_int): ...this, and strengthen first param from
18938 rtx to rtx_insn *.
18939 (hook_constcharptr_const_rtx_null): Rename to...
18940 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
18941 first param from const_rtx to const rtx_insn *.
18942
18943 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
18944 and local "prev" from rtx to rtx_insn *.
18945
18946 * sched-int.h (sched_speculate_insn): Strengthen first param from
18947 rtx to rtx_insn *.
18948
18949 * sel-sched.c (create_speculation_check): Likewise for local "label".
18950 * targhooks.c (default_invalid_within_doloop): Strengthen param
18951 "insn" from const_rtx to const rtx_insn *.
18952 * targhooks.h (default_invalid_within_doloop): Strengthen param
18953 from const_rtx to const rtx_insn *.
18954
18955 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
18956 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
18957
18958 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
18959 "insn".
18960 (arc_invalid_within_doloop): Likewise, with const.
18961
18962 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
18963 (arm_cannot_copy_insn_p): Likewise for param "insn".
18964 (arm_unwind_emit): Likewise.
18965
18966 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
18967 "dep_insn".
18968
18969 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
18970 (c6x_variable_issue): Likewise. Removed now-redundant checked
18971 cast.
18972 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
18973
18974 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
18975 Likewise for param "insn".
18976 (epiphany_mode_after): Likewise.
18977 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
18978 params "insn", "dep_insn".
18979 (epiphany_mode_needed): Likewise for param "insn".
18980 (epiphany_mode_after): Likewise.
18981
18982 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
18983 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
18984 (ix86_avx_u128_mode_needed): Likewise.
18985 (ix86_i387_mode_needed): Likewise.
18986 (ix86_mode_needed): Likewise.
18987 (ix86_avx_u128_mode_after): Likewise.
18988 (ix86_mode_after): Likewise.
18989 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
18990 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
18991 (ix86_adjust_priority): Likewise for param "insn".
18992 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
18993 (do_dispatch): Likewise.
18994 (has_dispatch): Likewise.
18995 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
18996
18997 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
18998 reflect renaming of default hook implementation from
18999 hook_constcharptr_const_rtx_null to
19000 hook_constcharptr_const_rtx_insn_null.
19001 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
19002 rtx to rtx_insn *.
19003 (ia64_variable_issue): Likewise for param "insn".
19004 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
19005 (ia64_dfa_new_cycle): Likewise.
19006 (ia64_get_insn_spec_ds): Likewise.
19007 (ia64_get_insn_checked_ds): Likewise.
19008 (ia64_speculate_insn): Likewise.
19009 (ia64_gen_spec_check): Likewise for params "insn", "label".
19010 (ia64_asm_unwind_emit): Likewise for param "insn".
19011
19012 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
19013
19014 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
19015 "insn", "def_insn".
19016 (m68k_sched_variable_issue): Likewise for param "insn".
19017
19018 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
19019 "def_insn".
19020
19021 * config/microblaze/microblaze.c (microblaze_adjust_cost):
19022 Likewise for params "insn", "dep".
19023
19024 * config/mips/mips.c (mips_adjust_cost): Likewise.
19025 (mips_variable_issue): Likewise for param "insn".
19026 (mips_final_postscan_insn): Likewise.
19027
19028 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
19029 for params "insn", "dep".
19030
19031 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
19032 "dep_insn".
19033 (pa_adjust_priority): Likewise for param "insn".
19034
19035 * config/picochip/picochip.c (picochip_sched_adjust_cost):
19036 Likewise for params "insn", "dep_insn".
19037
19038 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
19039 param "insn".
19040 (rs6000_variable_issue): Likewise.
19041 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
19042 (rs6000_debug_adjust_cost): Likewise.
19043 (rs6000_adjust_priority): Likewise for param "insn".
19044 (rs6000_use_sched_lookahead_guard): Likewise.
19045 (get_next_active_insn): Likewise for return type and both params.
19046 (redefine_groups): Likewise for params "prev_head_insn", "tail"
19047 and locals "insn", "next_insn".
19048 (pad_groups): Likewise.
19049
19050 * config/s390/s390.c (s390_adjust_priority): Likewise for param
19051 "insn".
19052 (s390_cannot_copy_insn_p): Likewise.
19053 (s390_sched_variable_issue): Likewise for third param, eliminating
19054 checked cast.
19055 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
19056 default hook implementation from hook_constcharptr_const_rtx_null
19057 to hook_constcharptr_const_rtx_insn_null.
19058
19059 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
19060 from rtx to rtx_insn *.
19061 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
19062 (sh_variable_issue): Likewise for param "insn".
19063 (sh_dfa_new_cycle): Likewise.
19064 (sh_mode_needed): Likewise.
19065 (sh_mode_after): Likewise.
19066
19067 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
19068 params "insn", "dep_insn".
19069 (hypersparc_adjust_cost): Likewise.
19070 (sparc_adjust_cost): Likewise.
19071
19072 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
19073 param, eliminated checked cast.
19074 (spu_sched_adjust_cost): Likewise for first and third params.
19075
19076 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
19077 params "insn" and "dep_insn" from rtx to rtx_insn *.
19078
19079 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
19080
19081 2014-08-27 David Malcolm <dmalcolm@redhat.com>
19082
19083 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
19084 (set_is_load_p): ...this, updating to work on a SET pattern rather
19085 than an insn.
19086 (is_store_insn): Rename to...
19087 (set_is_store_p): ...this, updating to work on a SET pattern
19088 rather than an insn.
19089 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
19090 top of function to where it is needed. Rewrite the bogus
19091 condition that checks for "insn" and "dep" being PARALLEL to
19092 instead use single_set, introducing locals "insn_set" and
19093 "dep_set". Given that we only ever returned "cost" for a non-pair
19094 of SETs, bail out early if we don't have a pair of SET.
19095 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
19096 use the new locals "insn_set" and "dep_set", and update calls to
19097 is_load_insn and is_store_insn to be calls to set_is_load_p and
19098 set_is_store_p.
19099
19100 2014-08-27 Guozhi Wei <carrot@google.com>
19101
19102 PR target/62262
19103 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
19104 amount before using it.
19105
19106 2014-08-27 Richard Biener <rguenther@suse.de>
19107
19108 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
19109 get_maxval_strlen inside a more useful API.
19110 (gimple_fold_builtin_with_strlen): Remove and fold into ...
19111 (gimple_fold_builtin): ... caller.
19112 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
19113 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
19114 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
19115 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
19116 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
19117 gimple_fold_builtin_sprintf): Adjust to compute maxval
19118 themselves.
19119
19120 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
19121
19122 PR other/62248
19123 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
19124
19125 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
19126 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
19127 Anna Tikhonova <anna.tikhonova@intel.com>
19128 Ilya Tocar <ilya.tocar@intel.com>
19129 Andrey Turetskiy <andrey.turetskiy@intel.com>
19130 Ilya Verbin <ilya.verbin@intel.com>
19131 Kirill Yukhin <kirill.yukhin@intel.com>
19132 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
19133
19134 * config/i386/sse.md
19135 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
19136 Use `concat_tg_mode' attribute to determine asm register size.
19137
19138 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
19139 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
19140 Anna Tikhonova <anna.tikhonova@intel.com>
19141 Ilya Tocar <ilya.tocar@intel.com>
19142 Andrey Turetskiy <andrey.turetskiy@intel.com>
19143 Ilya Verbin <ilya.verbin@intel.com>
19144 Kirill Yukhin <kirill.yukhin@intel.com>
19145 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
19146
19147 * config/i386/sse.md
19148 (define_mode_iterator VI48_AVX512VL): New.
19149 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
19150 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
19151 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
19152 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
19153 with VI1): Change mode iterator.
19154 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
19155 with VI_ULOADSTORE_BW_AVX512VL): New.
19156 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
19157 with VI_ULOADSTORE_F_AVX512VL): Ditto.
19158 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
19159 with VI1): Change mode iterator.
19160 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
19161 with VI_ULOADSTORE_BW_AVX512VL): New.
19162 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
19163 with VI_ULOADSTORE_F_AVX512VL): Ditto.
19164 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
19165 with VI1): Change mode iterator.
19166 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
19167 with VI_ULOADSTORE_BW_AVX512VL): New.
19168 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
19169 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
19170 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
19171 (define_insn "<avx512>_storedqu<mode>_mask" with
19172 VI48_AVX512VL): New.
19173 (define_insn "<avx512>_storedqu<mode>_mask" with
19174 VI12_AVX512VL): Ditto.
19175
19176 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
19177 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
19178 Anna Tikhonova <anna.tikhonova@intel.com>
19179 Ilya Tocar <ilya.tocar@intel.com>
19180 Andrey Turetskiy <andrey.turetskiy@intel.com>
19181 Ilya Verbin <ilya.verbin@intel.com>
19182 Kirill Yukhin <kirill.yukhin@intel.com>
19183 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
19184
19185 * config/i386/sse.md
19186 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
19187 (define_mode_iterator VI48_AVX512BW): New.
19188 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
19189 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
19190 with VI48_AVX2_48_AVX512F): New.
19191 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
19192 with VI2_AVX512VL): Ditto.
19193
19194 2014-08-27 Richard Biener <rguenther@suse.de>
19195
19196 PR middle-end/62239
19197 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
19198 (fold_builtin_3): Do not fold strcat_chk here.
19199 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
19200 from builtins.c.
19201 (gimple_fold_builtin): Fold strcat_chk here.
19202
19203 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
19204
19205 * dwarf2out.h (dwarf2out_decl): Remove prototype.
19206 * dwarf2out.c (dwarf2out_decl): Make static.
19207
19208 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
19209
19210 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
19211
19212 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19213
19214 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
19215 from rtx to rtx_insn *.
19216 (cselib_lookup_from_insn): Likewise for final param.
19217 (cselib_subst_to_values_from_insn): Likewise.
19218 (cselib_add_permanent_equiv): Likewise.
19219
19220 * cselib.c (cselib_current_insn): Likewise for this variable.
19221 (cselib_subst_to_values_from_insn): Likewise for param "insn".
19222 (cselib_lookup_from_insn): Likewise.
19223 (cselib_add_permanent_equiv): Likewise for param "insn" and local
19224 "save_cselib_current_insn".
19225 (cselib_process_insn): Replace use of NULL_RTX with NULL.
19226
19227 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
19228 from rtx to rtx_insn *.
19229
19230 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19231
19232 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
19233 rtx_insn *.
19234
19235 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19236
19237 * df.h (df_dump_insn_problem_function): Strengthen first param of
19238 this callback from const_rtx to const rtx_insn *.
19239 (struct df_insn_info): Strengthen field "insn" from rtx to
19240 rtx_insn *.
19241 (DF_REF_INSN): Eliminate this function, reinstating the older
19242 macro definition.
19243 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
19244 (df_reg_defined): Likewise.
19245 (df_find_use): Likewise.
19246 (df_reg_used): Likewise.
19247 (df_dump_insn_top): Strengthen param 1 from const_rtx to
19248 const rtx_insn *.
19249 (df_dump_insn_bottom): Likewise.
19250 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
19251 (df_insn_debug_regno): Likewise.
19252 (debug_df_insn): Likewise.
19253 (df_rd_simulate_one_insn): Likewise for param 2.
19254 (df_word_lr_simulate_defs): Likewise for param 1.
19255 (df_word_lr_simulate_uses): Likewise.
19256 (df_md_simulate_one_insn): Likewise for param 2.
19257 (df_simulate_find_noclobber_defs): Likewise for param 1.
19258 (df_simulate_find_defs): Likewise.
19259 (df_simulate_defs): Likewise.
19260 (df_simulate_uses): Likewise.
19261 (df_simulate_one_insn_backwards): Likewise for param 2.
19262 (df_simulate_one_insn_forwards): Likewise.
19263 (df_uses_create): Likewise for param 2.
19264 (df_insn_create_insn_record): Likewise for param 1.
19265 (df_insn_delete): Likewise.
19266 (df_insn_rescan): Likewise.
19267 (df_insn_rescan_debug_internal): Likewise.
19268 (df_insn_change_bb): Likewise.
19269 (df_notes_rescan): Likewise.
19270 * rtl.h (remove_death): Likewise for param 2.
19271 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
19272 const rtx_insn *.
19273 * sched-int.h (reemit_notes): Strengthen param from rtx to
19274 rtx_insn *.
19275 * valtrack.h (propagate_for_debug): Likewise for param 1.
19276
19277 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
19278 local "tmp_rtx" from const_rtx to const rtx_insn *.
19279 * combine.c (remove_death): Strengthen param "insn" from rtx to
19280 rtx_insn *.
19281 (move_deaths): Likewise for local "where_dead".
19282 * cse.c (delete_trivially_dead_insns): Introduce local
19283 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
19284 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
19285 rtx_insn *.
19286 (df_reg_defined): Likewise.
19287 (df_find_use): Likewise.
19288 (df_reg_used): Likewise.
19289 (df_dump_insn_problem_data): Strengthen param "insn" from
19290 const_rtx to const rtx_insn *.
19291 (df_dump_insn_top): Likewise.
19292 (df_dump_insn_bottom): Likewise.
19293 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
19294 (df_insn_debug_regno): Likewise.
19295 (debug_df_insn): Likewise.
19296 (DF_REF_INSN): Delete.
19297 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
19298 from rtx to rtx_insn *.
19299 (df_chain_insn_top_dump): Strengthen param "insn" from
19300 const_rtx to const rtx_insn *.
19301 (df_chain_insn_bottom_dump): Likewise.
19302 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
19303 rtx_insn *.
19304 (df_word_lr_simulate_uses): Likewise.
19305 (df_print_note): Likewise.
19306 (df_remove_dead_and_unused_notes): Likewise.
19307 (df_set_unused_notes_for_mw): Likewise.
19308 (df_set_dead_notes_for_mw): Likewise.
19309 (df_create_unused_note): Likewise.
19310 (df_simulate_find_defs): Likewise.
19311 (df_simulate_find_uses): Likewise.
19312 (df_simulate_find_noclobber_defs): Likewise.
19313 (df_simulate_defs): Likewise.
19314 (df_simulate_uses): Likewise.
19315 (df_simulate_one_insn_backwards): Likewise.
19316 (df_simulate_one_insn_forwards): Likewise.
19317 (df_md_simulate_one_insn): Likewise.
19318 * df-scan.c (df_uses_create): Likewise.
19319 (df_insn_create_insn_record): Likewise.
19320 (df_insn_delete): Likewise.
19321 (df_insn_rescan): Likewise.
19322 (df_insn_rescan_debug_internal): Likewise.
19323 (df_insn_change_bb): Likewise.
19324 (df_notes_rescan): Likewise.
19325 (df_refs_add_to_chains): Likewise.
19326 (df_insn_refs_verify): Likewise.
19327 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
19328 when invoking df_insn_delete.
19329 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
19330 (set_unique_reg_note): Add checked cast.
19331 * final.c (cleanup_subreg_operands): Likewise.
19332 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
19333 "insn" from rtx to rtx_insn *.
19334 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
19335 "last" from rtx to rtx_insn *.
19336 * ira-emit.c (change_regs_in_insn): New function.
19337 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
19338 Invoke change_regs_in_insn rather than change_regs.
19339 * ira.c (update_equiv_regs): Strengthen locals "insn",
19340 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
19341 for_each_rtx_in_insn rather than for_each_rtx.
19342 * recog.c (confirm_change_group): Add checked casts.
19343 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
19344 Add checked cast.
19345 (peep2_fill_buffer): Add checked cast.
19346 * rtlanal.c (remove_note): Likewise.
19347 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
19348 locals "next" "end" from rtx to rtx_insn *.
19349
19350 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19351
19352 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
19353 to rtx_insn *.
19354 (struct reg_use_data): Likewise for field "insn".
19355 (insn_cost): Likewise for param.
19356 (real_insn_for_shadow): Likewise for return type and param.
19357 (increase_insn_priority): Likewise for param 1.
19358 (debug_dependencies): Likewise for both params.
19359
19360 * haifa-sched.c (insn_delay): Likewise for param "insn".
19361 (real_insn_for_shadow): Likewise for return type and param "insn".
19362 (update_insn_after_change): Likewise for param "insn".
19363 (recompute_todo_spec): Likewise for param "next" and locals "pro",
19364 "other".
19365 (insn_cost): Likewise for param "insn".
19366 (increase_insn_priority): Likewise.
19367 (calculate_reg_deaths): Likewise.
19368 (setup_insn_reg_pressure_info): Likewise.
19369 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
19370 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
19371 (model_recompute): Likewise.
19372 (must_restore_pattern_p): Likewise for param "next".
19373 (model_excess_cost): Likewise for param "insn".
19374 (queue_remove): Likewise.
19375 (adjust_priority): Likewise for param "prev".
19376 (update_register_pressure): Likewise for param "insn".
19377 (setup_insn_max_reg_pressure): Likewise for local "insn".
19378 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
19379 (model_add_to_schedule): Likewise.
19380 (model_reset_queue_indices): Likewise for local "insn".
19381 (unschedule_insns_until): Strengthen local "recompute_vec" from
19382 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
19383 "con" from rtx to rtx_insn *.
19384 (restore_last_backtrack_point): Likewise for both locals "x". Add
19385 checked casts.
19386 (estimate_insn_tick): Likewise for param "insn".
19387 (commit_schedule): Likewise for params "prev_head", "tail" and
19388 local "x".
19389 (verify_shadows): Likewise for locals "i1", "i2".
19390 (dump_insn_stream): Likewise for params "head", "tail" and locals
19391 "next_tail", "insn".
19392 (schedule_block): Likewise for locals "insn", "x". Add a checked
19393 cast.
19394 (fix_inter_tick): Likewise for params "head", "tail".
19395 (create_check_block_twin): Likewise for local "jump".
19396 (haifa_change_pattern): Likewise for param "insn".
19397 (haifa_speculate_insn): Likewise.
19398 (dump_new_block_header): Likewise for params "head", "tail".
19399 (fix_jump_move): Likewise for param "jump".
19400 (move_block_after_check): Likewise.
19401 (sched_init_insn_luid): Likewise for param "insn".
19402 (sched_init_luids): Likewise for local "insn".
19403 (insn_luid): Likewise for param "insn".
19404 (init_h_i_d): Likewise.
19405 (haifa_init_h_i_d): Likewise for local "insn".
19406 (haifa_init_insn): Likewise for param "insn".
19407 * sched-deps.c (add_dependence): Likewise for local "real_pro",
19408 "other".
19409 (create_insn_reg_use): Likewise for param "insn".
19410 (setup_insn_reg_uses): Likewise. Add a checked cast.
19411 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
19412 "tail" from rtx to rtx_insn *.
19413 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
19414 "insn", "next_tail".
19415
19416 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19417
19418 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
19419 from rtx to rtx_insn *.
19420 (model_add_to_schedule): Likewise for locals "start", "end",
19421 "iter".
19422
19423 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19424
19425 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
19426 rtx_insn *.
19427 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
19428 "to" and locals "insn", "next", "copy". Remove now-redundant
19429 checked cast.
19430
19431 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19432
19433 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
19434 rtx_insn * and param 4 from rtx * to rtx_insn **.
19435 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
19436 param 2 from rtx * to rtx_insn **.
19437
19438 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
19439 rtx_insn * and final param from rtx * to rtx_insn **.
19440
19441 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
19442 from rtx to rtx_insn *.
19443 (try_head_merge_bb): Likewise for both locals named "move_upto".
19444 * df-problems.c (can_move_insns_across): Likewise for params
19445 "from", "to", "across_from", "across_to" and locals "insn",
19446 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
19447 rtx_insn **.
19448 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
19449 from rtx to rtx_insn *.
19450 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
19451 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
19452 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
19453 rtx_insn *.
19454 (noce_try_abs): Likewise.
19455 (noce_get_condition): Likewise for param "jump". Strengthen param
19456 "earliest" from rtx * to rtx_insn **.
19457 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
19458 rtx_insn *.
19459 (find_cond_trap): Likewise.
19460 (dead_or_predicable): Likewise for local "earliest".
19461 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
19462 checked cast.
19463 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
19464 and local "prev". Strengthen param "earliest" from rtx * to
19465 rtx_insn **.
19466 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
19467 Strengthen param "earliest" from rtx * to rtx_insn **.
19468
19469 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19470
19471 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
19472 "to" and local "insn" from rtx to rtx_insn *.
19473
19474 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19475
19476 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
19477 from rtx to rtx_insn *.
19478 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
19479 (code_motion_path_driver): Likewise for local "last_insn".
19480 (simplify_changed_insns): Likewise for local "insn".
19481
19482 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19483
19484 * rtl.h (push_to_sequence): Strengthen param from rtx to
19485 rtx_insn *.
19486 (push_to_sequence2): Likewise for both params.
19487 (delete_insns_since): Likewise for param.
19488 (reorder_insns_nobb): Likewise for all three params.
19489 (set_new_first_and_last_insn): Likewise for both params.
19490
19491 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
19492 rtx_insn *. Remove now-redundant cast.
19493 (set_last_insn): Likewise.
19494
19495 * builtins.c (expand_builtin_return): Strengthen local
19496 "call_fusage" from rtx to rtx_insn *.
19497 * cfgrtl.c (create_basic_block_structure): Likewise for local
19498 "after".
19499 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
19500 "first", "last" and local "insn".
19501 (delete_insns_since): Likewise for param "from".
19502 (reorder_insns_nobb): Likewise for params "from", "to", "after"
19503 and local "x".
19504 (push_to_sequence): Likewise for param "first" and local "last".
19505 (push_to_sequence2): Likewise for params "first" and "last".
19506 * lra.c (emit_add3_insn): Likewise for local "last".
19507 (lra_emit_add): Likewise.
19508 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
19509 "last_insn".
19510 (process_address_1): Likewise for locals "insn", last".
19511 * modulo-sched.c (ps_first_note): Likewise for return type.
19512 * optabs.c (expand_binop_directly): Likewise for param "last".
19513
19514 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19515
19516 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
19517 to rtx_insn*.
19518 * emit-rtl.c (get_last_insn_anywhere): Likewise.
19519
19520 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19521
19522 * function.h (struct sequence_stack): Strengthen fields "first"
19523 and "last" from rtx to rtx_insn *.
19524 (struct emit_status): Likewise for fields "x_first_insn" and
19525 "x_last_insn".
19526
19527 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
19528 (set_first_insn): Add checked cast.
19529 (get_last_insn): Remove now-redundant checked cast.
19530 (set_last_insn): Add checked cast.
19531
19532 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
19533 "saved_first" and "saved_last" from rtx to rtx_insn *.
19534
19535 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19536
19537 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
19538 (unlink_insn_chain): Strengthen both params from rtx to
19539 rtx_insn *.
19540
19541 * cfgrtl.c (cfg_layout_function_header): Likewise for this
19542 variable.
19543 (unlink_insn_chain): Likewise for params "first" and "last".
19544 Remove now-redundant checked cast.
19545 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
19546 (fixup_reorder_chain): Strengthen local "insn" from rtx to
19547 rtx_insn *.
19548 * emit-rtl.c (link_insn_into_chain): Likewise for all three
19549 params.
19550 (add_insn): Likewise for param "insn" and local "prev".
19551 (add_insn_after_nobb): Likewise for both params and local "next".
19552 (add_insn_before_nobb): Likewise for both params and local "prev".
19553 (add_insn_after): Rename param "after" to "uncast_after",
19554 introducing local "after" with another checked cast.
19555 (add_insn_before): Rename params "insn" and "before", giving them
19556 "uncast_" prefixes, adding the old names back using checked casts.
19557 (emit_note_after): Likewise for param "after".
19558 (emit_note_before): Likewise for param "before".
19559 (emit_label): Add a checked cast.
19560
19561 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19562
19563 * cselib.h (cselib_record_sets_hook): Strengthen initial param
19564 "insn" from rtx to rtx_insn *.
19565
19566 * cselib.c (cselib_record_sets_hook): Likewise.
19567
19568 * var-tracking.c (add_with_sets): Likewise, renaming back from
19569 "uncast_insn" to "insn" and eliminating the checked cast from rtx
19570 to rtx_insn *.
19571
19572 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19573
19574 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
19575 and "header_" from rtx to rtx_insn *.
19576 (struct basic_block_d): Likewise for field "head_" within "x"
19577 field of union basic_block_il_dependent.
19578 (BB_HEAD): Drop function...
19579 (SET_BB_HEAD): ...and this function in favor of...
19580 (BB_HEAD): ...reinstate macro.
19581 (BB_END): Drop function...
19582 (SET_BB_END): ...and this function in favor of...
19583 (BB_END): ...reinstate macro.
19584 (BB_HEADER): Drop function...
19585 (SET_BB_HEADER): ...and this function in favor of...
19586 (BB_HEADER): ...reinstate macro.
19587
19588 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
19589 (fix_crossing_unconditional_branches): Likewise.
19590 * caller-save.c (save_call_clobbered_regs): Likewise.
19591 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
19592 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
19593 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
19594 (merge_blocks_move_successor_nojumps): Likewise.
19595 (outgoing_edges_match): Update use of for_each_rtx to
19596 for_each_rtx_in_insn.
19597 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
19598 (expand_gimple_cond): Likewise.
19599 (expand_gimple_tailcall): Likewise.
19600 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
19601 SET_BB_END.
19602 (construct_exit_block): Drop use of SET_BB_END.
19603 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
19604 rtx_insn *.
19605 (delete_insn): Rename param "insn" to "uncast_insn", introducing
19606 a new local "insn" with a checked cast to rtx_insn *. Drop use of
19607 SET_BB_HEAD and SET_BB_END.
19608 (create_basic_block_structure): Drop use of SET_BB_HEAD and
19609 SET_BB_END.
19610 (rtl_delete_block): Drop use of SET_BB_HEAD.
19611 (rtl_split_block): Drop use of SET_BB_END.
19612 (emit_nop_for_unique_locus_between): Likewise.
19613 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
19614 (block_label): Drop use of SET_BB_HEAD.
19615 (fixup_abnormal_edges): Drop use of SET_BB_END.
19616 (record_effective_endpoints): Drop use of SET_BB_HEADER.
19617 (relink_block_chain): Likewise.
19618 (fixup_reorder_chain): Drop use of SET_BB_END.
19619 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
19620 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
19621 rtx_insn **. Drop use of SET_BB_HEADER.
19622 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
19623 SET_BB_HEAD.
19624 (BB_HEAD): Delete this function.
19625 (SET_BB_HEAD): Likewise.
19626 (BB_END): Likewise.
19627 (SET_BB_END): Likewise.
19628 (BB_HEADER): Likewise.
19629 (SET_BB_HEADER): Likewise.
19630 * emit-rtl.c (add_insn_after): Rename param "insn" to
19631 "uncast_insn", adding a new local "insn" and a checked cast to
19632 rtx_insn *. Drop use of SET_BB_END.
19633 (remove_insn): Strengthen locals "next" and "prev" from rtx to
19634 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
19635 (reorder_insns): Drop use of SET_BB_END.
19636 (emit_insn_after_1): Strengthen param "first" and locals "last",
19637 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
19638 (emit_pattern_after_noloc): Add checked cast.
19639 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
19640 (restore_other_notes): Likewise.
19641 (move_insn): Likewise.
19642 (sched_extend_bb): Likewise.
19643 (fix_jump_move): Likewise.
19644 * ifcvt.c (noce_process_if_block): Likewise.
19645 (dead_or_predicable): Likewise.
19646 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
19647 * reg-stack.c (change_stack): Drop use of SET_BB_END.
19648 * sel-sched-ir.c (sel_move_insn): Likewise.
19649 * sel-sched.c (move_nop_to_previous_block): Likewise.
19650
19651 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
19652 SET_BB_END.
19653 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
19654
19655 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19656
19657 * basic-block.h (create_basic_block_structure): Strengthen params
19658 1 "head" and 2 "end" from rtx to rtx_insn *.
19659 * cfgrtl.c (create_basic_block_structure): Likewise.
19660 (rtl_create_basic_block): Update casts from void * to rtx to
19661 rtx_insn *, so that we can pass them as rtx_insn * to
19662 create_basic_block_structure.
19663 * sel-sched-ir.c (sel_create_basic_block): Likewise.
19664
19665 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19666
19667 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
19668 rtx_insn **.
19669 (check_for_inc_dec): Strengthen param "insn" from rtx to
19670 rtx_insn *.
19671
19672 * cselib.h (cselib_process_insn): Likewise.
19673
19674 * cselib.c (cselib_record_sets): Likewise.
19675 (cselib_process_insn): Likewise.
19676
19677 * dse.c (struct insn_info): Likewise for field "insn".
19678 (check_for_inc_dec_1): Likewise for local "insn".
19679 (check_for_inc_dec): Likewise for param "insn".
19680 (scan_insn): Likewise.
19681 (dse_step1): Likewise for local "insn".
19682
19683 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
19684 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
19685
19686 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19687
19688 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
19689 from rtx to rtx_insn *.
19690 (DEP_PRO): Delete this function and...
19691 (SET_DEP_PRO): ...this function in favor of...
19692 (DEP_PRO): ...reinstate this macro.
19693 (DEP_CON): Delete this function and...
19694 (SET_DEP_CON): ...this function in favor of...
19695 (DEP_CON): ...reinstate this old macro.
19696 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
19697 (init_dep): Likewise.
19698 (set_priorities): Likewise for both params.
19699 (sd_copy_back_deps): Likewise for params 1 and 2.
19700
19701 * haifa-sched.c (priority): Likewise for param "insn" and local
19702 "next".
19703 (set_priorities): Likewise for params "head" and "tail" and local
19704 "insn".
19705 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
19706 local "consumer".
19707 (add_to_speculative_block): Add a checked cast.
19708 (create_check_block_twin): Drop use of SET_DEP_CON.
19709 (add_jump_dependencies): Strengthen params "insn" and "jump" from
19710 rtx to rtx_insn *.
19711
19712 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
19713 Drop use of SET_DEP_PRO
19714 (init_dep): Strengthen params "pro" and "con" from rtx to
19715 rtx_insn *.
19716 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
19717 use of SET_DEP_CON.
19718 (DEP_PRO): Delete.
19719 (DEP_CON): Delete.
19720 (SET_DEP_PRO): Delete.
19721 (SET_DEP_CON): Delete.
19722
19723 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19724
19725 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
19726 from rtx to rtx_insn *.
19727 (VINSN_INSN_RTX): Eliminate rvalue function and...
19728 (SET_VINSN_INSN): ...lvalue function in favor of...
19729 (VINSN_INSN_RTX): reinstate this old macro.
19730
19731 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
19732 in favor of VINSN_INSN_RTX.
19733 (VINSN_INSN_RTX): Delete this function.
19734 (SET_VINSN_INSN_RTX): Likewise.
19735
19736 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19737
19738 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
19739 (BND_TO): Delete this function and...
19740 (SET_BND_TO): ...this functions in favor of...
19741 (BND_TO): ...reinstating this macro.
19742 (struct _fence): Strengthen field "executing_insns" from
19743 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
19744 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
19745 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
19746 and param "insn" from rtx to insn_t.
19747 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
19748 rtx_insn *.
19749
19750 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
19751 vec<rtx_insn *> .
19752 (rtx_vec_t): Likewise.
19753 (struct sched_deps_info_def): Strengthen param of "start_insn"
19754 callback from rtx to rtx_insn *. Likewise for param "insn2" of
19755 "note_mem_dep" callback and first param of "note_dep" callback.
19756
19757 * haifa-sched.c (add_to_speculative_block): Strengthen param
19758 "insn" from rtx to rtx_insn *.
19759 (clear_priorities): Likewise.
19760 (calc_priorities): Likewise for local "insn".
19761
19762 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
19763 Remove redundant checked cast.
19764 (haifa_note_mem_dep): Likewise for param "pending_insn".
19765 (haifa_note_dep): Likewise for param "elem".
19766 (note_mem_dep): Likewise for param "e".
19767 (sched_analyze_1): Add checked casts.
19768 (sched_analyze_2): Likewise.
19769
19770 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
19771 from rtx to rtx_insn *.
19772 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
19773 from vec<rtx> * to vec<rtx_insn *> *.
19774
19775 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
19776 scaffolding.
19777 (flist_add): Strengthen param "executing_insns" from
19778 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
19779 (advance_deps_context): Remove now-redundant checked cast.
19780 (init_fences): Replace uses of NULL_RTX with NULL.
19781 (merge_fences): Strengthen params "last_scheduled_insn" and
19782 "sched_next" from rtx to rtx_insn * and "executing_insns" from
19783 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
19784 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
19785 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
19786 an instruction, rather than doing double-duty as a pattern.
19787 (return_nop_to_pool): Update for change of insn_t.
19788 (deps_init_id): Remove now-redundant checked cast.
19789 (struct sched_scan_info_def): Strengthen param of "init_insn"
19790 callback from rtx to insn_t.
19791 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
19792 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
19793 NULL.
19794 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
19795 "end" from rtx to rtx_insn *.
19796 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
19797 (rtx insn_rtx, bool force_unique_p)
19798 (BND_TO): Delete function.
19799 (SET_BND_TO): Delete function.
19800
19801 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
19802 rtx to rtx_insn *.
19803 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
19804 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
19805 rtx to rtx_insn *.
19806 (undo_transformations): Likewise for param "insn".
19807 (update_liveness_on_insn): Likewise.
19808 (compute_live_below_insn): Likewise for param "insn" and local
19809 "succ".
19810 (update_data_sets): Likewise for param "insn".
19811 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
19812 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
19813 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
19814 rtx_insn *.
19815 (move_cond_jump): Likewise for param "insn".
19816 (move_cond_jump): Drop use of SET_BND_TO.
19817 (compute_av_set_on_boundaries): Likewise.
19818 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
19819 (update_and_record_unavailable_insns): Strengthen local "bb_end"
19820 from rtx to rtx_insn *.
19821 (maybe_emit_renaming_copy): Likewise for param "insn".
19822 (maybe_emit_speculative_check): Likewise.
19823 (handle_emitting_transformations): Likewise.
19824 (remove_insn_from_stream): Likewise.
19825 (code_motion_process_successors): Strengthen local "succ" from rtx
19826 to insn_t.
19827
19828 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19829
19830 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
19831 ilist_t, not _xlist_t;
19832 (ILIST_INSN): Define in terms of new union field "insn".
19833 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
19834 _XLIST_NEXT.
19835 (struct _list_node): Add new field "insn" to the union, of type
19836 insn_t.
19837 (ilist_add): Replace macro with an inline function, requiring an
19838 insn_t.
19839 (ilist_remove): Define this macro directly in terms of
19840 _list_remove, rather than indirectly via _xlist_remove.
19841 (ilist_clear): Likewise, in terms of _list_clear rather than
19842 _xlist_clear.
19843 (ilist_is_in_p): Replace macro with an inline function, requiring
19844 an insn_t.
19845 (_list_iter_cond_insn): New function.
19846 (ilist_iter_remove): Define this macro directly in terms of
19847 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
19848 (ilist_iterator): Define directly in terms of _list_iterator
19849 rather than indirectly through _xlist_iterator.
19850 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
19851 than in terms of _FOR_EACH_X.
19852 (FOR_EACH_INSN_1): Likewise.
19853
19854 2014-08-26 Joseph Myers <joseph@codesourcery.com>
19855
19856 PR target/60606
19857 PR target/61330
19858 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
19859 DECL_HARD_REGISTER and return for invalid register specifications.
19860 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
19861 DECL_HARD_REGISTER, call expand_one_error_var.
19862 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
19863 CC_REGNUM with non-MODE_CC modes.
19864 (arm_regno_class): Return NO_REGS for PC_REGNUM.
19865
19866 2014-08-26 Marek Polacek <polacek@redhat.com>
19867
19868 PR c/61271
19869 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
19870
19871 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
19872
19873 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
19874 qi cost; add di cost.
19875 (cortexa57_addrcost_table): Likewise.
19876
19877 2014-08-26 Marek Polacek <polacek@redhat.com>
19878
19879 PR c/61271
19880 * expr.c (is_aligning_offset): Remove logical not.
19881
19882 2014-08-26 Marek Polacek <polacek@redhat.com>
19883
19884 PR c/61271
19885 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
19886 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
19887
19888 2014-08-26 Richard Biener <rguenther@suse.de>
19889
19890 PR tree-optimization/62175
19891 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
19892 expand possibly trapping operations.
19893
19894 2014-08-26 David Malcolm <dmalcolm@redhat.com>
19895
19896 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
19897 "insn" from rtx to rtx_insn *.
19898 (permute_load): Likewise for param "insn".
19899 (permute_store): Likewise.
19900 (handle_special_swappables): Likewise for local "insn".
19901 (replace_swap_with_copy): Likewise for locals "insn" and
19902 "new_insn".
19903 (rs6000_analyze_swaps): Likewise for local "insn".
19904
19905 2014-08-25 David Malcolm <dmalcolm@redhat.com>
19906
19907 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
19908 to rtx_insn *.
19909
19910 2014-08-25 David Malcolm <dmalcolm@redhat.com>
19911
19912 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
19913 "note_list" from rtx to rtx_insn *.
19914 (BB_NOTE_LIST): Replace this function and...
19915 (SET_BB_NOTE_LIST): ...this function with...
19916 (BB_NOTE_LIST): ...the former macro implementation.
19917
19918 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
19919 local "from_start" from rtx to rtx_insn *. Strengthen param
19920 "to_endp" from rtx * to rtx_insn **.
19921
19922 * haifa-sched.c (concat_note_lists): Likewise.
19923 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
19924 BB_NOTE_LIST.
19925 (sel_restore_notes): Likewise.
19926 (move_bb_info): Likewise.
19927 (BB_NOTE_LIST): Delete this function.
19928 (SET_BB_NOTE_LIST): Delete this function.
19929 * sel-sched.c (create_block_for_bookkeeping): Eliminate
19930 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
19931
19932 2014-08-25 David Malcolm <dmalcolm@redhat.com>
19933
19934 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
19935 from rtx * to rtx_insn **.
19936 (reorder2): Likewise.
19937 (dependencies_evaluation_hook): Strengthen params "head", "tail"
19938 from rtx to rtx_insn *.
19939
19940 * doc/tm.texi: Update mechanically for above change to target.def.
19941
19942 * sched-int.h (note_list): Strengthen this variable from rtx to
19943 rtx_insn *.
19944 (remove_notes): Likewise for both params.
19945 (restore_other_notes): Likewise for return type and first param.
19946 (struct ready_list): Strengthen field "vec" from rtx * to
19947 rtx_insn **.
19948 (struct dep_replacement): Strenghten field "insn" from rtx to
19949 rtx_insn *.
19950 (struct deps_desc): Likewise for fields "last_debug_insn",
19951 "last_args_size".
19952 (struct haifa_sched_info): Likewise for callback field
19953 "can_schedule_ready_p"'s param, for first param of "new_ready"
19954 callback field, for both params of "rank" callback field, for
19955 first field of "print_insn" callback field (with a const), for
19956 both params of "contributes_to_priority" callback, for param
19957 of "insn_finishes_block_p" callback, for fields "prev_head",
19958 "next_tail", "head", "tail", for first param of "add_remove_insn"
19959 callback, for first param of "begin_schedule_ready" callback, for
19960 both params of "begin_move_insn" callback, and for second param
19961 of "advance_target_bb" callback.
19962 (add_dependence): Likewise for params 1 and 2.
19963 (sched_analyze): Likewise for params 2 and 3.
19964 (deps_analyze_insn): Likewise for param 2.
19965 (ready_element): Likewise for return type.
19966 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
19967 (try_ready): Strenghten param from rtx to rtx_insn *.
19968 (sched_emit_insn): Likewise for return type.
19969 (record_delay_slot_pair): Likewise for params 1 and 2.
19970 (add_delay_dependencies): Likewise for param.
19971 (contributes_to_priority): Likewise for both params.
19972 (find_modifiable_mems): Likewise.
19973
19974 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
19975 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
19976 "first_older_only_insn" from rtx to rtx_insn *.
19977 (arm_sched_reorder): Strengthen param "ready" from rtx * to
19978 rtx_insn **.
19979
19980 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
19981 "last_scheduled_iter0" from rtx to rtx_insn *.
19982 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
19983 (c6x_sched_reorder_1): Strengthen param "ready" and locals
19984 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
19985 "insn" from rtx to rtx_insn *.
19986 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
19987 rtx_insn **.
19988 (c6x_sched_reorder2): Strengthen param "ready" and locals
19989 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
19990 "insn" from rtx to rtx_insn *.
19991 (c6x_variable_issue): Add a checked cast when assigning from insn
19992 to ss.last_scheduled_iter0.
19993 (split_delayed_branch): Strengthen param "insn" and local "i1"
19994 from rtx to rtx_insn *.
19995 (split_delayed_nonbranch): Likewise.
19996 (undo_split_delayed_nonbranch): Likewise for local "insn".
19997 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
19998 "entry_after", "end_packet", "head_insn", "tail_insn",
19999 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
20000 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
20001 to rtx_insn **. Remove now-redundant checked cast on last_insn,
20002 but add a checked cast on loop->start_label. Consolidate calls to
20003 avoid assigning result of gen_spkernel to "insn", now an
20004 rtx_insn *.
20005
20006 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
20007 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
20008 rtx to rtx_insn *.
20009 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
20010 rtx_insn **. Strengthen locals "top", "next" from rtx to
20011 rtx_insn *.
20012 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
20013 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
20014 (add_parameter_dependencies): Strengthen params "call", "head" and
20015 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
20016 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
20017 (add_dependee_for_func_arg): Likewise for param "arg" and local
20018 "insn".
20019 (ix86_dependencies_evaluation_hook): Likewise for params "head",
20020 "tail" and locals "insn", "first_arg".
20021
20022 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
20023 for params "head", "tail" and locals "insn", "next", "next_tail".
20024 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
20025 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
20026 "insn", "lowest", "highest" from rtx to rtx_insn *.
20027 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
20028 rtx_insn **.
20029 (ia64_sched_reorder2): Likewise.
20030
20031 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
20032 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
20033 from rtx * to rtx_insn **.
20034 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
20035 rtx_insn **.
20036 (mep_print_sched_insn): Strengthen param "insn" from rtx to
20037 rtx_insn *.
20038 (mep_sched_reorder): Strengthen param "ready" from rtx * to
20039 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
20040 to rtx_insn *.
20041
20042 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
20043 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
20044 to rtx_insn *.
20045 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
20046 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
20047 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
20048 rtx_insn **.
20049 (vr4130_reorder): Likewise.
20050 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
20051 rtx to rtx_insn *.
20052 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
20053 rtx_insn **.
20054 (mips_sched_reorder): Likewise.
20055 (mips_sched_reorder2): Likewise.
20056
20057 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
20058
20059 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
20060 Strengthen local "tmp" from rtx to rtx_insn *.
20061 (rs6000_sched_reorder2): Likewise.
20062
20063 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
20064 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
20065 (s390_sched_reorder): Strengthen param "ready" from rtx * to
20066 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
20067
20068 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
20069 "tmp2" from rtx to rtx_insn *.
20070 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
20071 Strengthen local "insn" from rtx to rtx_insn *.
20072 (ready_reorder): Strengthen param "ready" from rtx * to
20073 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
20074 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
20075 (sh_reorder2): Likewise.
20076
20077 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
20078 local "insn" from rtx to rtx_insn *.
20079
20080 * haifa-sched.c (note_list): Strengthen this variable from rtx to
20081 rtx_insn *.
20082 (scheduled_insns): Strengthen this variable from vec<rtx> to
20083 vec<rtx_insn *>.
20084 (set_modulo_params): Likewise for locals "i1", "i2".
20085 (record_delay_slot_pair): Likewise for params "i1", "i2".
20086 (add_delay_dependencies): Likewise for param "insn".
20087 (cond_clobbered_p): Likewise.
20088 (recompute_todo_spec): Likewise for local "prev".
20089 (last_scheduled_insn): Likewise for this variable.
20090 (nonscheduled_insns_begin): Likewise.
20091 (model_set_excess_costs): Strengthen param "insns" from rtx * to
20092 rtx_insn **.
20093 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
20094 rtx_insn *.
20095 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
20096 Strengthen local "insn" from rtx to rtx_insn *.
20097 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
20098 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
20099 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
20100 (ready_remove_first): Likewise for return type and local "t".
20101 (ready_element): Likewise for return type.
20102 (ready_remove): Likewise for return type and local "t".
20103 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
20104 (check_clobbered_conditions): Strengthen local "x" from rtx to
20105 rtx_insn *, adding a checked cast.
20106 (schedule_insn): Likewise for param "insn".
20107 (remove_notes): Likewise for params "head", "tail" and locals
20108 "next_tail", "insn", "next".
20109 (struct haifa_saved_data): Likewise for fields
20110 "last_scheduled_insn", "nonscheduled_insns_begin".
20111 (save_backtrack_point): Update for change to field "vec" of
20112 struct ready_list.
20113 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
20114 rtx_insn **.
20115 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
20116 from rtx to rtx_insn *
20117 (resolve_dependencies): Strengthen param "insn" from rtx to
20118 rtx_insn *
20119 (restore_other_notes): Likewise for return type, for param "head"
20120 and local "note_head".
20121 (undo_all_replacements): Likewise for local "insn".
20122 (first_nonscheduled_insn): Likewise for return type and local "insn".
20123 (queue_to_ready): Likewise for local "insn", adding checked casts.
20124 (early_queue_to_ready): Likewise for local "insn".
20125 (debug_ready_list_1): Strengthen local "p" from rtx * to
20126 rtx_insn **.
20127 (move_insn): Strengthen param "insn" and local "note" from rtx to
20128 rtx_insn *
20129 (insn_finishes_cycle_p): Likewise for param "insn".
20130 (max_issue): Likewise for local "insn".
20131 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
20132 to rtx_insn **.
20133 (commit_schedule): Strengthen param "prev_head" and local "insn"
20134 from rtx to rtx_insn *
20135 (prune_ready_list): Likewise for local "insn".
20136 (schedule_block): Likewise for locals "prev_head", "head", "tail",
20137 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
20138 (set_priorities): Likewise for local "prev_head".
20139 (try_ready): Likewise for param "next".
20140 (fix_tick_ready): Likewise.
20141 (change_queue_index): Likewise.
20142 (sched_extend_ready_list): Update for change to field "vec" of
20143 struct ready_list.
20144 (generate_recovery_code): Strengthen param "insn" from rtx to
20145 rtx_insn *.
20146 (begin_speculative_block): Likewise.
20147 (create_check_block_twin): Likewise for param "insn" and locals
20148 "label", "check", "twin". Introduce local "check_pat" to avoid
20149 "check" being used as a plain rtx before being used as an insn.
20150 (fix_recovery_deps): Add a checked cast to rtx_insn * when
20151 extracting elements from ready_list.
20152 (sched_remove_insn): Strengthen param "insn" from rtx to
20153 rtx_insn *.
20154 (sched_emit_insn): Likewise for return type.
20155 (ready_remove_first_dispatch): Likewise for return type and local
20156 "insn".
20157
20158 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
20159
20160 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
20161 const rtx_insn *.
20162
20163 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
20164 from rtx to rtx_insn *.
20165 (add_dependence_list): Likewise for param "insn". Add a checked
20166 cast.
20167 (add_dependence_list_and_free): Strengthen param "insn" from rtx
20168 to rtx_insn *. Strengthen param "list_p" from rtx * to
20169 rtx_insn **.
20170 (chain_to_prev_insn): Strengthen param "insn" and locals
20171 "prec_nonnote", "i" from rtx to rtx_insn *.
20172 (flush_pending_lists): Likewise for param "insn".
20173 (cur_insn): Likewise for this variable.
20174 (haifa_start_insn): Add a checked cast.
20175 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
20176 (sched_analyze_reg): Likewise for param "insn".
20177 (sched_analyze_1): Likewise.
20178 (sched_analyze_2): Likewise. Add checked casts.
20179 (sched_analyze_insn): Likewise. Also for local "prev".
20180 (deps_analyze_insn): Likewise for param "insn".
20181 (sched_analyze): Likewise for params "head", "tail" and local "insn".
20182 (add_dependence_1): Likewise for params "insn", "elem".
20183 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
20184 (parse_add_or_inc): Likewise for param "insn".
20185 (find_inc): Likewise for local "inc_cand".
20186 (find_modifiable_mems): Likewise for params "head", "tail" and
20187 locals "insn", "next_tail".
20188
20189 * sched-ebb.c (init_ready_list): Likewise for local "insn".
20190 (begin_schedule_ready): Likewise for param "insn".
20191 (begin_move_insn): Likewise for params "insn" and "last".
20192 (ebb_print_insn): Strengthen param "insn" from const_rtx to
20193 const rtx_insn *.
20194 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
20195 (ebb_contributes_to_priority): Likewise for params "next", "insn".
20196 (ebb_add_remove_insn): Likewise for param "insn".
20197 (advance_target_bb): Likewise.
20198
20199 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
20200 "insn".
20201 (check_live): Likewise for param "insn".
20202 (init_ready_list): Likewise for local "insn".
20203 (can_schedule_ready_p): Likewise for param "insn".
20204 (begin_schedule_ready): Likewise.
20205 (new_ready): Likewise for param "next".
20206 (rgn_print_insn): Likewise for param "insn".
20207 (rgn_rank): Likewise for params "insn1", "insn2".
20208 (contributes_to_priority): Likewise for params "next", "insn".
20209 (rgn_insn_finishes_block_p): Likewise for param "insn".
20210 (add_branch_dependences): Likewise for params "head", "tail" and
20211 locals "insn", "last".
20212 (rgn_add_remove_insn): Likewise for param "insn".
20213 (advance_target_bb): Likewise.
20214
20215 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
20216 const_rtx to const rtx_insn *.
20217
20218 * sel-sched-dump.h (sel_print_insn): Likewise.
20219
20220 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
20221 (deps_init_id): Likewise.
20222
20223 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
20224 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
20225 rtx_insn **.
20226
20227 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20228
20229 * output.h (final_start_function): Strengthen param 1 from rtx to
20230 rtx_insn *.
20231
20232 * final.c (final_start_function): Likewise, renaming back from
20233 "uncast_first" to "first", and dropping the checked cast from rtx
20234 to rtx_insn *.
20235
20236 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20237
20238 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
20239 * final.c (final): Likewise. Rename param back from
20240 "uncast_first" to "first" and eliminate the checked cast from rtx
20241 to rtx_insn *.
20242
20243 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20244
20245 * output.h (shorten_branches): Strengthen param from rtx to
20246 rtx_insn *.
20247
20248 * final.c (shorten_branches): Likewise, renaming param back from
20249 "uncast_first" to "first", and dropping the checked cast from rtx
20250 to rtx_insn *.
20251
20252 * genattr.c (gen_attr): Likewise when writing out the prototype of
20253 shorten_branches.
20254
20255 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20256
20257 * sched-int.h (struct haifa_sched_info): Strengthen fields
20258 "prev_head" and "next_tail" from rtx to rtx_insn *.
20259
20260 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20261
20262 * rtl.h (rtx_jump_table_data::get_labels): New method.
20263 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
20264 with use of the new rtx_jump_table_data::get_labels method.
20265 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
20266 to rtx_jump_table_data *. Simplify by using get_labels method.
20267 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
20268 a dyn_cast, introducing local "table", using it to replace
20269 label-lookup logic with a get_labels method call.
20270 (patch_jump_insn): Simplify using get_labels method.
20271 * dwarf2cfi.c (create_trace_edges): Likewise.
20272 * rtlanal.c (label_is_jump_target_p): Likewise.
20273
20274 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20275
20276 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
20277 to rtx_insn *.
20278
20279 * emit-rtl.c (unshare_all_rtl_1): Likewise.
20280 (unshare_all_rtl_again): Likewise, also for local "p".
20281
20282 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20283
20284 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
20285 to rtx_insn *.
20286 * cfgrtl.c (delete_insn_and_edges): Likewise.
20287
20288 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20289
20290 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
20291 from rtx to rtx_insn *.
20292
20293 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
20294
20295 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20296
20297 * function.c (thread_prologue_and_epilogue_insns): Likewise for
20298 locals "returnjump", "epilogue_end", "insn", "next".
20299
20300 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
20301 "returnjump" from rtx * to rtx_insn **.
20302 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
20303
20304 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20305
20306 * basic-block.h (struct edge_def). Strengthen "r" within
20307 union edge_def_insns from rtx to rtx_insn *.
20308
20309 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
20310 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
20311 rtx_insn *.
20312 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
20313 from rtx to rtx_insn *.
20314 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
20315 rtx_insn *.
20316 * postreload-gcse.c (reg_killed_on_edge): Likewise.
20317 (reg_used_on_edge): Likewise.
20318 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
20319 (gt_pch_nx): New overload for rtx_insn *&.
20320 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
20321 from rtx to rtx_insn *.
20322
20323 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20324
20325 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
20326 from rtx to rtx_insn *.
20327 (BB_FOOTER): Replace function with access macro.
20328 (SET_BB_FOOTER): Delete.
20329
20330 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
20331 with BB_FOOTER.
20332 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
20333 (emit_barrier_after_bb): Likewise.
20334 (record_effective_endpoints): Likewise.
20335 (relink_block_chain): Likewise.
20336 (fixup_fallthru_exit_predecessor): Likewise.
20337 (cfg_layout_duplicate_bb): Likewise.
20338 (cfg_layout_split_block): Likewise.
20339 (cfg_layout_delete_block): Likewise.
20340 (cfg_layout_merge_blocks): Likewise.
20341 (BB_FOOTER): Delete function.
20342 (SET_BB_FOOTER): Delete function.
20343 * combine.c (update_cfg_for_uncondjump): Replace uses of
20344 SET_BB_FOOTER with BB_FOOTER.
20345
20346 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20347
20348 * except.h (struct eh_landing_pad_d): Strengthen field
20349 "landing_pad" from rtx to rtx_code_label *.
20350
20351 * except.c (sjlj_emit_dispatch_table): Likewise for param
20352 "dispatch_label"
20353 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
20354
20355 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20356
20357 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
20358 first param from rtx to rtx_insn *.
20359 * config/xtensa/xtensa.c (struct machine_function): Likewise for
20360 field "set_frame_ptr_insn".
20361 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
20362 "csend" from rtx to rtx_code_label *.
20363 (xtensa_expand_atomic): Likewise for local "csloop".
20364 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
20365 rtx_insn *.
20366 (xtensa_call_tls_desc): Likewise for return type and locals
20367 "call_insn", "insns".
20368 (xtensa_legitimize_tls_address): Likewise for local "insns".
20369 (xtensa_expand_prologue): Likewise for locals "insn", "first".
20370
20371 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20372
20373 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
20374 first param from rtx to rtx_insn *.
20375 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
20376 "insn".
20377
20378 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20379
20380 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
20381 Strengthen param 1 from rtx to rtx_insn *.
20382 (tilepro_output_cbranch): Likewise.
20383 (tilepro_adjust_insn_length): Likewise.
20384 (tilepro_final_prescan_insn): Likewise for sole param.
20385
20386 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
20387 Likewise for local "last".
20388 (cbranch_predicted_p): Likewise for param "insn".
20389 (tilepro_output_simple_cbranch_with_opcode): Likewise.
20390 (tilepro_output_cbranch_with_opcode): Likewise.
20391 (tilepro_output_cbranch): Likewise.
20392 (frame_emit_load): Likewise for return type and locals "seq",
20393 "insn".
20394 (emit_sp_adjust): Likewise for return type and local "insn".
20395 (tilepro_expand_epilogue): Likewise for locals "last_insn",
20396 "insn".
20397 (tilepro_adjust_insn_length): Likewise for param "insn".
20398 (next_insn_to_bundle): Likewise for return type and params
20399 "r", "end".
20400 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
20401 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
20402 local "new_insns".
20403 (match_addli_pcrel): Likewise for param "insn".
20404 (replace_addli_pcrel): Likewise.
20405 (match_auli_pcrel): Likewise.
20406 (replace_auli_pcrel): Likewise.
20407 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
20408 "next_insn".
20409 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
20410 "queue", "next_queue", "prev".
20411 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
20412 (tilepro_final_prescan_insn): Likewise for param "insn".
20413
20414 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20415
20416 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
20417 Strengthen param 1 from rtx to rtx_insn *.
20418 (tilegx_output_cbranch): Likewise.
20419 (tilegx_adjust_insn_length): Likewise.
20420 (tilegx_final_prescan_insn): Likewise for sole param.
20421
20422 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
20423 or local "last".
20424 (cbranch_predicted_p): Likewise for param "insn".
20425 (tilegx_output_simple_cbranch_with_opcode): Likewise.
20426 (tilegx_output_cbranch_with_opcode): Likewise.
20427 (tilegx_output_cbranch): Likewise.
20428 (frame_emit_load): Likewise for return type.
20429 (set_frame_related_p): Likewise for locals "seq", "insn".
20430 (emit_sp_adjust): Likewise for return type, and for local "insn".
20431 Introduce local "pat" for use in place of "insn" where the latter
20432 isn't an instruction.
20433 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
20434 from rtx to rtx_insn *.
20435 (tilegx_adjust_insn_length): Likewise for param "insn".
20436 (next_insn_to_bundle): Likewise for return type and params "r" and
20437 "end".
20438 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
20439 "end".
20440 (replace_insns): Likewise for params "old_insn", "new_insns".
20441 (replace_mov_pcrel_step1): Likewise for param "insn" and local
20442 "new_insns".
20443 (replace_mov_pcrel_step2): Likewise.
20444 (replace_mov_pcrel_step3): Likewise.
20445 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
20446 "next_insn".
20447 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
20448 "queue", "next_queue", "prev".
20449 (tilegx_output_mi_thunk): Likewise for local "insn".
20450 (tilegx_final_prescan_insn): Likewise for param "insn".
20451
20452 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20453
20454 * config/spu/spu.c (frame_emit_store): Strengthen return type from
20455 rtx to rtx_insn *.
20456 (frame_emit_load): Likewise.
20457 (frame_emit_add_imm): Likewise, also for local "insn".
20458 (spu_expand_prologue): Likewise for local "insn".
20459 (struct spu_bb_info): Likewise for field "prop_jump".
20460 (emit_nop_for_insn): Likewise for param "insn" and local
20461 "new_insn".
20462 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
20463 "hbr_insn".
20464 (spu_emit_branch_hint): Likewise for params "before", "branch" and
20465 locals "hint", "insn".
20466 (get_branch_target): Likewise for param "branch".
20467 (insn_clobbers_hbr): Likewise for param "insn".
20468 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
20469 locals "insn", "before_4", "before_16".
20470 (insert_hbrp): Likewise for local "insn".
20471 (spu_machine_dependent_reorg): Likewise for locals "branch",
20472 "insn", "next", "bbend".
20473 (uses_ls_unit): Likewise for param "insn".
20474 (get_pipe): Likewise.
20475 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
20476 introducing a checked cast.
20477 (spu_sched_adjust_cost): Likewise for params "insn" and
20478 "dep_insn".
20479 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
20480 (spu_sms_res_mii): Likewise.
20481
20482 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20483
20484 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
20485 from rtx to rtx_insn *.
20486 (output_cbranch): Likewise for param 6.
20487 (output_return): Likewise for param 1.
20488 (output_sibcall): Likewise.
20489 (output_v8plus_shift): Likewise.
20490 (output_v8plus_mult): Likewise.
20491 (output_v9branch): Likewise for param 7.
20492 (output_cbcond): Likewise for param 3.
20493
20494 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
20495 for local "insn".
20496 (sparc_legitimize_pic_address): Likewise.
20497 (sparc_emit_call_insn): Likewise.
20498 (emit_save_or_restore_regs): Likewise.
20499 (emit_window_save): Likewise for return type and local "insn".
20500 (sparc_expand_prologue): Likewise for local "insn".
20501 (sparc_flat_expand_prologue): Likewise.
20502 (output_return): Likewise for param "insn".
20503 (output_sibcall): Likewise for param "insn" and local "delay".
20504 (output_ubranch): Likewise for param "insn".
20505 (output_cbranch): Likewise.
20506 (output_cbcond): Likewise.
20507 (output_v9branch): Likewise.
20508 (output_v8plus_shift): Likewise.
20509 (sparc_output_mi_thunk): Likewise for local "insn".
20510 (get_some_local_dynamic_name): Likewise.
20511 (output_v8plus_mult): Likewise for param "insn".
20512
20513 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20514
20515 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
20516 from rtx to rtx_insn *.
20517 (output_branchy_insn): Likewise for param 3.
20518 (output_far_jump): Likewise for param 1.
20519 (final_prescan_insn): Likewise.
20520 (sh_insn_length_adjustment): Likewise for sole param.
20521
20522 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
20523 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
20524 rtx_code_label *.
20525 (sh_emit_compare_and_set): Likewise for local "lab".
20526 (output_far_jump): Strengthen param "insn" and local "prev" from
20527 rtx to rtx_insn *.
20528 (output_branchy_insn): Likewise for param "insn" and local
20529 "next_insn".
20530 (output_ieee_ccmpeq): Likewise for param "insn".
20531 (struct label_ref_list_d): Strengthen field "label" from rtx to
20532 rtx_code_label *.
20533 (pool_node): Likewise.
20534 (pool_window_label): Likewise for this global.
20535 (add_constant): Likewise for return type and locals "lab", "new_rtx".
20536 (dump_table): Strengthen params "start", "barrier" and local
20537 "scan" from rtx to rtx_insn *.
20538 (broken_move): Likewise for param "insn".
20539 (untangle_mova): Likewise for params "first_mova" and "new_mova".
20540 Strengthen param "first_mova" from rtx * to rtx_insn **.
20541 (mova_p): Likewise for param "insn".
20542 (fixup_mova): Likewise for param "mova".
20543 (find_barrier): Likewise for return type, params "mova" and
20544 "from", and locals "barrier_before_mova", "found_barrier",
20545 "good_barrier", "orig", "last_symoff", "next". Strengthen local
20546 "label" from rtx to rtx_code_label *.
20547 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
20548 rtx to rtx_insn *.
20549 (sh_reorg): Likewise for locals "link", "scan", "barrier".
20550 (split_branches): Likewise for param "first" and local "insn".
20551 (final_prescan_insn): Likewise for param "insn".
20552 (sequence_insn_p): Likewise for locals "prev", "next".
20553 (sh_insn_length_adjustment): Likewise for param "insn".
20554 (sh_can_redirect_branch): Likewise for local "insn".
20555 (find_r0_life_regions): Likewise for locals "end", "insn".
20556 (sh_output_mi_thunk): Likewise for local "insns".
20557
20558 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20559
20560 * config/score/score.c (score_output_mi_thunk): Strengthen local
20561 "insn" from rtx to rtx_insn *.
20562 (score_prologue): Likewise.
20563
20564 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20565
20566 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
20567 1 from rtx to rtx_insn *.
20568 (s390_emit_jump): Likewise for return type.
20569 (s390_emit_call): Likewise.
20570 (s390_load_got): Likewise.
20571
20572 * config/s390/s390.c (last_scheduled_insn): Likewise for this
20573 variable.
20574 (s390_match_ccmode): Likewise for param "insn".
20575 (s390_emit_jump): Likewise for return type.
20576 (s390_split_branches): Likewise for local "label".
20577 (struct constant): Strengthen field "label" from rtx to
20578 rtx_code_label *.
20579 (struct constant_pool): Likewise for field "label". Strengthen
20580 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
20581 rtx_insn *.
20582 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
20583 insns.
20584 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
20585 (s390_end_pool): Likewise.
20586 (s390_dump_pool): Likewise for local "insn".
20587 (s390_mainpool_start): Likewise.
20588 (s390_chunkify_start): Likewise.
20589 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
20590 with insns. Strengthen locals "label", "jump", "barrier", "next",
20591 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
20592 (s390_chunkify_finish): Strengthen local "insn" from rtx to
20593 rtx_insn *.
20594 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
20595 "jump", "label", "next_insn".
20596 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
20597 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
20598 "tbegin_insn".
20599 (s390_load_got): Likewise for return type and local "insns".
20600 (s390_save_gprs_to_fprs): Likewise for local "insn".
20601 (s390_restore_gprs_from_fprs): Likewise.
20602 (pass_s390_early_mach::execute): Likewise.
20603 (s390_emit_prologue): Likewise for local "insns".
20604 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
20605 rtx_code_label *.
20606 (s390_emit_call): Strengthen return type and local "insn" from
20607 rtx to rtx_insn *.
20608 (s390_emit_tpf_eh_return): Likewise for local "insn".
20609 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
20610 "next_insn", introducing locals "s_pat", "rpat" to allow this.
20611 (s390_fix_long_loop_prediction): Likewise for param "insn" and
20612 local "cur_insn".
20613 (s390_non_addr_reg_read_p): Likewise for param "insn".
20614 (find_cond_jump): Likewise for return type and param "insn".
20615 (s390_swap_cmp): Likewise for param "insn".
20616 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
20617 "prev_insn", "next_insn".
20618 (s390_reorg): Likewise for locals "insn", "target".
20619 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
20620 (s390_sched_variable_issue): For now, rename param "insn" to
20621 "uncast_insn", introducing a checked cast.
20622 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
20623 insn.
20624 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
20625 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
20626
20627 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20628
20629 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
20630 param from rtx to rtx_insn *.
20631 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
20632
20633 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20634
20635 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
20636 4 from rtx to rtx_insn *.
20637 (rs6000_final_prescan_insn): Likewise for first param.
20638 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
20639 local "insn".
20640 (rs6000_get_some_local_dynamic_name): Likewise.
20641 (output_cbranch): Likewise for param "insn".
20642 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
20643 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
20644 (rs6000_emit_allocate_stack): Likewise for local "insn".
20645 (load_cr_save): Likewise.
20646 (restore_saved_cr): Likewise.
20647 (restore_saved_lr): Likewise.
20648 (emit_cfa_restores): Likewise.
20649 (rs6000_output_function_epilogue): Likewise for locals "insn" and
20650 "deleted_debug_label".
20651 (rs6000_output_mi_thunk): Likewise for local "insn".
20652 (rs6000_final_prescan_insn): Likewise for param "insn".
20653
20654 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20655
20656 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
20657 Strengthen param "insn" from rtx to rtx_insn *.
20658 * config/picochip/picochip.c (picochip_current_prescan_insn):
20659 Likewise for this variable.
20660 (picochip_final_prescan_insn): Likewise for param "insn".
20661
20662 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20663
20664 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
20665 from rtx to rtx_insn *.
20666 (pa_output_indirect_call): Likewise.
20667 (pa_adjust_insn_length): Likewise.
20668 (pa_attr_length_millicode_call): Likewise.
20669 (pa_attr_length_call): Likewise.
20670 (pa_attr_length_indirect_call): Likewise.
20671
20672 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
20673 "insn".
20674 (pa_attr_length_millicode_call): Likewise.
20675 (pa_attr_length_call): Likewise.
20676 (pa_output_call): Likewise.
20677 (pa_attr_length_indirect_call): Likewise.
20678 (pa_output_indirect_call): Likewise.
20679
20680 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20681
20682 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
20683 Strengthen first param from rtx to rtx_insn *.
20684 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
20685 param "insn".
20686
20687 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20688
20689 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
20690 type from rtx to rtx_insn *.
20691 (mips_expand_call): Likewise.
20692 (mips_adjust_insn_length): Likewise for first param.
20693 (mips_output_conditional_branch): Likewise.
20694 (mips_output_order_conditional_branch): Likewise.
20695 (mips_final_prescan_insn): Likewise.
20696
20697 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
20698 rtx_insn * for the SEQUENCE case.
20699 (SEQ_END): Likewise.
20700 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
20701 (mips_emit_call_insn): Likewise, also for local "insn".
20702 (mips16_gp_pseudo_reg): Likewise for local "scan".
20703 (mips16_build_call_stub): Likewise for return type and for local
20704 "insn". Introduce a new local "pattern" so that "insn" can indeed
20705 be an insn.
20706 (mips_expand_call): Strengthen return type and local "insn" from
20707 rtx to rtx_insn *.
20708 (mips_block_move_loop): Strengthen local "label" from rtx to
20709 rtx_code_label *.
20710 (mips_expand_synci_loop): Likewise for locals "label",
20711 "end_label".
20712 (mips_set_frame_expr): Strengthen local "insn" from rtx to
20713 rtx_insn *.
20714 (mips16e_collect_argument_saves): Likewise for locals "insn",
20715 "next".
20716 (mips_find_gp_ref): Likewise for param of callback for "pred"
20717 param, and for local "insn".
20718 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
20719 (mips_insn_has_flexible_gp_ref_p): Likewise.
20720 (mips_epilogue_emit_cfa_restores): Likewise for return type and
20721 local "insn".
20722 (mips_epilogue_set_cfa): Likewise for local "insn".
20723 (mips_expand_epilogue): Likewise.
20724 (mips_adjust_insn_length): Likewise for param "insn".
20725 (mips_output_conditional_branch): Likewise.
20726 (mips_output_order_conditional_branch): Likewise.
20727 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
20728 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
20729 "falu2_turn_enabled_insn".
20730 (mips_builtin_branch_and_move): Strengthen locals "true_label",
20731 "done_label" from rtx to rtx_code_label *.
20732 (struct mips16_constant): Likewise for field "label".
20733 (mips16_add_constant): Likewise for return type.
20734 (mips16_emit_constants_1): Strengthen return type and param "insn"
20735 from rtx to rtx_insn *.
20736 (mips16_emit_constants): Likewise for param "insn".
20737 (mips16_insn_length): Likewise.
20738 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
20739 to rtx_code_label *.
20740 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
20741 from rtx to rtx_insn *.
20742 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
20743 "jump". Strengthen local "label" from rtx to rtx_code_label *.
20744 (r10k_simplify_address): Strengthen param "insn" and local
20745 "def_insn" from rtx to rtx_insn *.
20746 (r10k_safe_address_p): Strengthen param "insn" from rtx to
20747 rtx_insn *.
20748 (r10k_needs_protection_p_1): Update target type of cast of data
20749 from to rtx to rtx_insn *.
20750 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
20751 rtx * to rtx_insn **.
20752 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
20753 rtx_insn *.
20754 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
20755 (mips_call_expr_from_insn): Likewise for param "insn".
20756 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
20757 (mips_find_pic_call_symbol): Likewise for param "insn".
20758 (mips_annotate_pic_calls): Likewise for local "insn".
20759 (mips_sim_insn): Likewise for this variable.
20760 (struct mips_sim): Likewise for field "insn" within elements of
20761 last_set array.
20762 (mips_sim_wait_reg): Likewise for param "insn".
20763 (mips_sim_wait_regs): Likewise.
20764 (mips_sim_wait_units): Likewise.
20765 (mips_sim_wait_insn): Likewise.
20766 (mips_sim_issue_insn): Likewise.
20767 (mips_sim_finish_insn): Likewise.
20768 (mips_seq_time): Likewise for param "seq" and local "insn".
20769 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
20770 locals "first", "second".
20771 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
20772 "last", "last2", "next".
20773 (mips_avoid_hazard): Likewise for params "after", "insn".
20774 (mips_reorg_process_insns): Likewise for locals "insn",
20775 "last_insn", "subinsn", "next_insn".
20776 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
20777 (mips16_split_long_branches): Likewise for locals "insn" "jump",
20778 "jump_sequence".
20779 (mips_output_mi_thunk): Likewise for local "insn".
20780 (mips_final_prescan_insn): Likewise for param "insn".
20781
20782 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20783
20784 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
20785 Strengthen return type and local "insns" from rtx to rtx_insn *.
20786 (microblaze_legitimize_tls_address): Likewise for local "insns".
20787 (microblaze_block_move_loop): Strengthen local "label" from rtx
20788 to rtx_code_label *.
20789 (microblaze_expand_prologue): Strengthen two locals named "insn"
20790 from rtx to rtx_insn *.
20791 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
20792 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
20793 "insn". Strengthen locals "div_label", "div_end_label" from rtx
20794 to rtx_code_label *.
20795
20796 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20797
20798 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
20799 param from rtx to rtx_insn *.
20800 (mep_reuse_lo): Likewise for third param.
20801 (mep_use_post_modify_p): Likewise for first param.
20802 (mep_core_address_length): Likewise.
20803 (mep_cop_address_length): Likewise.
20804 (mep_final_prescan_insn): Likewise.
20805 (mep_store_data_bypass_p): Likewise for both params.
20806 (mep_mul_hilo_bypass_p): Likewise.
20807 (mep_ipipe_ldc_p): Likewise for param.
20808
20809 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
20810 (mep_rewrite_mult): Likewise.
20811 (mep_rewrite_mulsi3): Likewise.
20812 (mep_rewrite_maddsi3): Likewise.
20813 (mep_reuse_lo_p_1): Likewise.
20814 (mep_reuse_lo_p): Likewise.
20815 (mep_frame_expr): Likewise.
20816 (mep_make_parallel): Likewise for both params.
20817 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
20818 local "insn".
20819 (mep_use_post_modify_p): Likewise for param "insn".
20820 (mep_core_address_length): Likewise.
20821 (mep_cop_address_length): Likewise.
20822 (mep_reg_set_in_function): Likewise for local "insn".
20823 (mep_asm_without_operands_p): Likewise.
20824 (F): Likewise for return type and param "x".
20825 (add_constant): Likewise for local "insn".
20826 (maybe_dead_move): Likewise for return type and local "insn".
20827 (mep_expand_prologue): Likewise for local "insn".
20828 (mep_final_prescan_insn): Likewise for param "insn".
20829 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
20830 "next", "follow", "x".
20831 (mep_insert_repeat_label_last): Likewise for return type, param
20832 "last_insn", and locals "next", "prev". Strengthen param "label"
20833 from rtx to rtx_code_label *.
20834 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
20835 rtx_insn *.
20836 (struct mep_doloop_end): Likewise for fields "insn" and
20837 "fallthrough".
20838 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
20839 Strengthen local "repeat_label" from rtx to rtx_code_label *.
20840 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
20841 rtx_insn *.
20842 (mep_invert_branch): Likewise for params "insn" and "after".
20843 (mep_reorg_erepeat): Likewise for param "insns" and locals
20844 "insn", "prev", "new_last", "barrier", "user". Strengthen local
20845 "l" from rtx to rtx_code_label *.
20846 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
20847 from rtx to rtx_insn *.
20848 (mep_reorg_addcombine): Likewise for param "insns" and locals
20849 "i", "n".
20850 (add_sp_insn_p): Likewise for param "insn".
20851 (mep_reorg_noframe): Likewise for param "insns" and locals
20852 "start_frame_insn", "end_frame_insn", "next".
20853 (mep_reorg): Likewise for local "insns".
20854 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
20855 cast.
20856 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
20857 (mep_mul_hilo_bypass_p): Likewise.
20858 (mep_ipipe_ldc_p): Likewise for param "insn".
20859 (mep_make_bundle): Likewise for return type, param "cop" and local
20860 "insn", splitting out the latter into a new local "seq" for when it
20861 is a SEQUENCE rather than an insn.
20862 (core_insn_p): Likewise for param "insn".
20863 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
20864 "last", "first", "note", "prev", "core_insn".
20865
20866 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20867
20868 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
20869 rtx to rtx_insn *.
20870 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
20871 (m68k_final_prescan_insn): Likewise for first param.
20872
20873 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
20874 (m68k_set_frame_related): Likewise for param "insn".
20875 (output_btst): Likewise for param "insn".
20876 (m68k_final_prescan_insn): Likewise.
20877 (m68k_move_to_reg): Likewise for local "insn".
20878 (m68k_call_tls_get_addr): Likewise for local "insns".
20879 (m68k_call_m68k_read_tp): Likewise.
20880 (strict_low_part_peephole_ok): Likewise for param "first_insn".
20881 (m68k_output_mi_thunk): Likewise for local "insn".
20882
20883 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20884
20885 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
20886 first param from rtx to rtx_insn *.
20887 (iq2000_adjust_insn_length): Likewise.
20888 (iq2000_output_conditional_branch): Likewise.
20889 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
20890 "insn" and local "nop_insn".
20891 (iq2000_annotate_frame_insn): Likewise for param "insn".
20892 (iq2000_expand_prologue): Likewise for both locals "insn".
20893 (iq2000_adjust_insn_length): Likewise for param "insn".
20894 (iq2000_output_conditional_branch): Likewise.
20895
20896 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20897
20898 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
20899 "insns" from rtx to rtx_insn *.
20900 (ia64_emit_cond_move): Likewise for locals "insn", "first".
20901 (struct spill_fill_data): Likewise for field "init_after" and for
20902 elements of array field "prev_insn".
20903 (spill_restore_mem): Likewise for locals "insn", "first".
20904 (do_spill): Likewise for local "insn".
20905 (do_restore): Likewise.
20906 (ia64_expand_prologue): Likewise.
20907 (ia64_expand_epilogue): Likewise.
20908 (emit_insn_group_barriers): Likewise for locals "insn",
20909 "last_label".
20910 (emit_all_insn_group_barriers): Likewise for locals "insn",
20911 "last".
20912 (dfa_stop_insn): Likewise for this global.
20913 (dfa_pre_cycle_insn): Likewise.
20914 (ia64_nop): Likewise.
20915 (final_emit_insn_group_barriers): Likewise for locals "insn",
20916 "last".
20917 (emit_predicate_relation_info): Likewise for locals "head", "n",
20918 "insn", "b", "a".
20919 (ia64_reorg): Likewise for local "insn".
20920 (ia64_output_mi_thunk): Likewise.
20921 (expand_vec_perm_interleave_2): Likewise for local "seq".
20922
20923 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20924
20925 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
20926 param 1 "insn" from rtx to rtx_insn *.
20927 (ix86_use_lea_for_mov): Likewise.
20928 (ix86_avoid_lea_for_addr): Likewise.
20929 (ix86_split_lea_for_addr): Likewise.
20930 (ix86_lea_for_add_ok): Likewise.
20931 (ix86_output_call_insn): Likewise.
20932
20933 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
20934 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
20935 (ix86_output_function_epilogue): Likewise for locals "insn",
20936 "deleted_debug_label".
20937 (legitimize_tls_address): Likewise for local "insn".
20938 (get_some_local_dynamic_name): Likewise.
20939 (increase_distance): Likewise for params "prev", "next".
20940 (distance_non_agu_define_in_bb): Likewise for params "insn",
20941 "start" and locals "prev", "next".
20942 (distance_non_agu_define): Likewise for param "insn".
20943 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
20944 locals "next", "prev".
20945 (distance_agu_use): Likewise for param "insn".
20946 (ix86_lea_outperforms): Likewise.
20947 (ix86_ok_to_clobber_flags): Likewise.
20948 (ix86_avoid_lea_for_add): Likewise.
20949 (ix86_use_lea_for_mov): Likewise.
20950 (ix86_avoid_lea_for_addr): Likewise.
20951 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
20952 (ix86_split_lea_for_addr): Likewise for param "insn".
20953 (ix86_lea_for_add_ok): Likewise for param "insn".
20954 (ix86_expand_carry_flag_compare): Likewise for local
20955 "compare_seq".
20956 (ix86_expand_int_movcc): Likewise.
20957 (ix86_output_call_insn): Likewise for param "insn".
20958 (ix86_output_call_insn): Likewise for local "i".
20959 (x86_output_mi_thunk): Introduce local "insn", using it in place
20960 of "tmp" when dealing with insns.
20961 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
20962 "start".
20963 (ix86_pad_returns): Likewise for locals "ret", "prev".
20964 (ix86_count_insn_bb): Likewise for local "insn".
20965 (ix86_pad_short_function): Likewise for locals "ret", "insn".
20966 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
20967 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
20968 (expand_vec_perm_interleave2): Likewise for local "seq".
20969 (expand_vec_perm_vperm2f128_vblend): Likewise.
20970 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
20971 call to for_each_rtx with for_each_rtx_in_insn.
20972
20973 2014-08-25 David Malcolm <dmalcolm@redhat.com>
20974
20975 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
20976 "label" from rtx to rtx_code_label *.
20977 (ix86_expand_prologue): Likewise.
20978 (ix86_expand_split_stack_prologue): Likewise for locals "label",
20979 "varargs_label".
20980 (ix86_split_idivmod): Likewise for locals "end_label" and
20981 "qimode_label".
20982 (ix86_expand_branch): Likewise for local "label2".
20983 (ix86_expand_aligntest): Likewise for return type and local "label".
20984 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
20985 "top_label".
20986 (expand_movmem_epilogue): Likewise for the various locals named
20987 "label".
20988 (expand_setmem_epilogue): Likewise.
20989 (expand_small_movmem_or_setmem): Likewise for local "label".
20990 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
20991 Strengthen param "done_label" from rtx * to rtx_code_label **.
20992 Strengthen locals "loop_label" and "label" from rtx to
20993 rtx_code_label *.
20994 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
20995 Likewise for locals "loop_label", "label".
20996 (ix86_expand_set_or_movmem): Likewise for locals "label",
20997 "jump_around_label", "hot_label".
20998 (ix86_expand_strlensi_unroll_1): Likewise for locals
20999 "align_2_label", align_3_label", "align_4_label", "end_0_label",
21000 "end_2_label".
21001 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
21002 (void ix86_emit_i387_log1p): Likewise for locals "label1",
21003 "label2", "jump_label".
21004 (ix86_expand_sse_compare_and_jump): Likewise for return type and
21005 local "label".
21006 (ix86_expand_lfloorceil): Likewise for local "label".
21007 (ix86_expand_rint): Likewise.
21008 (ix86_expand_floorceildf_32): Likewise.
21009 (ix86_expand_floorceil): Likewise.
21010 (ix86_expand_rounddf_32): Likewise.
21011 (ix86_expand_trunc): Likewise.
21012 (ix86_expand_truncdf_32): Likewise.
21013 (ix86_expand_round): Likewise.
21014
21015 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21016
21017 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
21018 first param from rtx to rtx_insn *.
21019 (h8300_insn_length_from_table): Likewise.
21020 * config/h8300/h8300.c (F): Likewise for return type and param
21021 "x".
21022 (Fpa): Add a checked cast to rtx_insn *.
21023 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
21024 rtx_insn *.
21025 (final_prescan_insn): Likewise for param "insn".
21026 (h8300_binary_length): Likewise.
21027 (h8300_insn_length_from_table): Likewise.
21028
21029 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21030
21031 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
21032 Strengthen first param "insn" from rtx to rtx_insn *.
21033
21034 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
21035 Likewise.
21036 (frame_insn): Likewise for return type. Introduce local "insn"
21037 for use in place of local "x" for use as an rtx_insn *.
21038 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
21039 (epiphany_expand_prologue): Likewise for local "insn".
21040 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
21041 * config/epiphany/resolve-sw-modes.c
21042 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
21043 "seq".
21044
21045 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21046
21047 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
21048 param from rtx to rtx_insn *.
21049 (c6x_final_prescan_insn): Likewise for first param.
21050
21051 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
21052 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
21053 (c6x_expand_compare): Strengthen local "insns" from rtx to
21054 rtx_insn *.
21055 (c6x_get_unit_specifier): Likewise for param "insn".
21056 (c6x_print_unit_specifier_field): Likewise.
21057 (c6x_final_prescan_insn): Likewise.
21058 (emit_add_sp_const): Likewise for local "insn".
21059 (c6x_expand_prologue): Likewise.
21060
21061 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21062
21063 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
21064 param 1 from rtx to rtx_insn *.
21065 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
21066 the various locals named "insn".
21067 (expand_epilogue_reg_restore): Likewise.
21068 (frame_related_constant_load): Likewise.
21069 (add_to_reg): Likewise.
21070 (emit_link_insn): Likewise.
21071 (do_link): Likewise.
21072 (expand_interrupt_handler_prologue): Likewise.
21073 (branch_dest): Likewise for param "branch".
21074 (asm_conditional_branch): Likewise for param "insn".
21075 (gen_one_bundle): Likewise for elements of param "slot" and local
21076 "t".
21077 (bfin_gen_bundles): Likewise for locals "insn", "next" and
21078 elements of local "slot".
21079 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
21080 "queue", "next_queue", "prev".
21081 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
21082 (add_sched_insns_for_speculation): Likewise for local "insn".
21083
21084 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21085
21086 * config/avr/avr-protos.h (output_movqi): Strengthen first param
21087 from rtx to rtx_insn *.
21088 (output_movhi): Likewise.
21089 (output_movsisf): Likewise.
21090 (avr_out_tstsi): Likewise.
21091 (avr_out_tsthi): Likewise.
21092 (avr_out_tstpsi): Likewise.
21093 (avr_out_compare): Likewise.
21094 (avr_out_compare64): Likewise.
21095 (avr_out_movpsi): Likewise.
21096 (ashlqi3_out): Likewise.
21097 (ashlhi3_out): Likewise.
21098 (ashlsi3_out): Likewise.
21099 (ashrqi3_out): Likewise.
21100 (ashrhi3_out): Likewise.
21101 (ashrsi3_out): Likewise.
21102 (lshrqi3_out): Likewise.
21103 (lshrhi3_out): Likewise.
21104 (lshrsi3_out): Likewise.
21105 (avr_out_ashlpsi3): Likewise.
21106 (avr_out_ashrpsi3): Likewise.
21107 (avr_out_lshrpsi3): Likewise.
21108 (avr_out_fract): Likewise.
21109 (avr_out_sbxx_branch): Likewise.
21110 (avr_out_round): Likewise.
21111 (avr_out_xload): Likewise.
21112 (avr_out_movmem): Likewise.
21113 (adjust_insn_length): Likewise.
21114 (avr_out_lpm): Likewise.
21115 (reg_unused_after): Likewise.
21116 (_reg_unused_after): Likewise.
21117 (avr_jump_mode): Likewise for second param.
21118 (jump_over_one_insn): Likewise for first param.
21119 (avr_final_prescan_insn): Likewise.
21120 (out_shift_with_cnt): Likewise for second param.
21121
21122 * config/avr/avr.c (get_sequence_length): Likewise for param
21123 "insns" and local "insn".
21124 (emit_push_byte): Likewise for local "insn".
21125 (emit_push_sfr): Likewise.
21126 (avr_prologue_setup_frame): Likewise for locals "insn",
21127 "fp_plus_insns", "sp_plus_insns".
21128 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
21129 "sp_plus_insns".
21130 (avr_jump_mode): Likewise for param "insn".
21131 (avr_final_prescan_insn): Likewise.
21132 (avr_find_unused_d_reg): Likewise.
21133 (avr_out_lpm_no_lpmx): Likewise.
21134 (avr_out_lpm): Likewise.
21135 (avr_out_xload): Likewise.
21136 (output_movqi): Likewise.
21137 (output_movhi): Likewise.
21138 (out_movqi_r_mr): Likewise.
21139 (out_movhi_r_mr): Likewise.
21140 (out_movsi_r_mr): Likewise.
21141 (out_movsi_mr_r): Likewise.
21142 (output_movsisf): Likewise.
21143 (avr_out_load_psi): Likewise.
21144 (avr_out_store_psi): Likewise.
21145 (avr_out_movpsi): Likewise.
21146 (out_movqi_mr_r): Likewise.
21147 (avr_out_movhi_mr_r_xmega): Likewise.
21148 (out_movhi_mr_r): Likewise.
21149 (compare_condition): Likewise for param "insn" and local "next".
21150 (compare_sign_p): Likewise for param "insn".
21151 (compare_diff_p): Likewise.
21152 (compare_eq_p): Likewise.
21153 (avr_out_compare): Likewise.
21154 (avr_out_compare64): Likewise.
21155 (avr_out_tsthi): Likewise.
21156 (avr_out_tstpsi): Likewise.
21157 (avr_out_tstsi): Likewise.
21158 (out_shift_with_cnt): Likewise.
21159 (ashlqi3_out): Likewise.
21160 (ashlhi3_out): Likewise.
21161 (avr_out_ashlpsi3): Likewise.
21162 (ashlsi3_out): Likewise.
21163 (ashrqi3_out): Likewise.
21164 (ashrhi3_out): Likewise.
21165 (avr_out_ashrpsi3): Likewise.
21166 (ashrsi3_out): Likewise.
21167 (lshrqi3_out): Likewise.
21168 (lshrhi3_out): Likewise.
21169 (avr_out_lshrpsi3): Likewise.
21170 (lshrsi3_out): Likewise.
21171 (avr_out_fract): Likewise.
21172 (avr_out_round): Likewise.
21173 (avr_adjust_insn_length): Likewise.
21174 (reg_unused_after): Likewise.
21175 (_reg_unused_after): Likewise.
21176 (avr_compare_pattern): Likewise.
21177 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
21178 and locals "branch1", "branch2", "insn2", "jump".
21179 (avr_reorg): Likewise for local "insn".
21180 (avr_2word_insn_p): Likewise for param "insn".
21181 (jump_over_one_insn_p): Likewise.
21182 (avr_out_sbxx_branch): Likewise.
21183 (avr_out_movmem): Likewise.
21184
21185 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21186
21187 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
21188 param from rtx to rtx_insn *.
21189 (thumb1_final_prescan_insn): Likewise.
21190 (thumb2_final_prescan_insn): Likewise.
21191
21192 * config/arm/arm.c (emit_set_insn): Strengthen return type from
21193 rtx to rtx_insn *.
21194 (struct minipool_node): Likewise for field "insn".
21195 (dump_minipool): Likewise for param "scan".
21196 (create_fix_barrier): Likewise for local "from". Strengthen local
21197 "label" from rtx to rtx_code_label *.
21198 (push_minipool_barrier): Strengthen param "insn" from rtx to
21199 rtx_insn *.
21200 (push_minipool_fix): Likewise.
21201 (note_invalid_constants): Likewise.
21202 (thumb2_reorg): Likewise for local "insn".
21203 (arm_reorg): Likewise.
21204 (thumb2_final_prescan_insn): Likewise for param
21205 "insn" and local "first_insn".
21206 (arm_final_prescan_insn): Likewise for param "insn" and locals
21207 "start_insn", "this_insn".
21208 (arm_debugger_arg_offset): Likewise for param "insn".
21209 (thumb1_emit_multi_reg_push): Likewise for return type and local
21210 "insn".
21211 (thumb1_final_prescan_insn): Likewise for param "insn".
21212 (thumb_far_jump_used_p): Likewise for local "insn".
21213 (thumb1_expand_prologue): Likewise.
21214 (arm_expand_epilogue_apcs_frame): Likewise.
21215 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
21216 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
21217 from rtx to rtx_code_label *.
21218 (arm_split_atomic_op): Likewise for local "label".
21219 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
21220
21221 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21222
21223 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
21224 first param from rtx to rtx_insn *.
21225 (arc_verify_short): Likewise.
21226 (arc_short_long): Likewise.
21227 (arc_need_delay): Likewise.
21228
21229 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
21230 "target_insn".
21231 (arc_ccfsm_advance): Likewise for param "insn" and locals
21232 "start_insn", "this_insn".
21233 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
21234 (arc_ccfsm_post_advance): Likewise for param "insn".
21235 (arc_next_active_insn): Likewise for return type and param "insn".
21236 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
21237 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
21238 (output_short_suffix): Likewise for local "insn".
21239 (arc_final_prescan_insn): Likewise for param "insn". Remove
21240 now-redundant checked cast.
21241 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
21242 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
21243 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
21244 for use where lc_set became an insn.
21245 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
21246 rtx to rtx_insn *.
21247 (arc_get_insn_variants): Likewise for local "prev".
21248 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
21249 "next".
21250 (arc_predicate_delay_insns): Likewise for local "insn".
21251 (arc_pad_return): Likewise for local "prev". For now, add a
21252 checked cast when extracting the insn from "final_sequence".
21253 (arc_short_long): Likewise for param "insn".
21254 (arc_need_delay): Likewise for param "insn" and local "next".
21255 (arc_label_align): Likewise for locals "prev", "next".
21256
21257 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21258
21259 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
21260 "insn" from rtx to rtx_insn *.
21261 (alpha_gp_save_rtx): Likewise for local "seq".
21262 (alpha_instantiate_decls): Likewise for local "top".
21263 (get_some_local_dynamic_name): Likewise for local "insn".
21264 (alpha_does_function_need_gp): Likewise.
21265 (set_frame_related_p): Likewise for return type and for locals
21266 "seq" and "insn".
21267 (emit_frame_store_1): Likewise for local "insn".
21268 (alpha_expand_prologue): Likewise for locals "insn", "seq".
21269 (alpha_end_function): Likewise for local "insn".
21270 (alpha_output_mi_thunk_osf): Likewise.
21271 (alphaev4_insn_pipe): Likewise for param "insn".
21272 (alphaev5_insn_pipe): Likewise.
21273 (alphaev4_next_group): Likewise for return type and param 1
21274 "insn".
21275 (alphaev5_next_group): Likewise.
21276 (alpha_align_insns_1): Likewise for return type and param 1 of
21277 callback param "next_group", and for locals "i", "next", "prev",
21278 "where", "where2", "insn".
21279
21280 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
21281
21282 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
21283 rather than modifying the stmt.
21284
21285 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21286
21287 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
21288 cgraph_state conversion.
21289
21290 2014-08-25 David Malcolm <dmalcolm@redhat.com>
21291
21292 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
21293 Strengthen local "insns" from rtx to rtx_insn *.
21294 (aarch64_set_frame_expr): Likewise for local "insn".
21295 (aarch64_save_or_restore_fprs): Likewise.
21296 (aarch64_save_or_restore_callee_save_registers): Likewise.
21297 (aarch64_expand_prologue): Likewise.
21298 (aarch64_expand_epilogue): Likewise.
21299 (aarch64_output_mi_thunk): Likewise.
21300 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
21301 "label2" from rtx to rtx_code_label *.
21302 (aarch64_split_atomic_op): Likewise for local "label".
21303
21304 2014-08-25 Martin Liska <mliska@suse.cz>
21305
21306 * cgraph.h (symtab_node):
21307 (bool needed_p (void)): created from decide_is_symbol_needed
21308 (bool referred_to_p (void)): created from referred_to_p
21309 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
21310 * cgraph.h (cgraph_node):
21311 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
21312 (void expand (void)): created from expand_function
21313 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
21314 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
21315 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
21316 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
21317 * cgraph.h (varpool_node):
21318 (static void add (tree decl): created from varpool_add_new_variable
21319 * cgraph.h (cgraph_edge):
21320 void remove (void);
21321 (void remove_caller (void)): created from cgraph_edge_remove_caller
21322 (void remove_callee (void)): created from cgraph_edge_remove_callee
21323 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
21324 created from cgraph_set_call_stmt
21325 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
21326 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
21327 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
21328 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
21329 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
21330 created from cgraph_speculative_call_info
21331 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
21332 int freq_scale, bool update_original)): created from cgraph_clone_edge
21333 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
21334 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
21335 (bool recursive_p (void)): created from cgraph_edge_recursive_p
21336 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
21337 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
21338 (static void rebuild_references (void)): created from cgraph_rebuild_references
21339 * cgraph.h (symbol_table):
21340 (create_reference): renamed from add_reference
21341 (maybe_create_reference): renamed from maybe_add_reference
21342 (void register_symbol (symtab_node *node)): new function
21343 (void clear_asm_symbols (void)): new function
21344 (void unregister (symtab_node *node)): new function
21345 (void release_symbol (cgraph_node *node, int uid)): new function
21346 (cgraph_node * allocate_cgraph_symbol (void)): new function
21347 (void initialize (void)): created from cgraph_init
21348 (symtab_node *first_symbol (void)):new function
21349 (asm_node *first_asm_symbol (void)):new function
21350 (symtab_node *first_defined_symbol (void)):new function
21351 (varpool_node *first_variable (void)):new function
21352 (varpool_node *next_variable (varpool_node *node)):new function
21353 (varpool_node *first_static_initializer (void)):new function
21354 (varpool_node *next_static_initializer (varpool_node *node)):new function
21355 (varpool_node *first_defined_variable (void)):new function
21356 (varpool_node *next_defined_variable (varpool_node *node)):new function
21357 (cgraph_node *first_defined_function (void)):new function
21358 (cgraph_node *next_defined_function (cgraph_node *node)):new function
21359 (cgraph_node *first_function (void)):new function
21360 (cgraph_node *next_function (cgraph_node *node)):new function
21361 (cgraph_node *first_function_with_gimple_body (void)):new function
21362 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
21363 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
21364 created from symtab_remove_unreachable_nodes
21365 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
21366 (void process_new_functions (void)): created from cgraph_process_new_functions
21367 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
21368 (bool output_variables (void)): created from varpool_node::output_variables
21369 (void output_asm_statements (void)): created from output_asm_statements
21370 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
21371 (void compile (void)): created from compile
21372 (void output_weakrefs (void)): created from output_weakrefs
21373 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
21374 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
21375 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
21376 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
21377 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
21378 created from cgraph_next_function_with_gimple_body
21379 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
21380 created from cgraph_remove_edge_removal_hook
21381 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
21382 created from cgraph_add_node_removal_hook
21383 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
21384 created from cgraph_remove_node_removal_hook
21385 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
21386 created from varpool_add_node_removal_hook
21387 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
21388 created from varpool_remove_node_removal_hook
21389 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
21390 created from cgraph_add_function_insertion_hook
21391 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
21392 created from cgraph_remove_function_insertion_hook
21393 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
21394 created from varpool_add_variable_insertion_hook
21395 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
21396 created from varpool_remove_variable_insertion_hook
21397 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
21398 created from cgraph_add_edge_duplication_hook
21399 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
21400 created from cgraph_remove_edge_duplication_hook
21401 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
21402 created from cgraph_add_node_duplication_hook
21403 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
21404 created from cgraph_remove_node_duplication_hook
21405 (void call_edge_removal_hooks (cgraph_edge *e)):
21406 created from cgraph_call_edge_removal_hooks
21407 (void call_cgraph_insertion_hooks (cgraph_node *node)):
21408 created from call_function_insertion_hooks
21409 (void call_cgraph_removal_hooks (cgraph_node *node)):
21410 created from cgraph_call_node_removal_hooks
21411 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
21412 created from cgraph_node::call_duplication_hooks
21413 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
21414 created from cgraph_call_edge_duplication_hooks
21415 (void call_varpool_removal_hooks (varpool_node *node)):
21416 created from varpool_call_node_removal_hooks
21417 (void call_varpool_insertion_hooks (varpool_node *node)):
21418 created from varpool_call_variable_insertion_hooks
21419 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
21420 created from insert_to_assembler_name_hash
21421 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
21422 created from unlink_from_assembler_name_hash
21423 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
21424 created from symtab_prevail_in_asm_name_hash
21425 (void symtab_initialize_asm_name_hash (void)):
21426 created from symtab_initialize_asm_name_hash
21427 (void change_decl_assembler_name (tree decl, tree name)):
21428 created from change_decl_assembler_name
21429 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
21430 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
21431 created from decl_assembler_name_hash
21432 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
21433 created from decl_assembler_name_equal
21434 (static hashval_t hash_node_by_assembler_name (const void *p)):
21435 created from hash_node_by_assembler_name
21436 (static int eq_assembler_name (const void *p1, const void *p2)):
21437 created from eq_assembler_name
21438
21439 2014-08-25 Marek Polacek <polacek@redhat.com>
21440
21441 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
21442
21443 2014-08-25 Petr Murzin <petr.murzin@intel.com>
21444
21445 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
21446 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
21447 SWI1248_AVX512BW mode iterator.
21448
21449 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
21450
21451 PR target/62111
21452 * config/sh/predicates.md (general_extend_operand): Disable
21453 TRUNCATE before reload completes.
21454
21455 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
21456
21457 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
21458
21459 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
21460
21461 PR target/61996
21462 * config/sh/sh.opt (musermode): Allow negative form.
21463 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
21464 targets that don't support it.
21465 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
21466 Document -mno-usermode option.
21467
21468 2014-08-24 Kito Cheng <kito@0xlab.org>
21469
21470 * system.h (CALLER_SAVE_PROFITABLE): Poison.
21471 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
21472 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
21473 * doc/tm.texi: Regenerate.
21474
21475 2014-08-24 Kito Cheng <kito@0xlab.org>
21476
21477 * ira.c: Fix typo in comment.
21478
21479 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
21480
21481 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
21482 Deprecate c++1y. Change language to reflect greater confidence in C++14.
21483
21484 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
21485
21486 PR target/62038
21487 * config/pa/pa.c (pa_output_function_epilogue): Don't set
21488 last_address when the current function is a thunk.
21489 (pa_asm_output_mi_thunk): When we don't have named sections or they
21490 are not being used, check that thunk can reach the stub table with a
21491 short branch.
21492
21493 2014-08-23 David Malcolm <dmalcolm@redhat.com>
21494
21495 * web.c (union_match_dups): Strengthen param "insn" from rtx to
21496 rtx_insn *.
21497 (pass_web::execute): Likewise for local "insn".
21498
21499 2014-08-23 David Malcolm <dmalcolm@redhat.com>
21500
21501 * var-tracking.c (struct micro_operation_def): Strengthen field
21502 "insn" from rtx to rtx_insn *.
21503 (struct emit_note_data_def): Likewise.
21504 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
21505 (vt_stack_adjustments): Likewise for local "insn".
21506 (adjust_insn): Likewise for param "insn".
21507 (val_store): Likewise.
21508 (val_resolve): Likewise.
21509 (struct count_use_info): Likewise for field "insn".
21510 (log_op_type): Likewise for param "insn".
21511 (reverse_op): Likewise.
21512 (prepare_call_arguments): Likewise.
21513 (add_with_sets): The initial param takes an insn, but we can't
21514 yet strengthen it from rtx to rtx_insn * since it's used as a
21515 cselib_record_sets_hook callback. For now rename initial param
21516 from "insn" to "uncast_insn", and introduce a local "insn" of
21517 the stronger rtx_insn * type, with a checked cast.
21518 (compute_bb_dataflow): Strengthen local "insn" from rtx to
21519 rtx_insn *.
21520 (emit_note_insn_var_location): Likewise.
21521 (emit_notes_for_changes): Likewise.
21522 (emit_notes_for_differences): Likewise.
21523 (next_non_note_insn_var_location): Likewise for return type and
21524 for param "insn".
21525 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
21526 (vt_initialize): Likewise for local "insn".
21527 (delete_debug_insns): Likewise for locals "insn" and "next".
21528
21529 2014-08-23 David Malcolm <dmalcolm@redhat.com>
21530
21531 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
21532 rtx_insn *.
21533 (mark_constant_pool): Likewise for local "insn".
21534
21535 2014-08-23 David Malcolm <dmalcolm@redhat.com>
21536
21537 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
21538 rtx to rtx_insn *.
21539 (dead_debug_promote_uses): Likewise.
21540 (dead_debug_insert_temp): Likewise.
21541
21542 2014-08-23 David Malcolm <dmalcolm@redhat.com>
21543
21544 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
21545 from const_rtx to const rtx_insn *.
21546 (store_killed_after): Likewise. Strengthen locals "last", "act"
21547 from rtx to rtx_insn *.
21548 (store_killed_before): Strengthen param "insn" from const_rtx to
21549 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
21550 (find_moveable_store): Strengthen param "insn" from rtx to
21551 rtx_insn *.
21552 (compute_store_table): Likewise for local "insn".
21553 (insert_insn_start_basic_block): Likewise for param "insn" and
21554 locals "prev", "before", "insn".
21555 (insert_store): For now, add a checked cast to rtx_insn * on the
21556 result of gen_move_insn.
21557 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
21558 to rtx_insn *.
21559 (replace_store_insn): Likewise. For now, add a checked cast to
21560 rtx_insn * on the result of gen_move_insn.
21561
21562 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21563
21564 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
21565 rtx_insn *.
21566 (expand_sjlj_dispatch_table): Likewise.
21567
21568 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21569
21570 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
21571 "insn" from rtx to rtx_insn *.
21572
21573 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21574
21575 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
21576 "insn" from rtx to rtx_insn *.
21577 (dup_block_and_redirect): Likewise for param 3 "before".
21578
21579 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
21580 from rtx to rtx_insn *.
21581 (move_insn_for_shrink_wrap): Likewise.
21582 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
21583 (dup_block_and_redirect): Likewise for param "before" and local
21584 "insn".
21585 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
21586 "end".
21587 (convert_to_simple_return): Likewise for local "start".
21588
21589 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
21590 Strengthen local "insn" from rtx to rtx_insn *, for use when
21591 invoking requires_stack_frame_p.
21592
21593 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21594
21595 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
21596 rtx_insn *.
21597 (speculate_expr): Likewise for locals "orig_insn_rtx",
21598 "spec_insn_rtx".
21599 (eq_transformed_insns): Likewise for locals "i1", "i2".
21600 (check_for_new_jump): Likewise for return type and local "end".
21601 (find_new_jump): Likewise for return type and local "jump".
21602 (sel_split_edge): Likewise for local "jump".
21603 (sel_create_recovery_block): Likewise.
21604 (sel_redirect_edge_and_branch_force): Likewise.
21605 (sel_redirect_edge_and_branch): Likewise.
21606
21607 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21608
21609 * sel-sched.c (substitute_reg_in_expr): Strengthen local
21610 "new_insn" from rtx to rtx_insn *.
21611 (create_insn_rtx_with_rhs): Likewise for return type and for local
21612 "insn_rtx".
21613 (create_insn_rtx_with_lhs): Likewise.
21614 (create_speculation_check): Likewise for local "insn_rtx".
21615 (implicit_clobber_conflict_p): Likewise for local "insn".
21616 (get_expr_cost): Likewise.
21617 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
21618 (move_cond_jump): Likewise for locals "next", "prev", "link",
21619 "head", "from", "to".
21620
21621 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21622
21623 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
21624 "next" from rtx to rtx_insn *.
21625 (find_conditional_protection): Likewise for local "next".
21626 (is_conditionally_protected): Likewise for local "insn1".
21627 (is_pfree): Likewise for locals "insn1", "insn2".
21628
21629 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21630
21631 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
21632 from rtx to rtx_insn *.
21633
21634 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
21635 locals "insn1", "insn2" from rtx to rtx_insn *.
21636 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
21637 locals "insn", "prev", "last_jump", "next_tail".
21638 (schedule_ebb): Likewise for params "head", "tail".
21639 (schedule_ebbs): Likewise for locals "tail", "head".
21640
21641 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
21642 to rtx_insn on "last_insn" in one of the invocations of
21643 schedule_ebb.
21644
21645 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21646
21647 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
21648 "elem", "insn" from rtx to rtx_insn *.
21649 (change_spec_dep_to_hard): Likewise.
21650 (get_back_and_forw_lists): Likewise for local "con".
21651 (sd_add_dep): Likewise for locals "elem", "insn".
21652 (sd_resolve_dep): Likewise for locals "pro", "con".
21653 (sd_unresolve_dep): Likewise.
21654 (sd_delete_dep): Likewise.
21655 (chain_to_prev_insn): Likewise for local "pro".
21656 (find_inc): Likewise for locals "pro", "con".
21657
21658 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21659
21660 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
21661 to rtx_insn *.
21662 (reg_set_between_p): Strengthen local "insn" from const_rtx to
21663 const rtx_insn *.
21664 (modified_between_p): Strengthen local "insn" from rtx to
21665 rtx_insn *.
21666 (remove_reg_equal_equiv_notes_for_regno): Likewise.
21667 (keep_with_call_p): Strengthen local "i2" from const_rtx to
21668 const rtx_insn *.
21669
21670 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21671
21672 * resource.c (next_insn_no_annul): Strengthen local "next" from
21673 rtx to rtx_insn *.
21674 (mark_referenced_resources): Likewise for local "insn".
21675
21676 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21677
21678 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
21679 to rtx_insn *.
21680 (find_reloads): Likewise for param 1.
21681 (subst_reloads): Likewise for sole param.
21682 (find_equiv_reg): Likwise for param 2.
21683 (regno_clobbered_p): Likwise for param 2.
21684 (reload): Likewise for param 1.
21685
21686 * caller-save.c (save_call_clobbered_regs): Strengthen local
21687 "insn" from rtx to rtx_insn *.
21688 (insert_one_insn): Likewise for local "insn".
21689
21690 * reload.c (this_insn): Likewise for this global.
21691 (find_reloads): Likewise for param "insn".
21692 (find_reloads_toplev): Likewise.
21693 (find_reloads_address): Likewise.
21694 (subst_reg_equivs): Likewise.
21695 (update_auto_inc_notes): Likewise.
21696 (find_reloads_address_1): Likewise.
21697 (find_reloads_subreg_address): Likewise.
21698 (subst_reloads): Likewise.
21699 (find_equiv_reg): Likewise, also for local "p".
21700 (regno_clobbered_p): Likewise for param "insn".
21701
21702 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
21703 array.
21704 (spill_reg_store): Likewise for the elements of this array.
21705 (remove_init_insns): Likewise for local "equiv_insn".
21706 (will_delete_init_insn_p): Likewise for param "insn".
21707 (reload): Likewise for param ""first" and local "insn".
21708 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
21709 rtx_insn *.
21710 (calculate_elim_costs_all_insns): Likewise.
21711 (delete_caller_save_insns): Likewise.
21712 (spill_failure): Likewise for param "insn".
21713 (delete_dead_insn): Likewise.
21714 (set_label_offsets): Likewise.
21715 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
21716 "prev_insn".
21717 (elimination_costs_in_insn): Likewise for param "insn".
21718 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
21719 when referring to an insn.
21720 (set_initial_label_offsets): Likewise.
21721 (set_offsets_for_label): Strengthen param "insn" from rtx to
21722 rtx_insn *.
21723 (init_eliminable_invariants): Likewise for param "first" and local
21724 "insn".
21725 (fixup_eh_region_note): Likewise for param "insn".
21726 (reload_as_needed): Likewise for locals "prev", "insn",
21727 "old_next", "old_prev", "next".
21728 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
21729 "last".
21730 (reload_inheritance_insn): Strengthen elements of this array from
21731 rtx to rtx_insn *.
21732 (failed_reload): Likewise for param "insn".
21733 (choose_reload_regs): Likewise for local "insn". Replace use of
21734 NULL_RTX with NULL when referring to an insn.
21735 (input_reload_insns): Strengthen elements of this array from rtx
21736 to rtx_insn *.
21737 (other_input_address_reload_insns): Likewise for this global.
21738 (other_input_reload_insns): Likewise for this global.
21739 (input_address_reload_insns): Likwise for the elements of this
21740 array.
21741 (inpaddr_address_reload_insns): Likwise for the elements of this
21742 array.
21743 (output_reload_insns): Likewise for the elements of this array.
21744 (output_address_reload_insns): Likewise for the elements of this
21745 array.
21746 (outaddr_address_reload_insns): Likewise for the elements of this
21747 array.
21748 (operand_reload_insns): Likewise for this global.
21749 (other_operand_reload_insns): Likewise for this global.
21750 (other_output_reload_insns): Likewise for the elements of this
21751 array.
21752 (new_spill_reg_store): Likewise for the elements of this
21753 array.
21754 (emit_input_reload_insns): Likewise for locals "insn", "temp".
21755 Strengthen local "where" from rtx * to rtx_insn **.
21756 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
21757 from rtx to rtx_insn *.
21758 (do_input_reload): Likewise for local "insn".
21759 (do_output_reload): Likewise for local "insn".
21760 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
21761 (emit_insn_if_valid_for_reload): Likewise for return type and local
21762 "last". Add checked cast to rtx_insn when returning "insn" since
21763 this has been through emit_insn.
21764 (gen_reload): Strengthen return type and locals "last", "insn", "set"
21765 from rtx to rtx_insn *. Add checked cast to rtx_insn when
21766 returning "insn" since it's been through
21767 emit_insn_if_valid_for_reload at this point.
21768 (delete_output_reload): Strengthen param "insn" and locals
21769 "output_reload_insn", "i2" from rtx to rtx_insn *.
21770 (delete_address_reloads): Likewise for params "dead_insn",
21771 "current_insn" and locals "prev", "next".
21772 (delete_address_reloads_1): Likewise for params "dead_insn",
21773 "current_insn" and locals "prev", "i2".
21774 (inc_for_reload): Likewise for locals "last", "add_insn".
21775 (add_auto_inc_notes): Strengthen param "insn" from rtx to
21776 rtx_insn *.
21777
21778 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
21779 param of this duplicate of the prototype from reload.h
21780
21781 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21782
21783 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
21784 rtx to rtx_insn *.
21785 (regstat_bb_compute_calls_crossed): Likewise.
21786
21787 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21788
21789 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
21790 to rtx_insn *.
21791 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
21792 with an insn.
21793 (regrename_analyze): Strengthen local "insn" from rtx to
21794 rtx_insn *.
21795 (scan_rtx_reg): Likewise for param "insn".
21796 (scan_rtx_address): Likewise.
21797 (scan_rtx): Likewise.
21798 (restore_operands): Likewise.
21799 (record_out_operands): Likewise.
21800 (build_def_use): Likewise for local "insn". Replace use of
21801 NULL_RTX with NULL when dealing with an insn.
21802
21803 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21804
21805 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
21806 * reginfo.c (reg_scan): Likewise, also for local "insn".
21807 (reg_scan_mark_refs): Likewise for param "insn".
21808 (init_subregs_of_mode): Likewise for local "insn".
21809
21810 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21811
21812 * regcprop.c (struct queued_debug_insn_change): Strengthen field
21813 "insn" from rtx to rtx_insn *.
21814 (replace_oldest_value_reg): Likewise for param "insn".
21815 (replace_oldest_value_addr): Likewise.
21816 (replace_oldest_value_mem): Likewise.
21817 (apply_debug_insn_changes): Likewise for local "last_insn".
21818 (copyprop_hardreg_forward_1): Likewise for local "insn".
21819
21820 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21821
21822 * reg-stack.c (next_flags_user): Strengthen return type and param
21823 "insn" from rtx to rtx_insn *.
21824 (straighten_stack): Likewise for param "insn".
21825 (check_asm_stack_operands): Likewise.
21826 (remove_regno_note): Likewise.
21827 (emit_pop_insn): Likewise for return type, param "insn", local
21828 "pop_insn".
21829 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
21830 "limit" from rtx to rtx_insn *.
21831 (swap_to_top): Likewise for param "insn".
21832 (move_for_stack_reg): Likewise.
21833 (move_nan_for_stack_reg): Likewise.
21834 (swap_rtx_condition): Likewise.
21835 (compare_for_stack_reg): Likewise.
21836 (subst_all_stack_regs_in_debug_insn): Likewise.
21837 (subst_stack_regs_pat): Likewise, and local "insn2".
21838 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
21839 rtx_insn *.
21840 (subst_stack_regs): Likewise.
21841 (change_stack): Likewise.
21842 (convert_regs_1): Likewise for locals "insn", "next".
21843
21844 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21845
21846 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
21847 rtx_insn *.
21848 (combine_set_extension): Likewise for param "curr_insn".
21849 (transform_ifelse): Likewise for param "def_insn".
21850 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
21851 from vec<rtx> * to vec<rtx_insn *> *.
21852 (is_cond_copy_insn): Likewise for param "insn".
21853 (struct ext_state): Strengthen the four vec fields from vec<rtx>
21854 to vec<rtx_insn *>.
21855 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
21856 local "def_insn" from rtx to rtx_insn *.
21857 (get_sub_rtx): Likewise for param "def_insn".
21858 (merge_def_and_ext): Likewise.
21859 (combine_reaching_defs): Likewise.
21860 (add_removable_extension): Likewise for param "insn".
21861 (find_removable_extensions): Likewise for local "insn".
21862 (find_and_remove_re): Likewise for locals "curr_insn" and
21863 "def_insn". Strengthen locals "reinsn_del_list" and
21864 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
21865
21866 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21867
21868 * recog.c (split_insn): Strengthen param "insn" and locals
21869 "first", "last" from rtx to rtx_insn *.
21870 (split_all_insns): Likewise for locals "insn", "next".
21871 (split_all_insns_noflow): Likewise.
21872
21873 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21874
21875 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
21876 const rtx_insn *.
21877 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
21878 (debug_rtx_find): Likewise for param 1 "x".
21879
21880 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
21881 const_rtx to const rtx_insn *. Likewise for local "insn".
21882 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
21883 (debug_rtx_find): Likewise for param 1 "x".
21884 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
21885 from const_rtx to const rtx_insn * within the appropriate cases of
21886 the switch statement.
21887
21888 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
21889 Strengthen local "insns" from rtx to rtx_insn * since this is
21890 passed to a call to debug_rtx_list.
21891
21892 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21893
21894 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
21895 to rtx_insn *.
21896
21897 * function.c (stack_protect_epilogue): Add checked cast to
21898 rtx_insn for now when invoking predict_insn_def.
21899
21900 * predict.c (predict_insn): Strengthen param "insn" from rtx to
21901 rtx_insn *.
21902 (predict_insn_def): Likewise.
21903 (rtl_predict_edge): Likewise for local "last_insn".
21904 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
21905 const rtx_insn *.
21906 (combine_predictions_for_insn): Strengthen param "insn" from rtx
21907 to rtx_insn *.
21908 (bb_estimate_probability_locally): Likewise for local "last_insn".
21909 (expensive_function_p): Likewise for local "insn".
21910
21911 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
21912 local "jmp", since this is used when invoking predict_insn_def.
21913
21914 2014-08-22 Marek Polacek <polacek@redhat.com>
21915
21916 PR c++/62199
21917 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
21918
21919 2014-08-22 Marek Polacek <polacek@redhat.com>
21920
21921 PR c/61271
21922 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
21923 a comparison in parens.
21924 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
21925 in parens.
21926
21927 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21928
21929 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
21930 rtx_insn *.
21931
21932 * cprop.c (fis_get_condition): Likewise.
21933
21934 * postreload.c (reload_cse_regs): Likewise for param "first".
21935 (reload_cse_simplify): Likewise for param "insn".
21936 (reload_cse_regs_1): Likewise for local "insn".
21937 (reload_cse_simplify_set): Likewise for param "insn".
21938 (reload_cse_simplify_operands): Likewise.
21939 (struct reg_use): Likewise for field "insn".
21940 (reload_combine_purge_insn_uses): Likewise for param "insn".
21941 (fixup_debug_insns): Likewise for params "from", "to" and local
21942 "insn".
21943 (try_replace_in_use): Likewise for local "use_insn".
21944 (reload_combine_recognize_const_pattern): Likewise for param
21945 "insn" and locals "add_moved_after_insn", "use_insn".
21946 (reload_combine_recognize_pattern): Likewise for param "insn" and
21947 local "prev".
21948 (reload_combine): Likewise for locals "insn", "prev".
21949 (reload_combine_note_use): Likewise for param "insn".
21950 (move2add_use_add2_insn): Likewise.
21951 (move2add_use_add3_insn): Likewise.
21952 (reload_cse_move2add): Likewise, also for local "next".
21953 (move2add_note_store): Likewise for local "insn".
21954
21955 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21956
21957 * postreload-gcse.c (struct occr): Strengthen field "insn" from
21958 rtx to rtx_insn *.
21959 (struct unoccr): Likewise.
21960 (struct modifies_mem): Likewise.
21961 (alloc_mem): Likewise for local "insn".
21962 (insert_expr_in_table): Likewise for param "insn".
21963 (dump_expr_hash_table_entry): Likewise for local "insn".
21964 (oprs_unchanged_p): Likewise for param "insn".
21965 (load_killed_in_block_p): Likewise for local "setter".
21966 (record_last_reg_set_info): Likewise for param "insn".
21967 (record_last_reg_set_info_regno): Likewise.
21968 (record_last_mem_set_info): Likewise.
21969 (record_last_set_info): Likewise for local "last_set_insn".
21970 (record_opr_changes): Likewise for param "insn".
21971 (hash_scan_set): Likewise.
21972 (compute_hash_table): Likewise for local "insn".
21973 (get_avail_load_store_reg): Likewise for param "insn".
21974 (eliminate_partially_redundant_load): Likewise, also for locals
21975 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
21976 RTX for insns.
21977 (eliminate_partially_redundant_loads): Likewise for local "insn".
21978
21979 2014-08-22 David Malcolm <dmalcolm@redhat.com>
21980
21981 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
21982 rtx to rtx_insn *.
21983 (expand_binop): Likewise for locals "entry_last", "last", "insns"
21984 (expand_twoval_unop): Likewise for locals entry_last", "last".
21985 (expand_twoval_binop): Likewise.
21986 (expand_twoval_binop_libfunc): Likewise for local "insns".
21987 (widen_leading): Likewise for local "last".
21988 (expand_doubleword_clz): Likewise for local "seq". Strengthen
21989 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
21990 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
21991 (expand_parity): Likewise for locals "last" and "seq".
21992 (expand_ffs): Likewise for local "seq". Strengthen local
21993 "nonzero_label" from rtx to rtx_code_label *.
21994 (expand_absneg_bit): Strengthen local "insns" from rtx to
21995 rtx_insn *.
21996 (expand_unop_direct): Likewise for local "last".
21997 (expand_unop): Likewise for locals "last", "insns".
21998 (expand_abs_nojump): Likewise for local "last".
21999 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
22000 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
22001 rtx_insn *.
22002 (expand_copysign_absneg): Strengthen local "label" from rtx to
22003 rtx_code_label *.
22004 (expand_copysign_bit): Strengthen local "insns" from rtx to
22005 rtx_insn *.
22006 (struct no_conflict_data): Likewise for fields "first", "insn".
22007 (emit_libcall_block_1): Likewise for param "insns" and locals
22008 "next", "last", "insn".
22009 (emit_libcall_block): For now, add a checked cast to rtx_insn *
22010 on "insns" when invoking emit_libcall_block_1. Ultimately we
22011 want to strengthen insns itself.
22012 (prepare_cmp_insn): Strengthen local "last" from rtx to
22013 rtx_insn *.
22014 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
22015 (prepare_float_lib_cmp): Likewise for local "insns".
22016 (emit_conditional_move): Likewise for local "last".
22017 (emit_conditional_add): Likewise.
22018 (have_sub2_insn): Likewise for local "seq".
22019 (expand_float): Likewise for local "insns". Strengthen locals
22020 "label", "neglabel" from rtx to rtx_code_label *.
22021 (expand_fix): Likewise for locals "last", "insn", "insns" (to
22022 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
22023 (expand_fixed_convert): Likewise for local "insns" (to
22024 rtx_insn *).
22025 (expand_sfix_optab): Likewise for local "last".
22026 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
22027 to rtx_code_label *.
22028 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
22029 from rtx to rtx_insn *.
22030 (expand_atomic_fetch_op): Likewise for local "insn".
22031 (maybe_legitimize_operand_same_code): Likewise for local "last".
22032 (maybe_legitimize_operands): Likewise.
22033
22034 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22035
22036 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
22037 "insn" from rtx to rtx_insn *.
22038 (ps_rtl_insn): Likewise for return type.
22039 (doloop_register_get): Likewise for params "head", "tail" and
22040 locals "insn", "first_insn_not_to_check".
22041 (schedule_reg_move): Likewise for local "this_insn".
22042 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
22043 of gen_move_insn for now.
22044 (reset_sched_times): Strengthen local "insn" from rtx to
22045 rtx_insn *.
22046 (permute_partial_schedule): Likewise.
22047 (duplicate_insns_of_cycles): Likewise for local "u_insn".
22048 (dump_insn_location): Likewise for param "insn".
22049 (loop_canon_p): Likewise for local "insn".
22050 (sms_schedule): Likewise.
22051 (print_partial_schedule): Likewise.
22052 (ps_has_conflicts): Likewise.
22053
22054 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22055
22056 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
22057 "tailp" from rtx * to rtx_insn **.
22058
22059 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
22060 from rtx to rtx_insn *.
22061 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
22062 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
22063 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
22064 rtx to rtx_insn *.
22065 * modulo-sched.c (const_iteration_count): Strengthen return type
22066 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
22067 use of NULL_RTX with NULL when working with insns.
22068 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
22069 to rtx_insn *.
22070 (sms_schedule): Likewise.
22071 * sched-rgn.c (init_ready_list): Likewise, also for locals
22072 "src_head" and "src_next_tail".
22073 (compute_block_dependences): Likewise.
22074 (free_block_dependencies): Likewise.
22075 (debug_rgn_dependencies): Likewise.
22076 (free_rgn_deps): Likewise.
22077 (compute_priorities): Likewise.
22078 (schedule_region): Likewise.
22079 * sel-sched.c (find_ebb_boundaries): Likewise.
22080
22081 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
22082 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
22083
22084 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22085
22086 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
22087 from rtx to rtx_insn *.
22088 (new_seginfo): Likewise for param "insn".
22089 (create_pre_exit): Likewise for locals "last_insn",
22090 "before_return_copy", "return_copy".
22091 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
22092 "mode_set".
22093
22094 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22095
22096 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
22097 from rtx to rtx_insn *.
22098 (lra_push_insn): Likewise for 1st param.
22099 (lra_push_insn_and_update_insn_regno_info): Likewise.
22100 (lra_pop_insn): Likewise for return type.
22101 (lra_invalidate_insn_data): Likewise for 1st param.
22102 (lra_set_insn_deleted): Likewise.
22103 (lra_delete_dead_insn): Likewise.
22104 (lra_process_new_insns): Likewise for first 3 params.
22105 (lra_set_insn_recog_data): Likewise for 1st param.
22106 (lra_update_insn_recog_data): Likewise.
22107 (lra_set_used_insn_alternative): Likewise.
22108 (lra_invalidate_insn_regno_info): Likewise.
22109 (lra_update_insn_regno_info): Likewise.
22110 (lra_former_scratch_operand_p): Likewise.
22111 (lra_eliminate_regs_1): Likewise.
22112 (lra_get_insn_recog_data): Likewise.
22113
22114 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
22115 rtx to rtx_insn *.
22116
22117 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
22118 "mv1" and "mv2".
22119 (substitute_within_insn): New.
22120 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
22121 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
22122 Replace call to "substitute" with call to substitute_within_insn.
22123
22124 * lra-constraints.c (curr_insn): Strengthen from rtx to
22125 rtx_insn *.
22126 (get_equiv_with_elimination): Likewise for param "insn".
22127 (match_reload): Strengthen params "before" and "after" from rtx *
22128 to rtx_insn **.
22129 (emit_spill_move): Likewise for return type. Add a checked cast
22130 to rtx_insn * on result of gen_move_insn for now.
22131 (check_and_process_move): Likewise for local "before". Replace
22132 NULL_RTX with NULL when referring to insns.
22133 (process_addr_reg): Strengthen params "before" and "after" from
22134 rtx * to rtx_insn **.
22135 (insert_move_for_subreg): Likewise.
22136 (simplify_operand_subreg): Strengthen locals "before" and "after"
22137 from rtx to rtx_insn *.
22138 (process_address_1): Strengthen params "before" and "after" from
22139 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
22140 rtx to rtx_insn *.
22141 (process_address): Strengthen params "before" and "after" from
22142 rtx * to rtx_insn **.
22143 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
22144 (curr_insn_transform): Strengthen locals "before" and "after"
22145 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
22146 to insns.
22147 (loc_equivalence_callback): Update cast of "data", changing
22148 resulting type from rtx to rtx_insn *.
22149 (substitute_pseudo_within_insn): New.
22150 (inherit_reload_reg): Strengthen param "insn" from rtx to
22151 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
22152 NULL when referring to insns. Add a checked cast to rtx_insn *
22153 when using usage_insn to invoke lra_update_insn_regno_info.
22154 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
22155 likewise for locals "restore", "save". Add checked casts to
22156 rtx_insn * when using usage_insn to invoke
22157 lra_update_insn_regno_info and lra_process_new_insns. Replace
22158 NULL_RTX with NULL when referring to insns.
22159 (split_if_necessary): Strengthen param "insn" from rtx to
22160 rtx_insn *.
22161 (update_ebb_live_info): Likewise for params "head", "tail" and local
22162 "prev_insn".
22163 (get_last_insertion_point): Likewise for return type and local "insn".
22164 (get_live_on_other_edges): Likewise for local "last".
22165 (inherit_in_ebb): Likewise for params "head", "tail" and locals
22166 "prev_insn", "next_insn", "restore".
22167 (remove_inheritance_pseudos): Likewise for local "prev_insn".
22168 (undo_optional_reloads): Likewise for local "insn".
22169
22170 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
22171 "insn".
22172 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
22173 insns.
22174 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
22175 rtx_insn *.
22176 (spill_pseudos): Likewise for local "insn".
22177 (init_elimination): Likewise.
22178 (process_insn_for_elimination): Likewise for param "insn".
22179
22180 * lra-lives.c (curr_insn): Likewise.;
22181
22182 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
22183 (remove_pseudos): Likewise for param "insn".
22184 (spill_pseudos): Likewise for local "insn".
22185 (lra_final_code_change): Likewise for locals "insn", "curr".
22186
22187 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
22188 (lra_set_insn_deleted): Likewise.
22189 (lra_delete_dead_insn): Likewise, and for local "prev".
22190 (new_insn_reg): Likewise for param "insn".
22191 (lra_set_insn_recog_data): Likewise.
22192 (lra_update_insn_recog_data): Likewise.
22193 (lra_set_used_insn_alternative): Likewise.
22194 (get_insn_freq): Likewise.
22195 (invalidate_insn_data_regno_info): Likewise.
22196 (lra_invalidate_insn_regno_info): Likewise.
22197 (lra_update_insn_regno_info): Likewise.
22198 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
22199 vec<rtx_insn *>.
22200 (lra_push_insn_1): Strengthen param "insn" from rtx to
22201 rtx_insn *.
22202 (lra_push_insn): Likewise.
22203 (lra_push_insn_and_update_insn_regno_info): Likewise.
22204 (lra_pop_insn): Likewise for return type and local "insn".
22205 (push_insns): Likewise for params "from", "to", and local "insn".
22206 (setup_sp_offset): Likewise for params "from", "last" and locals
22207 "before", "insn".
22208 (lra_process_new_insns): Likewise for params "insn", "before",
22209 "after" and local "last".
22210 (struct sloc): Likewise for field "insn".
22211 (lra_former_scratch_operand_p): Likewise for param "insn".
22212 (remove_scratches): Likewise for locals "insn", "last".
22213 (check_rtl): Likewise for local "insn".
22214 (add_auto_inc_notes): Likewise for param "insn".
22215 (update_inc_notes): Likewise for local "insn".
22216 (lra): Replace NULL_RTX with NULL when referring to insn.
22217
22218 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22219
22220 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
22221 to rtx_insn *.
22222 (resolve_reg_notes): Likewise.
22223 (resolve_simple_move): Likewise for return type, param "insn", and
22224 locals "insns", "minsn".
22225 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
22226 (resolve_use): Likewise.
22227 (resolve_debug): Likewise.
22228 (find_decomposable_shift_zext): Likewise.
22229 (resolve_shift_zext): Likewise for return type, param "insn", and
22230 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
22231 (decompose_multiword_subregs): Likewise for local "insn",
22232 "orig_insn", "decomposed_shift", "end".
22233
22234 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22235
22236 * basic-block.h (basic_block split_edge_and_insert): Strengthen
22237 param "insns" from rtx to rtx_insn *.
22238
22239 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
22240 rtx to rtx_insn *.
22241 (struct iv_to_split): Likewise.
22242 (loop_exit_at_end_p): Likewise for local "insn".
22243 (split_edge_and_insert): Likewise for param "insns".
22244 (compare_and_jump_seq): Likewise for return type, param "cinsn",
22245 and locals "seq", "jump".
22246 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
22247 "branch_code"; update invocations of compare_and_jump_seq to
22248 eliminate NULL_RTX in favor of NULL.
22249 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
22250 rtx to rtx_insn *.
22251 (reset_debug_uses_in_loop): Likewise.
22252 (analyze_insn_to_expand_var): Likewise for param "insn".
22253 (analyze_iv_to_split_insn): Likewise.
22254 (analyze_insns_in_loop): Likewise for local "insn".
22255 (insert_base_initialization): Likewise for param
22256 "insn" and local "seq".
22257 (split_iv): Likewise for param "insn" and local "seq".
22258 (expand_var_during_unrolling): Likewise for param "insn".
22259 (insert_var_expansion_initialization): Likewise for local "seq".
22260 (combine_var_copies_in_loop_exit): Likewise.
22261 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
22262 "insn".
22263 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
22264 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
22265 "next".
22266
22267 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22268
22269 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
22270 rtx_insn *.
22271 (iv_analyze_result): Likewise.
22272 (iv_analyze_expr): Likewise.
22273 (biv_p): Likewise.
22274
22275 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
22276 local "def_insn" from rtx to rtx_insn *.
22277 (get_biv_step_1): Likewise for local "insn".
22278 (iv_analyze_expr): Likewise for param "insn".
22279 (iv_analyze_def): Likewise for local "insn".
22280 (iv_analyze_op): Likewise for param "insn".
22281 (iv_analyze): Likewise.
22282 (iv_analyze_result): Likewise.
22283 (biv_p): Likewise.
22284 (suitable_set_for_replacement): Likewise.
22285 (simplify_using_initial_values): Likewise for local "insn".
22286 (iv_number_of_iterations): Likewise for param "insn".
22287 (check_simple_exit): Add checked cast to rtx_insn when invoking
22288 iv_number_of_iterations for now (until get_condition is
22289 strengthened).
22290
22291 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
22292 "insn" from rtx to rtx_insn *.
22293 (analyze_insns_in_loop): Likewise for local "insn".
22294
22295 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22296
22297 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
22298 to rtx_insn *.
22299 (struct invariant): Likewise.
22300 (hash_invariant_expr_1): Likewise for param "insn".
22301 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
22302 (find_exits): Likewise for local "insn".
22303 (create_new_invariant): Likewise for param "insn".
22304 (check_dependencies): Likewise.
22305 (find_invariant_insn): Likewise.
22306 (record_uses): Likewise.
22307 (find_invariants_insn): Likewise.
22308 (find_invariants_bb): Likewise for local "insn".
22309 (get_pressure_class_and_nregs): Likewise for param "insn".
22310 (calculate_loop_reg_pressure): Likewise for local "insn".
22311
22312 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22313
22314 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
22315 to rtx_insn *.
22316 (add_test): Likewise for locals "seq", "jump".
22317 (doloop_modify): Likewise for locals "sequence", "jump_insn".
22318
22319 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22320
22321 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
22322 rtx_insn *.
22323 (rebuild_jump_labels_chain): Likewise for param "chain".
22324
22325 * cfgexpand.c (pass_expand::execute): Add checked cast to
22326 rtx_insn * when calling rebuild_jump_labels_chain in region where
22327 we know e->insns.r is non-NULL.
22328
22329 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
22330 rtx_insn *.
22331 (rebuild_jump_labels): Likewise.
22332 (rebuild_jump_labels_chain): Likewise for param "chain".
22333 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
22334 (init_label_info): Likewise for param "f".
22335 (maybe_propagate_label_ref): Likewise for params "jump_insn",
22336 "prev_nonjump_insn".
22337 (mark_all_labels): Likewise for param "f" and locals "insn",
22338 "prev_nonjump_insn".
22339
22340 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22341
22342 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
22343 from rtx to rtx_insn *insn.
22344 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
22345 (ira_add_allocno_copy): Likewise.
22346 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
22347 rtx to rtx_insn *.
22348 (ira_create_copy): Likewise.
22349 (ira_add_allocno_copy): Likewise.
22350 (create_bb_allocnos): Likewise for local "insn".
22351 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
22352 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
22353 process_regs_for_copy for rtx_insn * param.
22354 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
22355 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
22356 process_regs_for_copy for rtx_insn * param.
22357 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
22358 * ira-costs.c (record_reg_classes): Likewise for param "insn".
22359 (record_operand_costs): Likewise.
22360 (scan_one_insn): Likewise for return type, and for param "insn".
22361 (process_bb_for_costs): Likewise for local "insn".
22362 (process_bb_node_for_hard_reg_moves): Likewise.
22363 * ira-emit.c (struct move): Likewise for field "insn".
22364 (create_move): Eliminate use of NULL_RTX when dealing with an
22365 rtx_insn *.
22366 (emit_move_list): Strengthen return type and locals "result",
22367 "insn" from rtx to rtx_insn *insn.
22368 (emit_moves): Likewise for locals "insns", "tmp".
22369 (ira_emit): Likewise for local "insn".
22370 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
22371 "insn".
22372 (find_call_crossed_cheap_reg): Likewise.
22373 (process_bb_node_lives): Likewise for local "insn".
22374 * ira.c (decrease_live_ranges_number): Likewise.
22375 (compute_regs_asm_clobbered): Likewise.
22376 (build_insn_chain): Likewise.
22377 (find_moveable_pseudos): Likewise, also locals "def_insn",
22378 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
22379 to rtx_insn **. Add a checked cast when assigning from
22380 "closest_use" into closest_uses array in a region where we know
22381 it's a non-NULL insn.
22382 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
22383 to rtx_insn *.
22384 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
22385 "last_interesting_insn", "uin".
22386 (move_unallocated_pseudos): Likewise for locals "def_insn",
22387 "move_insn", "newinsn".
22388
22389 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22390
22391 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
22392 Strengthen locals "done_label", "do_error" from rtx to
22393 rtx_code_label *.
22394 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
22395 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
22396 rtx_code_label *.
22397 (ubsan_expand_si_overflow_neg_check): Likewise for locals
22398 "done_label", "do_error" to rtx_code_label * and local "last" to
22399 rtx_insn *.
22400 (ubsan_expand_si_overflow_mul_check): Likewise for locals
22401 "done_label", "do_error", "large_op0", "small_op0_large_op1",
22402 "one_small_one_large", "both_ops_large", "after_hipart_neg",
22403 "after_lopart_neg", "do_overflow", "hipart_different" to
22404 rtx_code_label * and local "last" to rtx_insn *.
22405
22406 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22407
22408 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
22409 "insn" and "move_insn" from rtx to rtx_insn *.
22410
22411 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22412
22413 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
22414 rtx_insn *.
22415 (cheap_bb_rtx_cost_p): Likewise.
22416 (first_active_insn): Likewise for return type and local "insn".
22417 (last_active_insn): Likewise for return type and locals "insn",
22418 "head".
22419 (struct noce_if_info): Likewise for fields "jump", "insn_a",
22420 "insn_b".
22421 (end_ifcvt_sequence): Likewise for return type and locals "insn",
22422 "seq".
22423 (noce_try_move): Likewise for local "seq".
22424 (noce_try_store_flag): Likewise.
22425 (noce_try_store_flag_constants): Likewise.
22426 (noce_try_addcc): Likewise.
22427 (noce_try_store_flag_mask): Likewise.
22428 (noce_try_cmove): Likewise.
22429 (noce_try_minmax): Likewise.
22430 (noce_try_abs): Likewise.
22431 (noce_try_sign_mask): Likewise.
22432 (noce_try_bitop): Likewise.
22433 (noce_can_store_speculate_p): Likewise for local "insn".
22434 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
22435 seq".
22436 (check_cond_move_block): Likewise for local "insn".
22437 (cond_move_convert_if_block): Likewise.
22438 (cond_move_process_if_block): Likewise for locals "seq",
22439 "loc_insn".
22440 (noce_find_if_block): Likewise for local "jump".
22441 (merge_if_block): Likewise for local "last".
22442 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
22443 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
22444 (block_has_only_trap): Likewise for return type and local "trap".
22445 (find_if_case_1): Likewise for local "jump".
22446 (dead_or_predicable): Likewise for locals "head", "end", "jump",
22447 "insn".
22448
22449 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22450
22451 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
22452 "last_insn", "loop_end" from rtx to rtx_insn *.
22453
22454 * hw-doloop.c (scan_loop): Likewise for local "insn".
22455 (discover_loop): Likewise for param "tail_insn".
22456 (discover_loops): Likewise for local "tail".
22457
22458 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
22459 cast to rtx_insn * when assigning from an rtx local to a
22460 hwloop_info's "last_insn" field.
22461
22462 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22463
22464 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
22465 (add_delay_dependencies): Strengthen local "pro" from rtx to
22466 rtx_insn *.
22467 (recompute_todo_spec): Likewise.
22468 (dep_cost_1): Likewise for locals "insn", "used".
22469 (schedule_insn): Likewise for local "dbg".
22470 (schedule_insn): Likewise for locals "pro", "next".
22471 (unschedule_insns_until): Likewise for local "con".
22472 (restore_pattern): Likewise for local "next".
22473 (estimate_insn_tick): Likewise for local "pro".
22474 (resolve_dependencies): Likewise for local "next".
22475 (fix_inter_tick): Likewise.
22476 (fix_tick_ready): Likewise for local "pro".
22477 (add_to_speculative_block): Likewise for locals "check", "twin",
22478 "pro".
22479 (sched_extend_bb): Likewise for locals "end", "insn".
22480 (init_before_recovery): Likewise for local "x".
22481 (sched_create_recovery_block): Likewise for local "barrier".
22482 (create_check_block_twin): Likewise for local "pro".
22483 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
22484 "consumer".
22485 (unlink_bb_notes): Update for change to type of bb_header.
22486 Strengthen locals "prev", "label", "note", "next" from rtx to
22487 rtx_insn *.
22488 (clear_priorities): Likewise for local "pro".
22489
22490 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22491
22492 * gcse.c (struct occr): Strengthen field "insn" from rtx to
22493 rtx_insn *.
22494 (test_insn): Likewise for this global.
22495 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
22496 const rtx_insn *.
22497 (oprs_anticipatable_p): Likewise.
22498 (oprs_available_p): Likewise.
22499 (insert_expr_in_table): Strengthen param "insn" from rtx to
22500 rtx_insn *.
22501 (hash_scan_set): Likewise.
22502 (hash_scan_clobber): Likewise.
22503 (hash_scan_call): Likewise.
22504 (hash_scan_insn): Likewise.
22505 (compute_hash_table_work): Likewise for local "insn".
22506 (process_insert_insn): Likewise for return type and local "pat".
22507 (insert_insn_end_basic_block): Likewise for locals "new_insn",
22508 "pat", "pat_end", "maybe_cc0_setter".
22509 (pre_edge_insert): Likewise for local "insn".
22510 (pre_insert_copy_insn): Likewise for param "insn".
22511 (pre_insert_copies): Likewise for local "insn".
22512 (struct set_data): Likewise for field "insn".
22513 (single_set_gcse): Likewise for param "insn".
22514 (gcse_emit_move_after): Likewise.
22515 (pre_delete): Likewise for local "insn".
22516 (update_bb_reg_pressure): Likewise for param "from" and local
22517 "insn".
22518 (should_hoist_expr_to_dom): Likewise for param "from".
22519 (hoist_code): Likewise for local "insn".
22520 (get_pressure_class_and_nregs): Likewise for param "insn".
22521 (calculate_bb_reg_pressure): Likewise for local "insn".
22522 (compute_ld_motion_mems): Likewise.
22523
22524 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22525
22526 * genpeep.c (main): Rename param back from "uncast_ins1" to
22527 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
22528 checked cast.
22529
22530 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
22531
22532 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
22533
22534 PR target/62195
22535 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
22536 documentation to state it is only for VSX operations.
22537
22538 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
22539 constraint only active if VSX.
22540
22541 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
22542 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
22543 (lfiwzx): Likewise.
22544
22545 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22546
22547 * fwprop.c (single_def_use_dom_walker::before_dom_children):
22548 Strengthen local "insn" from rtx to rtx_insn *.
22549 (use_killed_between): Likewise for param "target_insn".
22550 (all_uses_available_at): Likewise for param "target_insn" and
22551 local "next".
22552 (update_df_init): Likewise for params "def_insn", "insn".
22553 (update_df): Likewise for param "insn".
22554 (try_fwprop_subst): Likewise for param "def_insn" and local
22555 "insn".
22556 (free_load_extend): Likewise for param "insn".
22557 (forward_propagate_subreg): Likewise for param "def_insn" and
22558 local "use_insn".
22559 (forward_propagate_asm): Likewise for param "def_insn" and local
22560 "use_insn".
22561 (forward_propagate_and_simplify): Likewise for param "def_insn"
22562 and local "use_insn".
22563 (forward_propagate_into): Likewise for locals "def_insn" and
22564 "use_insn".
22565
22566 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22567
22568 * function.c (emit_initial_value_sets): Strengthen local "seq"
22569 from rtx to rtx_insn *.
22570 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
22571 local "seq".
22572 (instantiate_virtual_regs): Likewise for local "insn".
22573 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
22574 (reorder_blocks_1): Likewise for param "insns" and local "insn".
22575 (expand_function_end): Likewise for locals "insn" and "seq".
22576 (epilogue_done): Likewise for local "insn".
22577 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
22578 "last", "trial".
22579 (reposition_prologue_and_epilogue_notes): Likewise for locals
22580 "insn", "last", "note", "first".
22581 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
22582 (pass_match_asm_constraints::execute): Likewise for local "insn".
22583
22584 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22585
22586 * output.h (final_scan_insn): Strengthen return type from rtx to
22587 rtx_insn *.
22588 (final_forward_branch_p): Likewise for param.
22589 (current_output_insn): Likewise for this global.
22590
22591 * final.c (rtx debug_insn): Likewise for this variable.
22592 (current_output_insn): Likewise.
22593 (get_attr_length_1): Rename param "insn" to "uncast_insn",
22594 adding "insn" back in as an rtx_insn * with a checked cast, so
22595 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
22596 first param.
22597 (compute_alignments): Strengthen local "label" from rtx to
22598 rtx_insn *.
22599 (shorten_branches): Rename param from "first" to "uncast_first",
22600 introducing a new local rtx_insn * "first" using a checked cast to
22601 effectively strengthen "first" from rtx to rtx_insn * without
22602 affecting the type signature. Strengthen locals "insn", "seq",
22603 "next", "label" from rtx to rtx_insn *.
22604 (change_scope): Strengthen param "orig_insn" and local "insn" from
22605 rtx to rtx_insn *.
22606 (final_start_function): Rename param from "first" to "uncast_first",
22607 introducing a new local rtx_insn * "first" using a checked cast to
22608 effectively strengthen "first" from rtx to rtx_insn * without
22609 affecting the type signature. Strengthen local "insn" from rtx to
22610 rtx_insn *.
22611 (dump_basic_block_info): Strengthen param "insn" from rtx to
22612 rtx_insn *.
22613 (final): Rename param from "first" to "uncast_first",
22614 introducing a new local rtx_insn * "first" using a checked cast to
22615 effectively strengthen "first" from rtx to rtx_insn * without
22616 affecting the type signature. Strengthen locals "insn", "next"
22617 from rtx to rtx_insn *.
22618 (output_alternate_entry_point): Strengthen param "insn" from rtx to
22619 rtx_insn *.
22620 (call_from_call_insn): Strengthen param "insn" from rtx to
22621 rtx_call_insn *.
22622 (final_scan_insn): Rename param from "insn" to "uncast_insn",
22623 introducing a new local rtx_insn * "insn" using a checked cast to
22624 effectively strengthen "insn" from rtx to rtx_insn * without
22625 affecting the type signature. Strengthen return type and locals
22626 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
22627 now-redundant checked cast to rtx_insn * from both invocations of
22628 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
22629 introducing a local "call_insn" for use when invoking
22630 call_from_call_insn.
22631 (notice_source_line): Strengthen param "insn" from rtx to
22632 rtx_insn *.
22633 (leaf_function_p): Likewise for local "insn".
22634 (final_forward_branch_p): Likewise.
22635 (leaf_renumber_regs): Likewise for param "first".
22636 (rest_of_clean_state): Likewise for locals "insn" and "next".
22637 (self_recursive_call_p): Likewise for param "insn".
22638 (collect_fn_hard_reg_usage): Likewise for local "insn".
22639 (get_call_fndecl): Likewise for param "insn".
22640 (get_call_cgraph_rtl_info): Likewise.
22641 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
22642 introducing a new local rtx_insn * "insn" using a checked cast to
22643 effectively strengthen "insn" from rtx to rtx_insn * without
22644 affecting the type signature.
22645
22646 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
22647 cast when assigning from param "insn" to current_output_insn.
22648 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
22649 so that we can assign it back to current_output_insn.
22650
22651 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22652
22653 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
22654 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
22655 atmxt540s and atmxt540sreva devices.
22656 * config/avr/avr-tables.opt: Regenerate.
22657 * config/avr/t-multilib: Regenerate.
22658 * doc/avr-mmcu.texi: Regenerate.
22659
22660 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22661
22662 * expr.c (convert_move): Strengthen local "insns" from rtx to
22663 rtx_insn *.
22664 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
22665 "top_label" from rtx to rtx_code_label *.
22666 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
22667 rtx_insn *.
22668 (emit_single_push_insn): Likewise for locals "prev", "last".
22669 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
22670 to rtx_code_label *.
22671 (store_constructor): Likewise for locals "loop_start", "loop_end".
22672 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
22673 rtx_insn *.
22674 (expand_expr_real_2): Likewise.
22675 (expand_expr_real_1): Strengthen local "label" from rtx to
22676 rtx_code_label *.
22677
22678 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22679
22680 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
22681 from rtx to rtx_insn *.
22682 (store_bit_field_1): Likewise.
22683 (extract_bit_field_1): Likewise.
22684 (expand_mult_const): Likewise for local "insns".
22685 (expmed_mult_highpart): Strengthen local "label" from rtx to
22686 rtx_code_label *.
22687 (expand_smod_pow2): Likewise.
22688 (expand_sdiv_pow2): Likewise.
22689 (expand_divmod): Strengthen locals "last", "insn" from rtx to
22690 rtx_insn *. Strengthen locals "label", "label1", "label2",
22691 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
22692 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
22693 (emit_store_flag): Likewise.
22694 (emit_store_flag_force): Strengthen local "label" from rtx to
22695 rtx_code_label *.
22696 (do_cmp_and_jump): Likewise for param "label".
22697
22698 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22699
22700 * explow.c (force_reg): Strengthen local "insn" from rtx to
22701 rtx_insn *.
22702 (adjust_stack_1): Likewise.
22703 (allocate_dynamic_stack_space): Likewise. Strengthen locals
22704 "final_label", "available_label", "space_available" from rtx to
22705 rtx_code_label *.
22706 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
22707 (anti_adjust_stack_and_probe): Likewise.
22708
22709 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22710
22711 * except.h (sjlj_emit_function_exit_after): Strengthen param
22712 "after" from rtx to rtx_insn *. This is only called with
22713 result of get_last_insn (in function.c) so type-change should be
22714 self-contained.
22715
22716 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
22717 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
22718 to rtx_insn *. These fields are only used from except.c so this
22719 type-change should be self-contained to this patch.
22720
22721 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
22722 local "last" from rtx to rtx_insn *.
22723 (dw2_build_landing_pads): Likewise for local "seq".
22724 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
22725 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
22726 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
22727 rtx to rtx_insn *.
22728 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
22729 to rtx_insn *.
22730 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
22731 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
22732 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
22733 referring to an insn. Strengthen local "dispatch_label" from
22734 rtx to rtx_code_label *.
22735 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
22736 rtx_insn *.
22737 (expand_eh_return): Strengthen local "around_label" from
22738 rtx to rtx_code_label *.
22739 (convert_to_eh_region_ranges): Strengthen locals "iter",
22740 "last_action_insn", "first_no_action_insn",
22741 "first_no_action_insn_before_switch",
22742 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
22743
22744 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22745
22746 * dwarf2out.c (last_var_location_insn): Strengthen this variable
22747 from rtx to rtx_insn *.
22748 (cached_next_real_insn): Likewise.
22749 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
22750 working with insns.
22751 (dwarf2out_var_location): Strengthen locals "next_real",
22752 "next_note", "expected_next_loc_note", "last_start", "insn" from
22753 rtx to rtx_insn *.
22754
22755 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22756
22757 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
22758 from rtx to rtx_insn *.
22759 (create_pseudo_cfg): Likewise for local "insn".
22760
22761 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22762
22763 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
22764 from rtx to rtx_insn *.
22765 (df_bb_regno_last_def_find): Likewise.
22766
22767 * df-problems.c (df_rd_bb_local_compute): Likewise.
22768 (df_lr_bb_local_compute): Likewise.
22769 (df_live_bb_local_compute): Likewise.
22770 (df_chain_remove_problem): Likewise.
22771 (df_chain_create_bb): Likewise.
22772 (df_word_lr_bb_local_compute): Likewise.
22773 (df_remove_dead_eq_notes): Likewise for param "insn".
22774 (df_note_bb_compute): Likewise for local "insn".
22775 (simulate_backwards_to_point): Likewise.
22776 (df_md_bb_local_compute): Likewise.
22777
22778 * df-scan.c (df_scan_free_bb_info): Likewise.
22779 (df_scan_start_dump): Likewise.
22780 (df_scan_start_block): Likewise.
22781 (df_install_ref_incremental): Likewise for local "insn".
22782 (df_insn_rescan_all): Likewise.
22783 (df_reorganize_refs_by_reg_by_insn): Likewise.
22784 (df_reorganize_refs_by_insn_bb): Likewise.
22785 (df_recompute_luids): Likewise.
22786 (df_bb_refs_record): Likewise.
22787 (df_update_entry_exit_and_calls): Likewise.
22788 (df_bb_verify): Likewise.
22789
22790 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22791
22792 * ddg.h (struct ddg_node): Strengthen fields "insn" and
22793 "first_note" from rtx to rtx_insn *.
22794 (get_node_of_insn): Likewise for param 2 "insn".
22795 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
22796
22797 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
22798 rtx_insn *.
22799 (mem_write_insn_p): Likewise.
22800 (mem_access_insn_p): Likewise.
22801 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
22802 (def_has_ccmode_p): Likewise for param "insn".
22803 (add_cross_iteration_register_deps): Likewise for locals
22804 "def_insn" and "use_insn".
22805 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
22806 (build_intra_loop_deps): Likewise for local "src_insn".
22807 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
22808 to rtx_insn *.
22809 (get_node_of_insn): Likewise for param "insn".
22810
22811 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22812
22813 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
22814 (deletable_insn_p): Strengthen param "insn" from rtx to
22815 rtx_insn *. Add checked cast to rtx_call_insn when invoking
22816 find_call_stack_args, since this is guarded by CALL_P (insn).
22817 (marked_insn_p): Strengthen param "insn" from rtx to
22818 rtx_insn *.
22819 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
22820 invoking find_call_stack_args, since this is guarded by
22821 CALL_P (insn).
22822 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
22823 rtx_insn *; we know this is an insn since this was called by
22824 mark_nonreg_stores.
22825 (mark_nonreg_stores_2): Likewise.
22826 (mark_nonreg_stores): Strengthen param "insn" from rtx to
22827 rtx_insn *.
22828 (find_call_stack_args): Strengthen param "call_insn" from rtx to
22829 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
22830 to rtx_insn *.
22831 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
22832 from rtx to rtx_insn *.
22833 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
22834 "next", "ref_insn".
22835 (delete_unmarked_insns): Likewise for locals "insn", "next".
22836 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
22837 (mark_reg_dependencies): Likewise for param "insn".
22838 (rest_of_handle_ud_dce): Likewise for local "insn".
22839 (word_dce_process_block): Likewise.
22840 (dce_process_block): Likewise.
22841
22842 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22843
22844 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
22845 from rtx to rtx_insn *.
22846 (struct change_cc_mode_args): Likewise for field "insn".
22847 (this_insn): Strengthen from rtx to rtx_insn *.
22848 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
22849 with insn.
22850 (validate_canon_reg): Strengthen param "insn" from rtx to
22851 rtx_insn *.
22852 (canon_reg): Likewise.
22853 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
22854 dealing with insn.
22855 (record_jump_equiv): Strengthen param "insn" from rtx to
22856 rtx_insn *.
22857 (try_back_substitute_reg): Likewise, also for locals "prev",
22858 "bb_head".
22859 (find_sets_in_insn): Likewise for param "insn".
22860 (canonicalize_insn): Likewise.
22861 (cse_insn): Likewise. Add a checked cast.
22862 (invalidate_from_clobbers): Likewise for param "insn".
22863 (invalidate_from_sets_and_clobbers): Likewise.
22864 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
22865 dealing with insn.
22866 (cse_prescan_path): Strengthen local "insn" from rtx to
22867 rtx_insn *.
22868 (cse_extended_basic_block): Likewise for locals "insn" and
22869 "prev_insn".
22870 (cse_main): Likewise for param "f".
22871 (check_for_label_ref): Likewise for local "insn".
22872 (set_live_p): Likewise for second param ("insn").
22873 (insn_live_p): Likewise for first param ("insn") and for local
22874 "next".
22875 (cse_change_cc_mode_insn): Likewise for first param "insn".
22876 (cse_change_cc_mode_insns): Likewise for first and second params
22877 "start" and "end".
22878 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
22879 and "end".
22880 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
22881 "cc_src_insn".
22882
22883 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
22884 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22885 Anna Tikhonova <anna.tikhonova@intel.com>
22886 Ilya Tocar <ilya.tocar@intel.com>
22887 Andrey Turetskiy <andrey.turetskiy@intel.com>
22888 Ilya Verbin <ilya.verbin@intel.com>
22889 Kirill Yukhin <kirill.yukhin@intel.com>
22890 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22891
22892 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
22893 New.
22894 * config/i386/sse.md
22895 (define_mode_iterator VI248_AVX2): Delete.
22896 (define_mode_iterator VI2_AVX2_AVX512BW): New.
22897 (define_mode_iterator VI48_AVX2): Ditto.
22898 (define_insn <shift_insn><mode>3): Delete.
22899 (define_insn "<shift_insn><mode>3<mask_name>" with
22900 VI2_AVX2_AVX512BW): New.
22901 (define_insn "<shift_insn><mode>3<mask_name>" with
22902 VI48_AVX2): Ditto.
22903
22904 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
22905 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22906 Anna Tikhonova <anna.tikhonova@intel.com>
22907 Ilya Tocar <ilya.tocar@intel.com>
22908 Andrey Turetskiy <andrey.turetskiy@intel.com>
22909 Ilya Verbin <ilya.verbin@intel.com>
22910 Kirill Yukhin <kirill.yukhin@intel.com>
22911 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22912
22913 * config/i386/sse.md
22914 (define_mode_iterator VI4F_BRCST32x2): New.
22915 (define_mode_attr 64x2_mode): Ditto.
22916 (define_mode_attr 32x2mode): Ditto.
22917 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
22918 with VI4F_BRCST32x2): Ditto.
22919 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
22920 with V16FI mode iterator): Ditto.
22921 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
22922 with V16FI): Ditto.
22923 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
22924 with VI8F_BRCST64x2): Ditto.
22925
22926 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
22927 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22928 Anna Tikhonova <anna.tikhonova@intel.com>
22929 Ilya Tocar <ilya.tocar@intel.com>
22930 Andrey Turetskiy <andrey.turetskiy@intel.com>
22931 Ilya Verbin <ilya.verbin@intel.com>
22932 Kirill Yukhin <kirill.yukhin@intel.com>
22933 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22934
22935 * config/i386/sse.md
22936 (define_mode_iterator VI8_AVX512VL): New.
22937 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
22938
22939 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
22940
22941 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
22942 (define_mode_iterator V48_AVX512VL): New.
22943 (define_mode_iterator V12_AVX512VL): Ditto.
22944 (define_insn <avx512>_load<mode>_mask): Split into two similar
22945 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
22946 Refactor output template.
22947 (define_insn "<avx512>_store<mode>_mask"): Ditto.
22948
22949 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22950
22951 * cprop.c (struct occr): Strengthen field "insn" from rtx to
22952 rtx_insn *.
22953 (reg_available_p): Likewise for param "insn".
22954 (insert_set_in_table): Likewise.
22955 (hash_scan_set): Likewise.
22956 (hash_scan_insn): Likewise.
22957 (make_set_regs_unavailable): Likewise.
22958 (compute_hash_table_work): Likewise for local "insn".
22959 (reg_not_set_p): Strengthen param "insn" from const_rtx to
22960 const rtx_insn *.
22961 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
22962 (try_replace_reg): Likewise.
22963 (find_avail_set): Likewise.
22964 (cprop_jump): Likewise for params "setcc", "jump".
22965 (constprop_register): Likewise for param "insn".
22966 (cprop_insn): Likewise.
22967 (do_local_cprop): Likewise.
22968 (local_cprop_pass): Likewise for local "insn".
22969 (bypass_block): Likewise for params "setcc" and "jump".
22970 (bypass_conditional_jumps): Likewise for locals "setcc" and
22971 "insn".
22972 (one_cprop_pass): Likewise for local "insn".
22973
22974 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22975
22976 * compare-elim.c (struct comparison_use): Strengthen field "insn"
22977 from rtx to rtx_insn *.
22978 (struct comparison): Likewise, also for field "prev_clobber".
22979 (conforming_compare): Likewise for param "insn".
22980 (arithmetic_flags_clobber_p): Likewise.
22981 (find_flags_uses_in_insn): Likewise.
22982 (find_comparison_dom_walker::before_dom_children): Likewise for
22983 locals "insn", "next", "last_clobber".
22984 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
22985
22986 2014-08-22 David Malcolm <dmalcolm@redhat.com>
22987
22988 * combine-stack-adj.c (struct csa_reflist): Strengthen field
22989 "insn" from rtx to rtx_insn *.
22990 (single_set_for_csa): Likewise for param "insn".
22991 (record_one_stack_ref): Likewise.
22992 (try_apply_stack_adjustment): Likewise.
22993 (struct record_stack_refs_data): Likewise for field "insn".
22994 (maybe_move_args_size_note): Likewise for params "last" and "insn".
22995 (prev_active_insn_bb): Likewise for return type and param "insn".
22996 (next_active_insn_bb): Likewise.
22997 (force_move_args_size_note): Likewise for params "prev" and "last"
22998 and locals "test", "next_candidate", "prev_candidate".
22999 (combine_stack_adjustments_for_block): Strengthen locals
23000 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
23001 rtx_insn *.
23002
23003 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23004
23005 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
23006 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
23007 (subst_insn): Likewise for this variable.
23008 (added_links_insn): Likewise.
23009 (struct insn_link): Likewise for field "insn".
23010 (alloc_insn_link): Likewise for param "insn".
23011 (struct undobuf): Likewise for field "other_insn".
23012 (find_single_use): Likewise for param "insn" and local "next".
23013 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
23014 (delete_noop_moves): Likewise for locals "insn", "next".
23015 (create_log_links): Likewise for locals "insn", "use_insn".
23016 Strengthen local "next_use" from rtx * to rtx_insn **.
23017 (insn_a_feeds_b): Likewise for params "a", "b".
23018 (combine_instructions): Likewise for param "f" and locals "insn",
23019 "next", "prev", "first", "last_combined_insn", "link", "link1",
23020 "temp". Replace use of NULL_RTX with NULL when referring to
23021 insns.
23022 (setup_incoming_promotions): Likewise for param "first"
23023 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
23024 (can_combine_p): Likewise for params "insn", "i3", "pred",
23025 "pred2", "succ", "succ2" and for local "p".
23026 (combinable_i3pat): Likewise for param "i3".
23027 (cant_combine_insn_p): Likewise for param "insn".
23028 (likely_spilled_retval_p): Likewise.
23029 (adjust_for_new_dest): Likewise.
23030 (update_cfg_for_uncondjump): Likewise, also for local "insn".
23031 (try_combine): Likewise for return type and for params "i3", "i2",
23032 "i1", "i0", "last_combined_insn", and for locals "insn",
23033 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
23034 "i0_insn". Eliminate local "tem" in favor of new locals
23035 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
23036 checked cast for now to rtx_insn * on the return type of
23037 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
23038 insns.
23039 (find_split_point): Strengthen param "insn" from rtx to
23040 rtx_insn *.
23041 (simplify_set): Likewise for local "other_insn".
23042 (recog_for_combine): Likewise for param "insn".
23043 (record_value_for_reg): Likewise.
23044 (record_dead_and_set_regs_1): Likewise for local
23045 "record_dead_insn".
23046 (record_dead_and_set_regs): Likewise for param "insn".
23047 (record_promoted_value): Likewise.
23048 (check_promoted_subreg): Likewise.
23049 (get_last_value_validate): Likewise.
23050 (reg_dead_at_p): Likewise.
23051 (move_deaths): Likewise for param "to_insn".
23052 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
23053 and locals "place", "place2", "cc0_setter". Eliminate local "tem
23054 in favor of new locals "tem_note" and "tem_insn", the latter being
23055 an rtx_insn *.
23056 (distribute_links): Strengthen locals "place", "insn" from rtx to
23057 rtx_insn *.
23058
23059 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23060
23061 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
23062 than a const_rtx.
23063 (can_delete_label_p): Require a const rtx_code_label * rather than
23064 a const_rtx.
23065 (delete_insn): Add checked cast to rtx_code_label * when we know
23066 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
23067 rtx to rtx_insn *.
23068 (delete_insn_chain): Strengthen locals "prev" and "current" from
23069 rtx to rtx_insn *. Add a checked cast when assigning from
23070 "finish" (strengthening the params will come later). Add a
23071 checked cast to rtx_note * in region where we know
23072 NOTE_P (current).
23073 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
23074 rtx_insn *.
23075 (compute_bb_for_insn): Likewise.
23076 (free_bb_for_insn): Likewise for local "insn".
23077 (compute_bb_for_insn): Likewise.
23078 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
23079 local "insn" from rtx to rtx_insn *
23080 (flow_active_insn_p): Require a const rtx_insn * rather than a
23081 const_rtx.
23082 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
23083 rtx_insn *.
23084 (can_fallthru): Likewise for locals "insn" and "insn2".
23085 (bb_note): Likewise for local "note".
23086 (first_insn_after_basic_block_note): Likewise for local "note" and
23087 for return type.
23088 (rtl_split_block): Likewise for locals "insn" and "next".
23089 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
23090 "end".
23091 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
23092 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
23093 "prev", "tmp".
23094 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
23095 them), "kill_from", "barrier", "new_insn".
23096 (patch_jump_insn): Likewise for params "insn", "old_label".
23097 (redirect_branch_edge): Likewise for locals "old_label", "insn".
23098 (force_nonfallthru_and_redirect): Likewise for locals "insn",
23099 "old_label", "new_label".
23100 (rtl_tidy_fallthru_edge): Likewise for local "q".
23101 (rtl_split_edge): Likewise for locals "before", "last".
23102 (commit_one_edge_insertion): Likewise for locals "before",
23103 "after", "insns", "tmp", "last", adding a checked cast where
23104 currently necessary.
23105 (commit_edge_insertions): Likewise.
23106 (rtl_dump_bb): Likewise for locals "insn", "last".
23107 (print_rtl_with_bb): Likewise for local "x".
23108 (rtl_verify_bb_insns): Likewise for local "x".
23109 (rtl_verify_bb_pointers): Likewise for local "insn".
23110 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
23111 "head", "end".
23112 (rtl_verify_fallthru): Likewise for local "insn".
23113 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
23114 (purge_dead_edges): Likewise for local "insn".
23115 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
23116 (skip_insns_after_block): Likewise for return type and for locals
23117 "insn", "last_insn", "next_head", "prev".
23118 (record_effective_endpoints): Likewise for locals "next_insn",
23119 "insn", "end".
23120 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
23121 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
23122 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
23123 (duplicate_insn_chain): For now, add checked cast from rtx to
23124 rtx_insn * when returning insn.
23125 (cfg_layout_duplicate_bb): Likewise for local "insn".
23126 (cfg_layout_delete_block): Likewise for locals "insn", "next",
23127 "prev", "remaints".
23128 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
23129 (rtl_block_empty_p): Likewise.
23130 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
23131 "split_point", "last".
23132 (rtl_block_ends_with_call_p): Likewise for local "insn".
23133 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
23134 const rtx_insn *.
23135 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
23136 "split_at_insn" from rtx to rtx_insn *.
23137 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
23138 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
23139 to const rtx_insn *.
23140 (rtl_account_profile_record): Likewise.
23141
23142 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23143
23144 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
23145 rtx to rtx_insn *.
23146 (average_num_loop_insns): Likewise.
23147 (init_set_costs): Likewise for local "seq".
23148 (seq_cost): Likewise for param "seq", from const_rtx to const
23149 rtx_insn *.
23150
23151 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23152
23153 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
23154 rtx to rtx_insn *.
23155
23156 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23157
23158 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
23159 "f1" and "f2" from rtx * to rtx_insn **.
23160 (flow_find_head_matching_sequence): Likewise.
23161
23162 * cfgcleanup.c (try_simplify_condjump): Strengthen local
23163 "cbranch_insn" from rtx to rtx_insn *.
23164 (thread_jump): Likewise for local "insn".
23165 (try_forward_edges): Likewise for local "last".
23166 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
23167 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
23168 "real_b_end".
23169 (can_replace_by): Likewise for params "i1", "i2".
23170 (old_insns_match_p): Likewise.
23171 (merge_notes): Likewise.
23172 (walk_to_nondebug_insn): Likewise for param "i1".
23173 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
23174 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
23175 "afterlast1", "afterlast2" from rtx to rtx_insn *.
23176 (flow_find_head_matching_sequence): Strengthen params "f1" and
23177 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
23178 "last1", "last2", "beforelast1", "beforelast2" from rtx to
23179 rtx_insn *.
23180 (outgoing_edges_match): Likewise for locals "last1", "last2".
23181 (try_crossjump_to_edge): Likewise for local "insn".
23182 Replace call to for_each_rtx with for_each_rtx_in_insn.
23183
23184 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
23185 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
23186 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
23187 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
23188 (try_optimize_cfg): Strengthen local "last" from rtx to
23189 rtx_insn *.
23190 (delete_dead_jumptables): Likewise for locals "insn", "next",
23191 "label".
23192
23193 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
23194 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
23195 "rtx else_first_tail", to reflect the basic-block.h changes above.
23196
23197 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23198
23199 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
23200 rtx_insn *.
23201 (purge_dead_tablejump_edges): Likewise.
23202 (find_bb_boundaries): Likewise for locals "insn", "end",
23203 "flow_transfer_insn".
23204
23205 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23206
23207 * caller-save.c (save_call_clobbered_regs): Strengthen locals
23208 "ins" and "prev" from rtx to rtx_insn *.
23209
23210 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23211
23212 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
23213 rtx_insn *.
23214 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
23215 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
23216 "scan_start".
23217 (load_register_parameters): Likewise for local "before_arg".
23218 (check_sibcall_argument_overlap): Likewise for param "insn".
23219 (expand_call): Likewise for locals "normal_call_insns",
23220 "tail_call_insns", "insns", "before_call", "after_args",
23221 "before_arg", "last", "prev". Strengthen one of the "last" from
23222 rtx to rtx_call_insn *.
23223 (fixup_tail_calls): Strengthen local "insn" from rtx to
23224 rtx_insn *.
23225 (emit_library_call_value_1): Likewise for locals "before_call" and
23226 "last".
23227
23228 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23229
23230 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
23231 and "last" from rtx to rtx_insn *.
23232 (expand_builtin_nonlocal_goto): Likewise for local "insn".
23233 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
23234 rtx_call_insn *.
23235 (expand_errno_check): Strengthen local "lab" from rtx to
23236 rtx_code_label *.
23237 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
23238 rtx_insn *.
23239 (expand_builtin_mathfn_2): Likewise.
23240 (expand_builtin_mathfn_ternary): Likewise.
23241 (expand_builtin_mathfn_3): Likewise.
23242 (expand_builtin_interclass_mathfn): Likewise for local "last".
23243 (expand_builtin_int_roundingfn): Likewise for local "insns".
23244 (expand_builtin_int_roundingfn_2): Likewise.
23245 (expand_builtin_strlen): Likewise for local "before_strlen".
23246 (expand_builtin_strncmp): Likewise for local "seq".
23247 (expand_builtin_signbit): Likewise for local "last".
23248 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
23249 from rtx to rtx_code_label *.
23250 (expand_stack_restore): Strengthen local "prev" from rtx to
23251 rtx_insn *.
23252
23253 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23254
23255 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
23256 to rtx_insn *.
23257 (struct btr_def_s): Likewise.
23258 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
23259 const rtx_insn *.
23260 (add_btr_def): Likewise.
23261 (new_btr_user): Likewise.
23262 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
23263 rtx to rtx_insn *.
23264 (link_btr_uses): Likewise.
23265 (move_btr_def): Likewise for locals "insp", "old_insn",
23266 "new_insn". Add checked cast to rtx_insn * for now on result of
23267 gen_move_insn.
23268 (can_move_up): Strengthen param "insn" from const_rtx to
23269 const rtx_insn *.
23270
23271 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23272
23273 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
23274 rtx_insn *.
23275 (get_uncond_jump_length): Likewise for locals "label", "jump".
23276 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
23277 "jump", "insn".
23278 (add_labels_and_missing_jumps): Likewise for local "new_jump".
23279 (fix_up_fall_thru_edges): Likewise for local "old_jump".
23280 (find_jump_block): Likewise for local "insn".
23281 (fix_crossing_conditional_branches): Likewise for locals
23282 "old_jump", "new_jump".
23283 (fix_crossing_unconditional_branches): Likewise for locals
23284 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
23285 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
23286
23287 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23288
23289 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
23290 rtx to rtx_insn *.
23291 (struct mem_insn): Likewise for field "insn".
23292 (reg_next_use): Strengthen from rtx * to rtx_insn **.
23293 (reg_next_inc_use): Likewise.
23294 (reg_next_def): Likewise.
23295 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
23296 from rtx to rtx_insn *.
23297 (move_insn_before): Likewise for param "next_insn" and local "insns".
23298 (attempt_change): Likewise for local "mov_insn".
23299 (try_merge): Likewise for param "last_insn".
23300 (get_next_ref): Likewise for return type and local "insn".
23301 Strengthen param "next_array" from rtx * to rtx_insn **.
23302 (parse_add_or_inc): Strengthen param "insn" from rtx to
23303 rtx_insn *.
23304 (find_inc): Likewise for locals "insn" and "other_insn" (three of
23305 the latter).
23306 (merge_in_block): Likewise for locals "insn", "curr",
23307 "other_insn".
23308 (pass_inc_dec::execute): Update allocations of the arrays to
23309 reflect the stronger types.
23310
23311 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23312
23313 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
23314 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
23315 from rtx to rtx_code_label *.
23316
23317 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23318
23319 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
23320 to rtx_insn *.
23321
23322 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
23323
23324 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
23325 generated a warning and prevented bootstrapping the compiler.
23326
23327 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23328
23329 * rtl.h (delete_related_insns): Strengthen return type from rtx to
23330 rtx_insn *.
23331
23332 * jump.c (delete_related_insns): Likewise, also for locals "next"
23333 and "prev".
23334
23335 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23336
23337 * genautomata.c (output_internal_insn_latency_func): When writing
23338 the function "internal_insn_latency" to insn-automata.c,
23339 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
23340 allowing the optional guard function of (define_bypass) clauses to
23341 expect a pair of rtx_insn *, rather than a pair of rtx.
23342 (output_insn_latency_func): When writing the function
23343 "insn_latency", add an "uncast_" prefix to params "insn" and
23344 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
23345 using checked casts from the params, thus enabling the above
23346 change to the generated "internal_insn_latency" function.
23347
23348 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
23349
23350 PR tree-optimization/62091
23351 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
23352 handle correctly arrays.
23353 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
23354 inheritance binfos.
23355 (record_known_type): Walk into inner type.
23356 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
23357 condition on no type changes.
23358
23359 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23360
23361 * genattrtab.c (write_attr_get): Within the generated get_attr_
23362 functions, rename param "insn" to "uncast_insn" and reintroduce
23363 "insn" as an local rtx_insn * using a checked cast, so that "insn"
23364 is an rtx_insn * within insn-attrtab.c
23365
23366 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23367
23368 * output.h (peephole): Strengthen return type from rtx to
23369 rtx_insn *.
23370 * rtl.h (delete_for_peephole): Likewise for both params.
23371 * genpeep.c (main): In generated "peephole" function, strengthen
23372 return type and local "insn" from rtx to rtx_insn *. For now,
23373 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
23374 rtx_insn *, with a checked cast.
23375 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
23376 locals "insn", "next", "prev" from rtx to rtx_insn *.
23377
23378 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
23379
23380 PR tree-optimization/62112
23381 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
23382 * gimple-iterator.h (gsi_replace): Return bool.
23383 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
23384 moved from ref_may_alias_global_p.
23385 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
23386 New overloads.
23387 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
23388 (stmt_kills_ref_p_1): Rename...
23389 (stmt_kills_ref_p): ... to this.
23390 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
23391 stmt_kills_ref_p): Declare.
23392 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
23393 Move the self-assignment case...
23394 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
23395
23396 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23397
23398 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
23399
23400 * emit-rtl.c (try_split): Likewise, also for locals "before" and
23401 "after". For now, don't strengthen param "trial", which requires
23402 adding checked casts when returning it.
23403
23404 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23405
23406 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
23407 "label" from rtx to rtx_code_label *. Strengthen param 1 of
23408 "var_location" hook from rtx to rtx_insn *.
23409 (debug_nothing_rtx): Delete in favor of...
23410 (debug_nothing_rtx_code_label): New prototype.
23411 (debug_nothing_rtx_rtx): Delete unused prototype.
23412 (debug_nothing_rtx_insn): New prototype.
23413
23414 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
23415 invoking debug_hooks->var_location (in two places, one in a NOTE
23416 case of a switch statement, the other guarded by a CALL_P
23417 conditional. Add checked cast to rtx_code_label * when invoking
23418 debug_hooks->label (within CODE_LABEL case of switch statement).
23419
23420 * dbxout.c (dbx_debug_hooks): Update "label" hook from
23421 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
23422 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
23423 (xcoff_debug_hooks): Likewise.
23424 * debug.c (do_nothing_debug_hooks): Likewise.
23425 (debug_nothing_rtx): Delete in favor of...
23426 (debug_nothing_rtx_insn): New function.
23427 (debug_nothing_rtx_rtx): Delete unused function.
23428 (debug_nothing_rtx_code_label): New function.
23429 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
23430 debug_nothing_rtx to debug_nothing_rtx_code_label.
23431 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
23432 to rtx_insn *.
23433 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
23434 debug_nothing_rtx to debug_nothing_rtx_insn.
23435 (sdbout_label): Strengthen param "insn" from rtx to
23436 rtx_code_label *.
23437 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
23438 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
23439 "var_location" hook from debug_nothing_rtx to
23440 debug_nothing_rtx_insn.
23441
23442 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23443
23444 * recog.h (insn_output_fn): Update this function typedef to match
23445 the changes below to the generated output functions, strengthening
23446 the 2nd param from rtx to rtx_insn *.
23447
23448 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
23449 insn when invoking an output function, to match the new signature
23450 of insn_output_fn with a stronger second param.
23451
23452 * genconditions.c (write_header): In the generated code for
23453 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
23454 to match the other changes in this patch.
23455
23456 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
23457 the generated "gen_" functions from rtx to rtx_insn * within their
23458 implementations.
23459
23460 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
23461 the subfunctions within the generated "recog_", "split", "peephole2"
23462 function trees from rtx to rtx_insn *. For now, the top-level
23463 generated functions ("recog", "split", "peephole2") continue to
23464 take a plain rtx for "insn", to avoid introducing dependencies on
23465 other patches. Rename this 2nd param from "insn" to
23466 "uncast_insn", and reintroduce "insn" as a local variable of type
23467 rtx_insn *, initialized at the top of the generated function with
23468 a checked cast on "uncast_insn".
23469 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
23470 the generated "gen_" functions from rtx to rtx_insn * within their
23471 prototypes.
23472
23473 * genoutput.c (process_template): Strengthen the 2nd param within
23474 the generated "output_" functions "insn" from rtx to rtx_insn *.
23475
23476 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
23477
23478 * tree-profile.c (tree_profiling): Skip external functions
23479 when doing coverage instrumentation.
23480 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
23481
23482 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23483
23484 * config/rs6000/altivec.h (vec_cpsgn): New #define.
23485 (vec_mergee): Likewise.
23486 (vec_mergeo): Likewise.
23487 (vec_cntlz): Likewise.
23488 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
23489 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
23490 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
23491 VMRGEW, and VMRGOW.
23492 * doc/extend.texi: Document various forms of vec_cpsgn,
23493 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
23494 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
23495 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
23496 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
23497 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
23498
23499 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23500
23501 * config/rs6000/rs6000.c (context.h): New include.
23502 (tree-pass.h): Likewise.
23503 (make_pass_analyze_swaps): New decl.
23504 (rs6000_option_override): Register pass_analyze_swaps.
23505 (swap_web_entry): New subsclass of web_entry_base (df.h).
23506 (special_handling_values): New enum.
23507 (union_defs): New function.
23508 (union_uses): Likewise.
23509 (insn_is_load_p): Likewise.
23510 (insn_is_store_p): Likewise.
23511 (insn_is_swap_p): Likewise.
23512 (rtx_is_swappable_p): Likewise.
23513 (insn_is_swappable_p): Likewise.
23514 (chain_purpose): New enum.
23515 (chain_contains_only_swaps): New function.
23516 (mark_swaps_for_removal): Likewise.
23517 (swap_const_vector_halves): Likewise.
23518 (adjust_subreg_index): Likewise.
23519 (permute_load): Likewise.
23520 (permute_store): Likewise.
23521 (handle_special_swappables): Likewise.
23522 (replace_swap_with_copy): Likewise.
23523 (dump_swap_insn_table): Likewise.
23524 (rs6000_analyze_swaps): Likewise.
23525 (pass_data_analyze_swaps): New pass_data.
23526 (pass_analyze_swaps): New rtl_opt_pass.
23527 (make_pass_analyze_swaps): New function.
23528 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
23529
23530 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23531
23532 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
23533 type from rtx to rtx_insn *.
23534 (create_copy_of_insn_rtx): Likewise.
23535 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
23536 (create_copy_of_insn_rtx): Likewise, also for local "res".
23537
23538 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23539
23540 * rtl.h (find_first_parameter_load): Strengthen return type from
23541 rtx to rtx_insn *.
23542 * rtlanal.c (find_first_parameter_load): Strengthen return type
23543 from rtx to rtx_insn *. Add checked cast for now, to postpone
23544 strengthening the params.
23545
23546 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
23547
23548 PR fortran/44054
23549 * diagnostic.c: Set default caret.
23550 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
23551 line is needed.
23552 * diagnostic.h (struct diagnostic_context):
23553
23554 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23555
23556 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
23557 (sel_bb_head): Strengthen return type insn_t (currently just an
23558 rtx) to rtx_insn *.
23559 (sel_bb_end): Likewise.
23560
23561 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
23562 (sel_bb_head): Strengthen return type and local "head" from
23563 insn_t (currently just an rtx) to rtx_insn *.
23564 (sel_bb_end): Likewise for return type.
23565 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
23566 working with insn.
23567
23568 2014-08-21 David Malcolm <dmalcolm@redhat.com>
23569
23570 * basic-block.h (get_last_bb_insn): Strengthen return type from
23571 rtx to rtx_insn *.
23572 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
23573 end".
23574
23575 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
23576
23577 PR fortran/44054
23578 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
23579 to here ...
23580 (diagnostic_report_diagnostic): ... from here.
23581 * toplev.c (general_init): Move code to c-family.
23582
23583 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23584
23585 * df.h (web_entry_base): Replace existing struct web_entry with a
23586 new class web_entry_base with only the predecessor member.
23587 (unionfind_root): Remove declaration and move to class member.
23588 (unionfind_union): Remove declaration and move to friend
23589 function.
23590 (union_defs): Remove declaration.
23591 * web.c (web_entry_base::unionfind_root): Modify to be member
23592 function and adjust accessors.
23593 (unionfind_union): Modify to be friend function and adjust
23594 accessors.
23595 (web_entry): New subclass of web_entry_base containing the reg
23596 member.
23597 (union_match_dups): Modify for struct -> class changes.
23598 (union_defs): Likewise.
23599 (entry_register): Likewise.
23600 (pass_web::execute): Likewise.
23601
23602 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
23603
23604 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
23605 builtin define __VEC_ELEMENT_REG_ORDER__.
23606
23607 2014-08-20 Martin Jambor <mjambor@suse.cz>
23608 Wei Mi <wmi@google.com>
23609
23610 PR ipa/60449
23611 PR middle-end/61776
23612 * tree-ssa-operands.c (update_stmt_operands): Remove
23613 MODIFIED_NORETURN_CALLS.
23614 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
23615 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
23616 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
23617 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
23618 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
23619 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
23620 (gimple_call_set_ctrl_altering): New func.
23621 (gimple_call_ctrl_altering_p): Ditto.
23622 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
23623 (make_blocks): Use gimple_call_initialize_ctrl_altering.
23624 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
23625 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
23626 remove MODIFIED_NORETURN_CALLS.
23627
23628 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
23629
23630 * coverage.c (coverage_compute_profile_id): Return non-0;
23631 also handle symbols with unique name.
23632 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
23633
23634 2014-08-20 Steve Ellcey <sellcey@mips.com>
23635
23636 PR middle-end/49191
23637 * doc/sourcebuild.texi (non_strict_align): New.
23638
23639 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
23640
23641 * cgraphunit.c (ipa_passes, compile): Reshedule
23642 symtab_remove_unreachable_nodes passes; update comments.
23643 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
23644 TODO_remove_functions before the pass; the functions ought to be
23645 already removed.
23646 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
23647 TODO_remove_functions.
23648 * passes.c (pass_data_early_local_passes): Do not schedule function
23649 removal.
23650 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
23651
23652 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
23653
23654 PR c/59304
23655 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
23656 before setting the option.
23657 * diagnostic.c (diagnostic_classify_diagnostic): Record
23658 command-line status.
23659
23660 2014-08-20 Richard Biener <rguenther@suse.de>
23661
23662 PR lto/62190
23663 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
23664 to build uint{16,32,64}_type_node.
23665
23666 2014-08-20 Terry Guo <terry.guo@arm.com>
23667
23668 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
23669 with immediate_operand.
23670
23671 2014-08-20 David Malcolm <dmalcolm@redhat.com>
23672
23673 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
23674 "insn" from an as_a to a safe_as_a, for the case when "insn" is
23675 NULL.
23676
23677 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
23678
23679 PR preprocessor/51303
23680 * incpath.c (remove_duplicates): Use cpp_warning.
23681
23682 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
23683
23684 PR c/60975
23685 PR c/53063
23686 * doc/options.texi (CPP): Document it.
23687 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
23688 * optc-gen.awk: Handle CPP.
23689 * opth-gen.awk: Likewise.
23690
23691 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23692
23693 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
23694 rtx_insn *.
23695 (duplicate_insn_chain): Likewise.
23696 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
23697 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
23698 checked cast for now (until we can strengthen the params in the
23699 same way).
23700 (duplicate_insn_chain): Likewise.
23701
23702 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23703
23704 * rtl.h (next_cc0_user): Strengthen return type from rtx to
23705 rtx_insn *.
23706 (prev_cc0_setter): Likewise.
23707
23708 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
23709 rtx_insn *, adding checked casts for now as necessary.
23710 (prev_cc0_setter): Likewise.
23711
23712 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23713
23714 * expr.h (emit_move_insn): Strengthen return type from rtx to
23715 rtx_insn *.
23716 (emit_move_insn_1): Likewise.
23717 (emit_move_complex_push): Likewise.
23718 (emit_move_complex_parts): Likewise.
23719
23720 * expr.c (emit_move_via_integer): Strengthen return type from rtx
23721 to rtx_insn *. Replace use of NULL_RTX with NULL when working
23722 with insns.
23723 (emit_move_complex_push): Strengthen return type from rtx to
23724 rtx_insn *.
23725 (emit_move_complex): Likewise, also for local "ret".
23726 (emit_move_ccmode): Likewise.
23727 (emit_move_multi_word): Likewise for return type and locals
23728 "last_insn", "seq".
23729 (emit_move_insn_1): Likewise for return type and locals "result",
23730 "ret".
23731 (emit_move_insn): Likewise for return type and local "last_insn".
23732 (compress_float_constant): Likewise.
23733
23734 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23735
23736 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
23737 from rtx to rtx_insn *.
23738
23739 * rtl.h (emit_insn_before): Likewise.
23740 (emit_insn_before_noloc): Likewise.
23741 (emit_insn_before_setloc): Likewise.
23742 (emit_jump_insn_before): Likewise.
23743 (emit_jump_insn_before_noloc): Likewise.
23744 (emit_jump_insn_before_setloc): Likewise.
23745 (emit_call_insn_before): Likewise.
23746 (emit_call_insn_before_noloc): Likewise.
23747 (emit_call_insn_before_setloc): Likewise.
23748 (emit_debug_insn_before): Likewise.
23749 (emit_debug_insn_before_noloc): Likewise.
23750 (emit_debug_insn_before_setloc): Likewise.
23751 (emit_label_before): Likewise.
23752 (emit_insn_after): Likewise.
23753 (emit_insn_after_noloc): Likewise.
23754 (emit_insn_after_setloc): Likewise.
23755 (emit_jump_insn_after): Likewise.
23756 (emit_jump_insn_after_noloc): Likewise.
23757 (emit_jump_insn_after_setloc): Likewise.
23758 (emit_call_insn_after): Likewise.
23759 (emit_call_insn_after_noloc): Likewise.
23760 (emit_call_insn_after_setloc): Likewise.
23761 (emit_debug_insn_after): Likewise.
23762 (emit_debug_insn_after_noloc): Likewise.
23763 (emit_debug_insn_after_setloc): Likewise.
23764 (emit_label_after): Likewise.
23765 (emit_insn): Likewise.
23766 (emit_debug_insn): Likewise.
23767 (emit_jump_insn): Likewise.
23768 (emit_call_insn): Likewise.
23769 (emit_label): Likewise.
23770 (gen_clobber): Likewise.
23771 (emit_clobber): Likewise.
23772 (gen_use): Likewise.
23773 (emit_use): Likewise.
23774 (emit): Likewise.
23775
23776 (emit_barrier_before): Strengthen return type from rtx to
23777 rtx_barrier *.
23778 (emit_barrier_after): Likewise.
23779 (emit_barrier): Likewise.
23780
23781 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
23782 from rtx to rtx_insn *. Add checked casts for now when converting
23783 "last" from rtx to rtx_insn *.
23784 (emit_insn_before_noloc): Likewise for return type.
23785 (emit_jump_insn_before_noloc): Likewise.
23786 (emit_call_insn_before_noloc): Likewise.
23787 (emit_debug_insn_before_noloc): Likewise.
23788 (emit_barrier_before): Strengthen return type and local "insn"
23789 from rtx to rtx_barrier *.
23790 (emit_label_before): Strengthen return type from rtx to
23791 rtx_insn *. Add checked cast for now when returning param
23792 (emit_pattern_after_noloc): Strengthen return type from rtx to
23793 rtx_insn *. Add checked casts for now when converting "last" from
23794 rtx to rtx_insn *.
23795 (emit_insn_after_noloc): Strengthen return type from rtx to
23796 rtx_insn *.
23797 (emit_jump_insn_after_noloc): Likewise.
23798 (emit_call_insn_after_noloc): Likewise.
23799 (emit_debug_insn_after_noloc): Likewise.
23800 (emit_barrier_after): Strengthen return type from rtx to
23801 rtx_barrier *.
23802 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
23803 Add checked cast for now when converting "label" from rtx to
23804 rtx_insn *.
23805 (emit_pattern_after_setloc): Strengthen return type from rtx to
23806 rtx_insn *. Add checked casts for now when converting "last" from
23807 rtx to rtx_insn *.
23808 (emit_pattern_after): Strengthen return type from rtx to
23809 rtx_insn *.
23810 (emit_insn_after_setloc): Likewise.
23811 (emit_insn_after): Likewise.
23812 (emit_jump_insn_after_setloc): Likewise.
23813 (emit_jump_insn_after): Likewise.
23814 (emit_call_insn_after_setloc): Likewise.
23815 (emit_call_insn_after): Likewise.
23816 (emit_debug_insn_after_setloc): Likewise.
23817 (emit_debug_insn_after): Likewise.
23818 (emit_pattern_before_setloc): Likewise. Add checked casts for now
23819 when converting "last" from rtx to rtx_insn *.
23820 (emit_pattern_before): Strengthen return type from rtx to
23821 rtx_insn *.
23822 (emit_insn_before_setloc): Likewise.
23823 (emit_insn_before): Likewise.
23824 (emit_jump_insn_before_setloc): Likewise.
23825 (emit_jump_insn_before): Likewise.
23826 (emit_call_insn_before_setloc): Likewise.
23827 (emit_call_insn_before): Likewise.
23828 (emit_debug_insn_before_setloc): Likewise.
23829 (emit_debug_insn_before): Likewise.
23830 (emit_insn): Strengthen return type and locals "last", "insn",
23831 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
23832 within cases where we know we have an insn.
23833 (emit_debug_insn): Likewise.
23834 (emit_jump_insn): Likewise.
23835 (emit_call_insn): Strengthen return type and local "insn" from rtx
23836 to rtx_insn *.
23837 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
23838 a checked cast to rtx_insn * for now on "label".
23839 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
23840 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
23841 (emit_use): Likewise.
23842 (gen_use): Likewise, also for local "seq".
23843 (emit): Likewise for return type and local "insn".
23844 (rtx_insn): Likewise for return type and local "new_rtx".
23845
23846 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
23847 from rtx to rtx_barrier *.
23848
23849 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
23850 changed return type from rtx to rtx_insn *, we must update
23851 "emit_fn" type, and this in turn means updating...
23852 (frame_insn): ...this. Strengthen return type from rtx to
23853 rtx_insn *. Introduce a new local "insn" of the appropriate type.
23854
23855 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23856
23857 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
23858 rtx to rtx_jump_table_data *. Also for local.
23859 * rtl.h (emit_jump_table_data): Likewise.
23860
23861 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23862
23863 * basic-block.h (create_basic_block_structure): Strengthen third
23864 param "bb_note" from rtx to rtx_note *.
23865 * rtl.h (emit_note_before): Strengthen return type from rtx to
23866 rtx_note *.
23867 (emit_note_after): Likewise.
23868 (emit_note): Likewise.
23869 (emit_note_copy): Likewise. Also, strengthen param similarly.
23870 * function.h (struct rtl_data): Strengthen field
23871 "x_stack_check_probe_note" from rtx to rtx_note *.
23872
23873 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
23874 from rtx to rtx_note *.
23875 * cfgrtl.c (create_basic_block_structure): Strengthen third param
23876 "bb_note" from rtx to rtx_note *.
23877 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
23878 when calling emit_note_copy.
23879 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
23880 rtx_note *.
23881 (emit_note_after): Likewise.
23882 (emit_note_before): Likewise.
23883 (emit_note_copy): Likewise. Also, strengthen param similarly.
23884 (emit_note): Likewise.
23885 * except.c (emit_note_eh_region_end): Likewise for return type.
23886 Strengthen local "next" from rtx to rtx_insn *.
23887 (convert_to_eh_region_ranges): Strengthen local "note"
23888 from rtx to rtx_note *.
23889 * final.c (change_scope): Likewise.
23890 (reemit_insn_block_notes): Likewise, for both locals named "note".
23891 Also, strengthen local "insn" from rtx to rtx_insn *.
23892 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
23893 rtx to rtx_note *.
23894 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
23895 strengthen local "seq" from rtx to rtx_insn *.
23896 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
23897 to rtx_note *.
23898 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
23899 vec<rtx_note *>.
23900 (get_bb_note_from_pool): Strengthen return type from rtx to
23901 rtx_note *.
23902 (sel_create_basic_block): Strengthen local "new_bb_note" from
23903 insn_t to rtx_note *.
23904 * var-tracking.c (emit_note_insn_var_location): Strengthen local
23905 "note" from rtx to rtx_note *.
23906 (emit_notes_in_bb): Likewise.
23907
23908 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23909
23910 * function.h (struct rtl_data): Strengthen field
23911 "x_parm_birth_insn" from rtx to rtx_insn *.
23912 * function.c (struct assign_parm_data_all): Strengthen fields
23913 "first_conversion_insn" and "last_conversion_insn" from rtx to
23914 rtx_insn *.
23915
23916 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23917
23918 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
23919 to rtx_insn *; also for local "var_end_seq".
23920 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
23921 (maybe_cleanup_end_of_block): Likewise for param "last" and local
23922 "insn".
23923 (expand_gimple_cond): Likewise for locals "last2" and "last".
23924 (mark_transaction_restart_calls): Likewise for local "insn".
23925 (expand_gimple_stmt): Likewise for return type and locals "last"
23926 and "insn".
23927 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
23928 (avoid_complex_debug_insns): Likewise for param "insn".
23929 (expand_debug_locations): Likewise for locals "insn", "last",
23930 "prev_insn" and "insn2".
23931 (expand_gimple_basic_block): Likewise for local "last".
23932 (construct_exit_block): Likewise for locals "head", "end",
23933 "orig_end".
23934 (pass_expand::execute): Likewise for locals "var_seq",
23935 "var_ret_seq", "next".
23936
23937 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23938
23939 * asan.h (asan_emit_stack_protection): Strengthen return type from
23940 rtx to rtx_insn *.
23941 * asan.c (asan_emit_stack_protection): Likewise. Add local
23942 "insns" to hold the return value.
23943
23944 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23945
23946 * basic-block.h (bb_note): Strengthen return type from rtx to
23947 rtx_note *.
23948 * sched-int.h (bb_note): Likewise.
23949 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
23950
23951 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23952
23953 * rtl.h (make_insn_raw): Strengthen return type from rtx to
23954 rtx_insn *.
23955
23956 * emit-rtl.c (make_insn_raw): Strengthen return type and local
23957 "insn" from rtx to rtx_insn *.
23958 (make_debug_insn_raw): Strengthen return type from rtx to
23959 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
23960 (make_jump_insn_raw): Strengthen return type from rtx to
23961 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
23962 (make_call_insn_raw): Strengthen return type from rtx to
23963 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
23964 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
23965 callback from rtx to rtx_insn *; likewise for local "insn" and
23966 "next", adding a checked cast to rtx_insn in the relevant cases of
23967 the switch statement.
23968 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
23969 callback from rtx to rtx_insn *.
23970 (emit_pattern_after_setloc): Likewise.
23971 (emit_pattern_after): Likewise.
23972 (emit_pattern_before_setloc): Likewise.
23973 (emit_pattern_before): Likewise.
23974
23975 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23976
23977 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
23978 rtx_call_insn *.
23979 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
23980 accepting an rtx_insn *.
23981 (last_call_insn): Strengthen return type from rtx to
23982 rtx_call_insn *.
23983
23984 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23985
23986 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
23987 "insns" from rtx to rtx_insn *.
23988 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
23989 locals "insn" and "prev".
23990
23991 2014-08-19 David Malcolm <dmalcolm@redhat.com>
23992
23993 * rtl.h (tablejump_p): Strengthen third param from rtx * to
23994 rtx_jump_table_data **.
23995
23996 * cfgbuild.c (make_edges): Introduce local "table", using it in
23997 place of "tmp" for jump table data.
23998 (find_bb_boundaries): Strengthen local "table" from rtx to
23999 rtx_jump_table_data *.
24000 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
24001 (outgoing_edges_match): Likewise for locals "table1" and "table2".
24002 (try_crossjump_to_edge): Likewise.
24003 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
24004 "table".
24005 (patch_jump_insn): Introduce local "table", using it in place of
24006 "tmp" for jump table data.
24007 (force_nonfallthru_and_redirect): Introduce local "table", so that
24008 call to tablejump_p can receive an rtx_jump_table_data **. Update
24009 logic around the call to overwrite "note" appropriately if
24010 tablejump_p returns non-zero.
24011 (get_last_bb_insn): Introduce local "table", using it in place of
24012 "tmp" for jump table data.
24013 * dwarf2cfi.c (create_trace_edges): Likewise.
24014
24015 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
24016 from rtx to rtx_jump_table_data *.
24017 (create_fix_barrier): Strengthen local "tmp" from rtx to
24018 rtx_jump_table_data *.
24019 (arm_reorg): Likewise for local "table".
24020
24021 * config/s390/s390.c (s390_chunkify_start): Likewise.
24022
24023 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
24024
24025 * jump.c (delete_related_insns): Strengthen local "lab_next" from
24026 rtx to rtx_jump_table_data *.
24027
24028 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
24029 rtx_jump_table_data **. Add a checked cast when writing through
24030 the pointer: we know there that local "table" is non-NULL and that
24031 JUMP_TABLE_DATA_P (table) holds.
24032 (label_is_jump_target_p): Introduce local "table", using it in
24033 place of "tmp" for jump table data.
24034
24035 2014-08-19 Marek Polacek <polacek@redhat.com>
24036
24037 PR c++/62153
24038 * doc/invoke.texi: Document -Wbool-compare.
24039
24040 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24041
24042 * rtl.h (entry_of_function): Strengthen return type from rtx to
24043 rtx_insn *.
24044 * cfgrtl.c (entry_of_function): Likewise.
24045
24046 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24047
24048 * emit-rtl.h (get_insns): Strengthen return type from rtx to
24049 rtx_insn *, adding a checked cast for now.
24050 (get_last_insn): Likewise.
24051
24052 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24053
24054 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
24055 rtx_code_label *.
24056
24057 * emit-rtl.c (gen_label_rtx): Likewise.
24058
24059 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24060
24061 * rtl.h (previous_insn): Strengthen return type from rtx to
24062 rtx_insn *.
24063 (next_insn): Likewise.
24064 (prev_nonnote_insn): Likewise.
24065 (prev_nonnote_insn_bb): Likewise.
24066 (next_nonnote_insn): Likewise.
24067 (next_nonnote_insn_bb): Likewise.
24068 (prev_nondebug_insn): Likewise.
24069 (next_nondebug_insn): Likewise.
24070 (prev_nonnote_nondebug_insn): Likewise.
24071 (next_nonnote_nondebug_insn): Likewise.
24072 (prev_real_insn): Likewise.
24073 (next_real_insn): Likewise.
24074 (prev_active_insn): Likewise.
24075 (next_active_insn): Likewise.
24076
24077 * emit-rtl.c (next_insn): Strengthen return type from rtx to
24078 rtx_insn *, adding a checked cast.
24079 (previous_insn): Likewise.
24080 (next_nonnote_insn): Likewise.
24081 (next_nonnote_insn_bb): Likewise.
24082 (prev_nonnote_insn): Likewise.
24083 (prev_nonnote_insn_bb): Likewise.
24084 (next_nondebug_insn): Likewise.
24085 (prev_nondebug_insn): Likewise.
24086 (next_nonnote_nondebug_insn): Likewise.
24087 (prev_nonnote_nondebug_insn): Likewise.
24088 (next_real_insn): Likewise.
24089 (prev_real_insn): Likewise.
24090 (next_active_insn): Likewise.
24091 (prev_active_insn): Likewise.
24092
24093 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
24094 param "stepfunc" so that it returns an rtx_insn * rather than an
24095 rtx, to track the change to prev_nonnote_insn_bb, which is the
24096 only function this is called with.
24097 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
24098
24099 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
24100
24101 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
24102 assert.
24103
24104 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24105
24106 * coretypes.h (class rtx_debug_insn): Add forward declaration.
24107 (class rtx_nonjump_insn): Likewise.
24108 (class rtx_jump_insn): Likewise.
24109 (class rtx_call_insn): Likewise.
24110 (class rtx_jump_table_data): Likewise.
24111 (class rtx_barrier): Likewise.
24112 (class rtx_code_label): Likewise.
24113 (class rtx_note): Likewise.
24114
24115 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
24116 adding the invariant DEBUG_INSN_P (X).
24117 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
24118 the invariant NONJUMP_INSN_P (X).
24119 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
24120 the invariant JUMP_P (X).
24121 (class rtx_call_insn): New, a subclass of rtx_insn, adding
24122 the invariant CALL_P (X).
24123 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
24124 invariant JUMP_TABLE_DATA_P (X).
24125 (class rtx_barrier): New, a subclass of rtx_insn, adding the
24126 invariant BARRIER_P (X).
24127 (class rtx_code_label): New, a subclass of rtx_insn, adding
24128 the invariant LABEL_P (X).
24129 (class rtx_note): New, a subclass of rtx_insn, adding
24130 the invariant NOTE_P(X).
24131 (is_a_helper <rtx_debug_insn *>::test): New.
24132 (is_a_helper <rtx_nonjump_insn *>::test): New.
24133 (is_a_helper <rtx_jump_insn *>::test): New.
24134 (is_a_helper <rtx_call_insn *>::test): New.
24135 (is_a_helper <rtx_jump_table_data *>::test): New functions,
24136 overloaded for both rtx and rtx_insn *.
24137 (is_a_helper <rtx_barrier *>::test): New.
24138 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
24139 for both rtx and rtx_insn *.
24140 (is_a_helper <rtx_note *>::test): New.
24141
24142 2014-08-19 Marek Polacek <polacek@redhat.com>
24143
24144 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
24145 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
24146 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
24147 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
24148
24149 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24150
24151 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
24152 rtx_insn *. To help with transition, for now, convert from an
24153 access macro into a pair of functions: BND_TO, returning an
24154 rtx_insn *, and...
24155 (SET_BND_TO): New function, for use where BND_TO is used as an
24156 lvalue.
24157
24158 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
24159 SET_BND_TO.
24160 (BND_TO): New function, adding a checked cast.
24161 (SET_BND_TO): New function.
24162
24163 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
24164 SET_BND_TO.
24165 (compute_av_set_on_boundaries): Likewise.
24166
24167 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
24168
24169 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
24170 destination if it is used in source.
24171 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
24172 (*popcount<mode>2_falsedep_1): Likewise.
24173
24174 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
24175
24176 PR other/62168
24177 * configure.ac: Set install_gold_as_default to no first.
24178 * configure: Regenerated.
24179
24180 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24181
24182 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
24183 "note_list" field will eventually be an rtx_insn *. To help with
24184 transition, for now, convert from an access macro into a pair of
24185 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
24186 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
24187 used as an lvalue.
24188
24189 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
24190 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
24191
24192 * sel-sched-ir.c (init_bb): Likewise.
24193 (sel_restore_notes): Likewise.
24194 (move_bb_info): Likewise.
24195 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
24196 (SET_BB_NOTE_LIST): New function.
24197
24198 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24199
24200 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
24201 field will eventually be an rtx_insn *. To help with transition,
24202 for now, convert from an access macro into a pair of functions:
24203 VINSN_INSN_RTX, returning an rtx_insn *, and...
24204 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
24205 is used as an lvalue.
24206
24207 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
24208 SET_VINSN_INSN_RTX where it's used as an lvalue.
24209 (VINSN_INSN_RTX): New function.
24210 (SET_VINSN_INSN_RTX): New function.
24211
24212 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24213
24214 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
24215 eventually be rtx_insn *, but to help with transition, for now,
24216 convert from an access macro into a pair of functions: DEP_PRO
24217 returning an rtx_insn * and...
24218 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
24219 lvalue, returning an rtx&.
24220 (DEP_CON): Analogous changes to DEP_PRO above.
24221 (SET_DEP_CON): Likewise.
24222
24223 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
24224 an lvalue to SET_DEP_CON.
24225 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
24226 (sd_copy_back_deps): Likewise for DEP_CON.
24227 (DEP_PRO): New function, adding a checked cast for now.
24228 (DEP_CON): Likewise.
24229 (SET_DEP_PRO): New function.
24230 (SET_DEP_CON): Likewise.
24231
24232 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
24233
24234 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
24235 (extra_options): Add i386/cygwin.opt.
24236 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
24237 (CPP_SPEC): Accept -pthread.
24238 (LINK_SPEC): Ditto.
24239 (GOMP_SELF_SPECS): Update comment.
24240 * config/i386/cygwin.opt: New file for -pthread flag.
24241
24242 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24243
24244 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
24245 * df.h (DF_REF_INSN): Convert from a macro to a function, so
24246 that we can return an rtx_insn *.
24247
24248 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
24249
24250 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
24251 when building executables, not DLLs. Add --large-address-aware
24252 under the same conditions.
24253 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
24254 when building executables, not DLLs. Add --large-address-aware
24255 under the same conditions when using -m32.
24256
24257 * config/i386/cygwin-stdint.h: Throughout, make type
24258 definitions dependent on target architecture, not host.
24259
24260 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24261
24262 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
24263 the return type from rtx to rtx_insn *, which will enable various
24264 conversions in followup patches. For now this is is done by a
24265 checked cast.
24266 (NEXT_INSN): Likewise.
24267 (SET_PREV_INSN): Convert to an inline function. This is intended
24268 for use as an lvalue, and so returns an rtx& to allow in-place
24269 modification.
24270 (SET_NEXT_INSN): Likewise.
24271
24272 2014-07-08 Mark Wielaard <mjw@redhat.com>
24273
24274 PR debug/59051
24275 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
24276
24277 2014-08-19 Marek Polacek <polacek@redhat.com>
24278
24279 PR c/61271
24280 * cgraphunit.c (handle_alias_pairs): Fix condition.
24281
24282 2014-08-19 Richard Biener <rguenther@suse.de>
24283
24284 * gimple-fold.c (fold_gimple_assign): Properly build a
24285 null-pointer constant when devirtualizing addresses.
24286
24287 2014-07-07 Mark Wielaard <mjw@redhat.com>
24288
24289 * dwarf2out.c (decl_quals): New function.
24290 (modified_type_die): Take one cv_quals argument instead of two,
24291 one for const and one for volatile.
24292 (add_type_attribute): Likewise.
24293 (generic_parameter_die): Call add_type_attribute with one modifier
24294 argument.
24295 (base_type_for_mode): Likewise.
24296 (add_bounds_info): Likewise.
24297 (add_subscript_info): Likewise.
24298 (gen_array_type_die): Likewise.
24299 (gen_descr_array_type_die): Likewise.
24300 (gen_entry_point_die): Likewise.
24301 (gen_enumeration_type_die): Likewise.
24302 (gen_formal_parameter_die): Likewise.
24303 (gen_subprogram_die): Likewise.
24304 (gen_variable_die): Likewise.
24305 (gen_const_die): Likewise.
24306 (gen_field_die): Likewise.
24307 (gen_pointer_type_die): Likewise.
24308 (gen_reference_type_die): Likewise.
24309 (gen_ptr_to_mbr_type_die): Likewise.
24310 (gen_inheritance_die): Likewise.
24311 (gen_subroutine_type_die): Likewise.
24312 (gen_typedef_die): Likewise.
24313 (force_type_die): Likewise.
24314
24315 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24316
24317 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
24318 if unset.
24319 * configure: Regenerate.
24320
24321 2014-08-19 Richard Biener <rguenther@suse.de>
24322
24323 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
24324 DECL_EXTERNALs in BLOCKs as non-references.
24325 * tree-streamer-out.c (streamer_write_chain): Likewise.
24326
24327 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
24328 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24329 Anna Tikhonova <anna.tikhonova@intel.com>
24330 Ilya Tocar <ilya.tocar@intel.com>
24331 Andrey Turetskiy <andrey.turetskiy@intel.com>
24332 Ilya Verbin <ilya.verbin@intel.com>
24333 Kirill Yukhin <kirill.yukhin@intel.com>
24334 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24335
24336 * config/i386/sse.md
24337 (define_mode_iterator VI48_AVX512F): Delete.
24338 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
24339 (define_mode_iterator VI2_AVX512VL): Ditto.
24340 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
24341 Delete.
24342 (define_insn
24343 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
24344 New.
24345 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
24346 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
24347 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
24348 with VI48_AVX512F_AVX512VL): New.
24349 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
24350 with VI2_AVX512VL): Ditto.
24351
24352 2014-08-19 Marek Polacek <polacek@redhat.com>
24353
24354 * doc/invoke.texi: Document -Wc99-c11-compat.
24355
24356 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24357
24358 * rtl.h (PREV_INSN): Split macro in two: the existing one,
24359 for rvalues, and...
24360 (SET_PREV_INSN): New macro, for use as an lvalue.
24361 (NEXT_INSN, SET_NEXT_INSN): Likewise.
24362
24363 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
24364 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
24365 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
24366 (fixup_abnormal_edges): Likewise.
24367 (unlink_insn_chain): Likewise.
24368 (fixup_reorder_chain): Likewise.
24369 (cfg_layout_delete_block): Likewise.
24370 (cfg_layout_merge_blocks): Likewise.
24371 * combine.c (update_cfg_for_uncondjump): Likewise.
24372 * emit-rtl.c (link_insn_into_chain): Likewise.
24373 (remove_insn): Likewise.
24374 (delete_insns_since): Likewise.
24375 (reorder_insns_nobb): Likewise.
24376 (emit_insn_after_1): Likewise.
24377 * final.c (rest_of_clean_state): Likewise.
24378 (final_scan_insn): Likewise.
24379 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
24380 * haifa-sched.c (concat_note_lists): Likewise.
24381 (remove_notes): Likewise.
24382 (restore_other_notes): Likewise.
24383 (move_insn): Likewise.
24384 (unlink_bb_notes): Likewise.
24385 (restore_bb_notes): Likewise.
24386 * jump.c (delete_for_peephole): Likewise.
24387 * optabs.c (emit_libcall_block_1): Likewise.
24388 * reorg.c (emit_delay_sequence): Likewise.
24389 (fill_simple_delay_slots): Likewise.
24390 * sel-sched-ir.c (sel_move_insn): Likewise.
24391 (sel_remove_insn): Likewise.
24392 (get_bb_note_from_pool): Likewise.
24393 * sel-sched.c (move_nop_to_previous_block): Likewise.
24394
24395 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
24396 * config/c6x/c6x.c (gen_one_bundle): Likewise.
24397 (c6x_gen_bundles): Likewise.
24398 (hwloop_optimize): Likewise.
24399 * config/frv/frv.c (frv_function_prologue): Likewise.
24400 (frv_register_nop): Likewise.
24401 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
24402 (ia64_reorg): Likewise.
24403 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
24404 (mep_make_bundle): Likewise.
24405 (mep_bundle_insns): Likewise.
24406 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
24407 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
24408 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
24409
24410 2014-08-19 David Malcolm <dmalcolm@redhat.com>
24411
24412 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
24413 return type from rtx to rtx_insn *.
24414 (BB_END): Likewise.
24415 (BB_HEADER): Likewise.
24416 (BB_FOOTER): Likewise.
24417 (SET_BB_HEAD): Convert to a function.
24418 (SET_BB_END): Likewise.
24419 (SET_BB_HEADER): Likewise.
24420 (SET_BB_FOOTER): Likewise.
24421
24422 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
24423 Strengthen the return type from rtx to rtx_insn *. For now, this
24424 is done by adding a checked cast, but this will eventually
24425 become a field lookup.
24426 (BB_END): Likewise.
24427 (BB_HEADER): Likewise.
24428 (BB_FOOTER): Likewise.
24429 (SET_BB_HEAD): New function, from macro of same name. This is
24430 intended for use as an lvalue, and so returns an rtx& to allow
24431 in-place modification.
24432 (SET_BB_END): Likewise.
24433 (SET_BB_HEADER): Likewise.
24434 (SET_BB_FOOTER): Likewise.
24435
24436 2014-08-18 David Malcolm <dmalcolm@redhat.com>
24437
24438 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
24439 for rvalues, and...
24440 (SET_BB_HEAD): New macro, for use as a lvalue.
24441 (BB_END, SET_BB_END): Likewise.
24442 (BB_HEADER, SET_BB_HEADER): Likewise.
24443 (BB_FOOTER, SET_BB_FOOTER): Likewise.
24444
24445 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
24446 of BB_* macros into SET_BB_* macros.
24447 (fix_crossing_unconditional_branches): Likewise.
24448 * caller-save.c (save_call_clobbered_regs): Likewise.
24449 (insert_one_insn): Likewise.
24450 * cfgbuild.c (find_bb_boundaries): Likewise.
24451 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
24452 (outgoing_edges_match): Likewise.
24453 (try_optimize_cfg): Likewise.
24454 * cfgexpand.c (expand_gimple_cond): Likewise.
24455 (expand_gimple_tailcall): Likewise.
24456 (expand_gimple_basic_block): Likewise.
24457 (construct_exit_block): Likewise.
24458 * cfgrtl.c (delete_insn): Likewise.
24459 (create_basic_block_structure): Likewise.
24460 (rtl_delete_block): Likewise.
24461 (rtl_split_block): Likewise.
24462 (emit_nop_for_unique_locus_between): Likewise.
24463 (rtl_merge_blocks): Likewise.
24464 (block_label): Likewise.
24465 (try_redirect_by_replacing_jump): Likewise.
24466 (emit_barrier_after_bb): Likewise.
24467 (fixup_abnormal_edges): Likewise.
24468 (record_effective_endpoints): Likewise.
24469 (relink_block_chain): Likewise.
24470 (fixup_reorder_chain): Likewise.
24471 (fixup_fallthru_exit_predecessor): Likewise.
24472 (cfg_layout_duplicate_bb): Likewise.
24473 (cfg_layout_split_block): Likewise.
24474 (cfg_layout_delete_block): Likewise.
24475 (cfg_layout_merge_blocks): Likewise.
24476 * combine.c (update_cfg_for_uncondjump): Likewise.
24477 * emit-rtl.c (add_insn_after): Likewise.
24478 (remove_insn): Likewise.
24479 (reorder_insns): Likewise.
24480 (emit_insn_after_1): Likewise.
24481 * haifa-sched.c (get_ebb_head_tail): Likewise.
24482 (restore_other_notes): Likewise.
24483 (move_insn): Likewise.
24484 (sched_extend_bb): Likewise.
24485 (fix_jump_move): Likewise.
24486 * ifcvt.c (noce_process_if_block): Likewise.
24487 (dead_or_predicable): Likewise.
24488 * ira.c (update_equiv_regs): Likewise.
24489 * reg-stack.c (change_stack): Likewise.
24490 * sel-sched-ir.c (sel_move_insn): Likewise.
24491 * sel-sched.c (move_nop_to_previous_block): Likewise.
24492
24493 * config/c6x/c6x.c (hwloop_optimize): Likewise.
24494 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
24495
24496 2014-08-18 David Malcolm <dmalcolm@redhat.com>
24497
24498 * rtl.h (for_each_rtx_in_insn): New function.
24499 * rtlanal.c (for_each_rtx_in_insn): Likewise.
24500
24501 2014-08-18 David Malcolm <dmalcolm@redhat.com>
24502
24503 * coretypes.h (class rtx_insn): Add forward declaration.
24504
24505 * rtl.h: Include is-a.h.
24506 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
24507 workaround to ensure gengtype knows inheritance is occurring,
24508 whilst continuing to use the pre-existing special-casing for
24509 rtx_def.
24510 (class rtx_insn): New subclass of rtx_def, adding the
24511 invariant that we're dealing with something we can sanely use
24512 INSN_UID, NEXT_INSN, PREV_INSN on.
24513 (is_a_helper <rtx_insn *>::test): New.
24514 (is_a_helper <const rtx_insn *>::test): New.
24515
24516 2014-08-18 David Malcolm <dmalcolm@redhat.com>
24517
24518 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
24519
24520 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
24521
24522 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
24523 comdats as extern.
24524
24525 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
24526
24527 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
24528 to BUILT_IN_UNREACHABLE.
24529
24530 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
24531
24532 PR target/62011
24533 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
24534 New tune flag.
24535 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
24536 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
24537 (ffs<mode>2): Do not expand with tzcnt for
24538 TARGET_AVOID_FALSE_DEP_FOR_BMI.
24539 (ffssi2_no_cmove): Ditto.
24540 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
24541 (ctz<mode>2): New expander.
24542 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
24543 (*ctz<mode>2_falsedep): New insn.
24544 (*ctz<mode>2): Rename from ctz<mode>2.
24545 (clz<mode>2_lzcnt): New expander.
24546 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
24547 (*clz<mode>2_lzcnt_falsedep): New insn.
24548 (*clz<mode>2): Rename from ctz<mode>2.
24549 (popcount<mode>2): New expander.
24550 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
24551 (*popcount<mode>2_falsedep): New insn.
24552 (*popcount<mode>2): Rename from ctz<mode>2.
24553 (*popcount<mode>2_cmp): Remove.
24554 (*popcountsi2_cmp_zext): Ditto.
24555
24556 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
24557
24558 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
24559 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
24560 * config/microblaze/microblaze.h
24561 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
24562
24563 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
24564
24565 PR other/62168
24566 * configure.ac: Set install_gold_as_default to no for
24567 --enable-gold=no.
24568 * configure: Regenerated.
24569
24570 2014-08-18 Roman Gareev <gareevroman@gmail.com>
24571
24572 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
24573 * config.in: Add undef of HAVE_isl.
24574 * configure: Regenerate.
24575 * configure.ac: Add definition of HAVE_isl.
24576 * graphite-blocking.c: Add checking of HAVE_isl.
24577 * graphite-dependences.c: Likewise.
24578 * graphite-interchange.c: Likewise.
24579 * graphite-isl-ast-to-gimple.c: Likewise.
24580 * graphite-optimize-isl.c: Likewise.
24581 * graphite-poly.c: Likewise.
24582 * graphite-scop-detection.c: Likewise.
24583 * graphite-sese-to-poly.c: Likewise.
24584 * graphite.c: Likewise.
24585 * toplev.c: Replace the checking of HAVE_cloog with the checking
24586 of HAVE_isl.
24587
24588 2014-08-18 Richard Biener <rguenther@suse.de>
24589
24590 PR tree-optimization/62090
24591 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
24592 (fold_builtin_3): Do not fold snprintf.
24593 (fold_builtin_4): Likewise.
24594 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
24595 moved from builtins.c.
24596 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
24597 (gimple_fold_builtin): Do not fold sprintf here.
24598
24599 2014-08-18 Richard Biener <rguenther@suse.de>
24600
24601 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
24602 code to ...
24603 (maybe_canonicalize_mem_ref_addr): ... this function.
24604 (fold_stmt_1): Apply it here before all simplification.
24605
24606 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
24607
24608 PR ipa/61800
24609 * cgraph.h (cgraph_node::create_indirect_edge): Add
24610 compute_indirect_info param.
24611 * cgraph.c (cgraph_node::create_indirect_edge): Compute
24612 indirect_info only when it is required.
24613 * cgraphclones.c (cgraph_clone_edge): Do not recompute
24614 indirect_info fore cloned indirect edge.
24615
24616 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24617 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24618 Anna Tikhonova <anna.tikhonova@intel.com>
24619 Ilya Tocar <ilya.tocar@intel.com>
24620 Andrey Turetskiy <andrey.turetskiy@intel.com>
24621 Ilya Verbin <ilya.verbin@intel.com>
24622 Kirill Yukhin <kirill.yukhin@intel.com>
24623 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24624
24625 * config/i386/sse.md
24626 (define_mode_iterator VI8_AVX2_AVX512BW): New.
24627 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
24628
24629 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24630 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24631 Anna Tikhonova <anna.tikhonova@intel.com>
24632 Ilya Tocar <ilya.tocar@intel.com>
24633 Andrey Turetskiy <andrey.turetskiy@intel.com>
24634 Ilya Verbin <ilya.verbin@intel.com>
24635 Kirill Yukhin <kirill.yukhin@intel.com>
24636 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24637
24638 * config/i386/sse.md
24639 (define_mode_iterator VF1_AVX512VL): New.
24640 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
24641 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
24642 New.
24643
24644 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24645 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24646 Anna Tikhonova <anna.tikhonova@intel.com>
24647 Ilya Tocar <ilya.tocar@intel.com>
24648 Andrey Turetskiy <andrey.turetskiy@intel.com>
24649 Ilya Verbin <ilya.verbin@intel.com>
24650 Kirill Yukhin <kirill.yukhin@intel.com>
24651 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24652
24653 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
24654 * config/i386/i386.md
24655 (define_code_iterator any_float): New.
24656 (define_code_attr floatsuffix): New.
24657 * config/i386/sse.md
24658 (define_mode_iterator VF1_128_256VL): New.
24659 (define_mode_iterator VF2_512_256VL): New.
24660 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
24661 TARGET check.
24662 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
24663 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
24664 New.
24665 (define_mode_attr qq2pssuff): New.
24666 (define_mode_attr sselongvecmode): New.
24667 (define_mode_attr sselongvecmodelower): New.
24668 (define_mode_attr sseintvecmode3): New.
24669 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
24670 New.
24671 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
24672 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
24673 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
24674 (define_insn "ufloatv2siv2df2<mask_name>"): New.
24675
24676 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24677 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24678 Anna Tikhonova <anna.tikhonova@intel.com>
24679 Ilya Tocar <ilya.tocar@intel.com>
24680 Andrey Turetskiy <andrey.turetskiy@intel.com>
24681 Ilya Verbin <ilya.verbin@intel.com>
24682 Kirill Yukhin <kirill.yukhin@intel.com>
24683 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24684
24685 * config/i386/sse.md
24686 (define_mode_iterator VF2_AVX512VL): New.
24687 (define_mode_attr sseintvecmode2): New.
24688 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
24689 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
24690 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
24691 (define_insn
24692 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
24693 Ditto.
24694 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
24695 Ditto.
24696 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
24697 Ditto.
24698
24699 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24700 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24701 Anna Tikhonova <anna.tikhonova@intel.com>
24702 Ilya Tocar <ilya.tocar@intel.com>
24703 Andrey Turetskiy <andrey.turetskiy@intel.com>
24704 Ilya Verbin <ilya.verbin@intel.com>
24705 Kirill Yukhin <kirill.yukhin@intel.com>
24706 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24707
24708 * config/i386/i386.md
24709 (define_insn "*movoi_internal_avx"): Add evex version.
24710 (define_insn "*movti_internal"): Ditto.
24711
24712 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24713 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24714 Anna Tikhonova <anna.tikhonova@intel.com>
24715 Ilya Tocar <ilya.tocar@intel.com>
24716 Andrey Turetskiy <andrey.turetskiy@intel.com>
24717 Ilya Verbin <ilya.verbin@intel.com>
24718 Kirill Yukhin <kirill.yukhin@intel.com>
24719 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24720
24721 * config/i386/i386.md
24722 (define_attr "isa"): Add avx512dq, noavx512dq.
24723 (define_attr "enabled"): Ditto.
24724 * config/i386/sse.md
24725 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
24726
24727 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
24728 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
24729 Anna Tikhonova <anna.tikhonova@intel.com>
24730 Ilya Tocar <ilya.tocar@intel.com>
24731 Andrey Turetskiy <andrey.turetskiy@intel.com>
24732 Ilya Verbin <ilya.verbin@intel.com>
24733 Kirill Yukhin <kirill.yukhin@intel.com>
24734 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24735
24736 * config/i386/i386.c
24737 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
24738 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
24739 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
24740 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
24741 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
24742 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
24743 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
24744 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
24745 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
24746 * config/i386/sse.md
24747 (define_mode_iterator VMOVE): Allow V4TI mode.
24748 (define_mode_iterator V_AVX512VL): New.
24749 (define_mode_iterator V): New handling for AVX512VL.
24750 (define_insn "avx512f_load<mode>_mask"): Delete.
24751 (define_insn "<avx512>_load<mode>_mask"): New.
24752 (define_insn "avx512f_store<mode>_mask"): Delete.
24753 (define_insn "<avx512>_store<mode>_mask"): New.
24754
24755
24756 2014-08-18 Yury Gribov <y.gribov@samsung.com>
24757
24758 PR sanitizer/62089
24759 * asan.c (instrument_derefs): Fix bitfield check.
24760
24761 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
24762
24763 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
24764 * config/rs6000/htm.md (ttest): Remove clobber.
24765 * config/rs6000/predicates.md (any_mask_operand): New predicate.
24766 (and_operand): Reformat.
24767 (and_2rld_operand): New predicate.
24768 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
24769 parameter.
24770 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
24771 parameter. Handle AND directly.
24772 (rs6000_split_logical_di): Remove last parameter.
24773 (rs6000_split_logical): Remove last parameter. Remove obsolete
24774 comment.
24775 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
24776 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
24777 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
24778 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
24779 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
24780 and 5 anonymous splitters): Delete.
24781 (and<mode>3): New expander.
24782 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
24783 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
24784 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
24785 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
24786 (floatdisf2_internal1): Remove clobbers.
24787 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
24788 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
24789 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
24790 (and<mode>3 for BOOL_128): Remove clobber.
24791 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
24792 rs6000_split_logical.
24793 (*bool<mode>3_internal for BOOL_128): Adjust call of
24794 rs6000_split_logical.
24795 (*boolc<mode>3_internal1 for BOOL_128,
24796 *boolc<mode>3_internal2 for BOOL_128,
24797 *boolcc<mode>3_internal1 for BOOL_128,
24798 *boolcc<mode>3_internal2 for BOOL_128,
24799 *eqv<mode>3_internal1 for BOOL_128,
24800 *eqv<mode>3_internal2 for BOOL_128,
24801 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
24802 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
24803 clobber.
24804 (*vec_reload_and_reg_<mptrsize>): Delete.
24805
24806 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
24807
24808 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
24809 and split, *boolccsi3_internal3 and split): Delete.
24810 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
24811 *boolccdi3_internal3 and split): Delete.
24812 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
24813 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
24814
24815 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
24816
24817 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
24818 and split, *boolcsi3_internal3 and split): Delete.
24819 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
24820 *boolcdi3_internal3 and split): Delete.
24821 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
24822
24823 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
24824
24825 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
24826 <'u'>: Also support printing the low-order 16 bits.
24827 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
24828 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
24829 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
24830 *booldi3_internal3 and split): Delete.
24831 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
24832 *bool<mode>3_dot2): New.
24833 (two anonymous define_splits for non_logical_cint_operand): Merge.
24834
24835 2014-08-17 Marek Polacek <polacek@redhat.com>
24836 Manuel López-Ibáñez <manu@gcc.gnu.org>
24837
24838 PR c/62059
24839 * diagnostic.c (adjust_line): Add gcc_checking_assert.
24840 (diagnostic_show_locus): Don't print caret diagnostic
24841 if a column is larger than the line_width.
24842
24843 2014-08-17 Roman Gareev <gareevroman@gmail.com>
24844
24845 * common.opt: Make the ISL AST generator to be the main code generator
24846 of Graphite.
24847
24848 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
24849
24850 * wide-int.h (generic_wide_int): Declare as class instead of struct.
24851
24852 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
24853
24854 PR target/61641
24855 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
24856 Declare.
24857 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
24858 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
24859 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
24860 Define.
24861 * config/pa/pa.md (begin_brtab): Delete insn.
24862 (end_brtab): Likewise.
24863
24864 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
24865
24866 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
24867
24868 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
24869
24870 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
24871 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
24872 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
24873 (get_dynamic_type): Remove.
24874 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
24875 (clear_speculation): Bring to ipa-deivrt.h
24876 (get_class_context): Rename to ...
24877 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
24878 (contains_type_p): Update.
24879 (get_dynamic_type): Rename to ...
24880 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
24881 (possible_polymorphic_call_targets): UPdate.
24882 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
24883 * ipa-prop.c (ipa_analyze_call_uses): Update.
24884
24885 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
24886
24887 * doc/invoke.texi (SH options): Document missing processor variant
24888 options. Remove references to Hitachi. Undocument deprecated mspace
24889 option.
24890
24891 2014-08-15 Jason Merrill <jason@redhat.com>
24892
24893 * tree.c (type_hash_canon): Uncomment assert.
24894
24895 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
24896
24897 * input.h (in_system_header_at): Add comment.
24898
24899 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
24900
24901 PR fortran/44054
24902 * diagnostic.c (build_message_string): Make it extern.
24903 * diagnostic.h (build_message_string): Make it extern.
24904
24905 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
24906
24907 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
24908 load/store from/to non-floating class pseudo.
24909
24910 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
24911
24912 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
24913
24914 2014-08-15 Richard Biener <rguenther@suse.de>
24915
24916 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
24917 (get_constraint_for_ssa_var): Remove dead code.
24918 (get_constraint_for_1): Adjust.
24919 (find_what_var_points_to): Likewise.
24920 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
24921
24922 2014-08-15 Ilya Tocar <tocarip@gmail.com>
24923
24924 PR target/61878
24925 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
24926 (_mm512_mask_cmpge_epu32_mask): Ditto.
24927 (_mm512_cmpge_epu32_mask): Ditto.
24928 (_mm512_mask_cmpge_epi64_mask): Ditto.
24929 (_mm512_cmpge_epi64_mask): Ditto.
24930 (_mm512_mask_cmpge_epu64_mask): Ditto.
24931 (_mm512_cmpge_epu64_mask): Ditto.
24932 (_mm512_mask_cmple_epi32_mask): Ditto.
24933 (_mm512_cmple_epi32_mask): Ditto.
24934 (_mm512_mask_cmple_epu32_mask): Ditto.
24935 (_mm512_cmple_epu32_mask): Ditto.
24936 (_mm512_mask_cmple_epi64_mask): Ditto.
24937 (_mm512_cmple_epi64_mask): Ditto.
24938 (_mm512_mask_cmple_epu64_mask): Ditto.
24939 (_mm512_cmple_epu64_mask): Ditto.
24940 (_mm512_mask_cmplt_epi32_mask): Ditto.
24941 (_mm512_cmplt_epi32_mask): Ditto.
24942 (_mm512_mask_cmplt_epu32_mask): Ditto.
24943 (_mm512_cmplt_epu32_mask): Ditto.
24944 (_mm512_mask_cmplt_epi64_mask): Ditto.
24945 (_mm512_cmplt_epi64_mask): Ditto.
24946 (_mm512_mask_cmplt_epu64_mask): Ditto.
24947 (_mm512_cmplt_epu64_mask): Ditto.
24948 (_mm512_mask_cmpneq_epi32_mask): Ditto.
24949 (_mm512_mask_cmpneq_epu32_mask): Ditto.
24950 (_mm512_cmpneq_epu32_mask): Ditto.
24951 (_mm512_mask_cmpneq_epi64_mask): Ditto.
24952 (_mm512_cmpneq_epi64_mask): Ditto.
24953 (_mm512_mask_cmpneq_epu64_mask): Ditto.
24954 (_mm512_cmpneq_epu64_mask): Ditto.
24955 (_mm512_castpd_ps): Ditto.
24956 (_mm512_castpd_si512): Ditto.
24957 (_mm512_castps_pd): Ditto.
24958 (_mm512_castps_si512): Ditto.
24959 (_mm512_castsi512_ps): Ditto.
24960 (_mm512_castsi512_pd): Ditto.
24961 (_mm512_castpd512_pd128): Ditto.
24962 (_mm512_castps512_ps128): Ditto.
24963 (_mm512_castsi512_si128): Ditto.
24964 (_mm512_castpd512_pd256): Ditto.
24965 (_mm512_castps512_ps256): Ditto.
24966 (_mm512_castsi512_si256): Ditto.
24967 (_mm512_castpd128_pd512): Ditto.
24968 (_mm512_castps128_ps512): Ditto.
24969 (_mm512_castsi128_si512): Ditto.
24970 (_mm512_castpd256_pd512): Ditto.
24971 (_mm512_castps256_ps512): Ditto.
24972 (_mm512_castsi256_si512): Ditto.
24973 (_mm512_cmpeq_epu32_mask): Ditto.
24974 (_mm512_mask_cmpeq_epu32_mask): Ditto.
24975 (_mm512_mask_cmpeq_epu64_mask): Ditto.
24976 (_mm512_cmpeq_epu64_mask): Ditto.
24977 (_mm512_cmpgt_epu32_mask): Ditto.
24978 (_mm512_mask_cmpgt_epu32_mask): Ditto.
24979 (_mm512_mask_cmpgt_epu64_mask): Ditto.
24980 (_mm512_cmpgt_epu64_mask): Ditto.
24981 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
24982 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
24983 * config/i386/i386.c (enum ix86_builtins): Add
24984 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
24985 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
24986 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
24987 (bdesc_args): Add __builtin_ia32_si512_256si,
24988 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
24989 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
24990 __builtin_ia32_pd512_pd.
24991 (ix86_expand_args_builtin): Handle new FTYPEs.
24992 * config/i386/sse.md (castmode): Add 512-bit modes.
24993 (AVX512MODE2P): New.
24994 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
24995 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
24996
24997 2014-08-15 Richard Biener <rguenther@suse.de>
24998
24999 * fold-const.c (tree_swap_operands_p): Put all constants
25000 last, also strip sign-changing NOPs when considering further
25001 canonicalization. Canonicalize also when optimizing for size.
25002
25003 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25004
25005 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
25006 one_match > zero_match case to just before simple_sequence.
25007
25008 2014-08-15 Richard Biener <rguenther@suse.de>
25009
25010 * data-streamer.h (streamer_string_index, string_for_index):
25011 Remove.
25012 * data-streamer-out.c (streamer_string_index): Make static.
25013 * data-streamer-in.c (string_for_index): Likewise.
25014 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
25015 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
25016
25017 2014-08-15 Richard Biener <rguenther@suse.de>
25018
25019 PR tree-optimization/62031
25020 * tree-data-ref.c (dr_analyze_indices): Do not set
25021 DR_UNCONSTRAINED_BASE.
25022 (dr_may_alias_p): All indirect accesses have to go the
25023 formerly DR_UNCONSTRAINED_BASE path.
25024 * tree-data-ref.h (struct indices): Remove
25025 unconstrained_base member.
25026 (DR_UNCONSTRAINED_BASE): Remove.
25027
25028 2014-08-15 Jakub Jelinek <jakub@redhat.com>
25029
25030 PR middle-end/62092
25031 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
25032 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
25033 in OMP_CLAUSE_MAP in some outer target region.
25034
25035 2014-08-15 Bin Cheng <bin.cheng@arm.com>
25036
25037 * tree-ssa-loop-ivopts.c (ivopts_data): New field
25038 name_expansion_cache.
25039 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
25040 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
25041 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
25042 (difference_cannot_overflow_p): New parameter. Use affine
25043 expansion for equality check.
25044 (iv_elimination_compare_lt): Pass new argument.
25045
25046 2014-08-14 DJ Delorie <dj@redhat.com>
25047
25048 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
25049 variables to the accumulator.
25050
25051 * config/rl78/predicates.md (rl78_near_mem_operand): New.
25052 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
25053 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
25054 with far-far moves.
25055
25056 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
25057 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
25058 (umulqihi3_virt): Likewise.
25059 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
25060 (umulqihi3_real): Likewise.
25061
25062 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
25063
25064 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
25065
25066 PR tree-optimization/62091
25067 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
25068 function_entry_reached.
25069 (walk_aliased_vdefs): Clear it here.
25070 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
25071
25072 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
25073
25074 * ipa-utils.h (compare_virtual_tables): Declare.
25075 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
25076
25077 2014-08-14 Marek Polacek <polacek@redhat.com>
25078
25079 DR 458
25080 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
25081 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
25082
25083 2014-08-14 Tom de Vries <tom@codesourcery.com>
25084
25085 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
25086
25087 2014-08-14 Tom de Vries <tom@codesourcery.com>
25088
25089 PR rtl-optimization/62004
25090 PR rtl-optimization/62030
25091 * ifcvt.c (rtx_interchangeable_p): New function.
25092 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
25093 * emit-rtl.h (mem_attrs_eq_p): Declare.
25094
25095 2014-08-14 Roman Gareev <gareevroman@gmail.com>
25096
25097 * graphite-scop-detection.c:
25098 Add inclusion of cp-tree.h.
25099 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
25100 in case they are pointers to object types
25101
25102 2014-08-14 Richard Biener <rguenther@suse.de>
25103
25104 * BASE-VER: Change to 5.0.0
25105
25106 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
25107 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25108 Anna Tikhonova <anna.tikhonova@intel.com>
25109 Ilya Tocar <ilya.tocar@intel.com>
25110 Andrey Turetskiy <andrey.turetskiy@intel.com>
25111 Ilya Verbin <ilya.verbin@intel.com>
25112 Kirill Yukhin <kirill.yukhin@intel.com>
25113 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25114
25115 * config/i386/sse.md (define_mode_attr avx512): New.
25116 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
25117 V4DI modes.
25118 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
25119 (define_mode_attr ssse3_avx2): Ditto.
25120 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
25121 (define_mode_attr avx2_avx512bw): New.
25122 (define_mode_attr ssedoublemodelower): New.
25123 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
25124 V32HI, V64QI modes.
25125 (define_mode_attr ssebytemode): Allow V8DI modes.
25126 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
25127 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
25128 (define_mode_attr ssePSmode2): New.
25129 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
25130 V16HI, V32HI modes.
25131 (define_mode_attr dbpsadbwmode): New.
25132 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
25133 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
25134 (vi8_sse4_1_avx2_avx512): New.
25135 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
25136 mode attribute.
25137 (define_mode_attr blendbits): Move before its immediate use.
25138
25139 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
25140 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25141 Anna Tikhonova <anna.tikhonova@intel.com>
25142 Ilya Tocar <ilya.tocar@intel.com>
25143 Andrey Turetskiy <andrey.turetskiy@intel.com>
25144 Ilya Verbin <ilya.verbin@intel.com>
25145 Kirill Yukhin <kirill.yukhin@intel.com>
25146 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25147
25148 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
25149 * config/i386/subst.md
25150 (define_mode_iterator SUBST_V): Update.
25151 (define_mode_iterator SUBST_A): Ditto.
25152 (define_subst_attr "mask_operand7"): New.
25153 (define_subst_attr "mask_operand10"): New.
25154 (define_subst_attr "mask_operand_arg34") : New.
25155 (define_subst_attr "mask_expand_op3"): New.
25156 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
25157 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
25158 (define_subst_attr "mask_avx512vl_condition"): New.
25159 (define_subst_attr "round_mask_operand4"): Ditto.
25160 (define_subst_attr "round_mask_scalar_op3"): Delete.
25161 (define_subst_attr "round_mask_op4"): New.
25162 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
25163 V16SImode.
25164 (define_subst_attr "round_modev8sf_condition"): New.
25165 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
25166 <MODE>mode.
25167 (define_subst_attr "round_saeonly_mask_operand4"): New.
25168 (define_subst_attr "round_saeonly_mask_op4"): New.
25169 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
25170 V8DImode, V16SImode.
25171 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
25172 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
25173 (define_subst_attr "mask_expand4_args"): New.
25174 (define_subst "mask_expand4"): New.
25175
25176 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
25177 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25178 Anna Tikhonova <anna.tikhonova@intel.com>
25179 Ilya Tocar <ilya.tocar@intel.com>
25180 Andrey Turetskiy <andrey.turetskiy@intel.com>
25181 Ilya Verbin <ilya.verbin@intel.com>
25182 Kirill Yukhin <kirill.yukhin@intel.com>
25183 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25184
25185 * config/i386/i386.md
25186 (define_attr "isa"): Add avx512bw,noavx512bw.
25187 (define_attr "enabled"): Ditto.
25188 (define_split): Add 32/64-bit mask logic.
25189 (define_insn "*k<logic>qi"): New.
25190 (define_insn "*k<logic>hi"): New.
25191 (define_insn "*anddi_1"): Add mask version.
25192 (define_insn "*andsi_1"): Ditto.
25193 (define_insn "*<code><mode>_1"): Ditto.
25194 (define_insn "*<code>hi_1"): Ditto.
25195 (define_insn "kxnor<mode>"): New.
25196 (define_insn "kunpcksi"): New.
25197 (define_insn "kunpckdi"): New.
25198 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
25199 (define_insn "*one_cmplhi2_1"): Ditto.
25200
25201 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
25202 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25203 Anna Tikhonova <anna.tikhonova@intel.com>
25204 Ilya Tocar <ilya.tocar@intel.com>
25205 Andrey Turetskiy <andrey.turetskiy@intel.com>
25206 Ilya Verbin <ilya.verbin@intel.com>
25207 Kirill Yukhin <kirill.yukhin@intel.com>
25208 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25209
25210 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
25211 V32HImode.
25212
25213 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
25214 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25215 Anna Tikhonova <anna.tikhonova@intel.com>
25216 Ilya Tocar <ilya.tocar@intel.com>
25217 Andrey Turetskiy <andrey.turetskiy@intel.com>
25218 Ilya Verbin <ilya.verbin@intel.com>
25219 Kirill Yukhin <kirill.yukhin@intel.com>
25220 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25221
25222 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
25223 registers.
25224 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
25225 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
25226 xmm/ymm16+ when availble.
25227 * config/i386/i386.h
25228 (HARD_REGNO_NREGS): Add mask regs.
25229 (VALID_AVX512F_REG_MODE): Ditto.
25230 (VALID_AVX512F_REG_MODE) : Define.
25231 (VALID_MASK_AVX512BW_MODE): Ditto.
25232 (reg_class) (MASK_REG_P(X)): Define.
25233 * config/i386/i386.md: Do not split long moves with mask register,
25234 use kmovb if avx512bw is availible.
25235 (movdi_internal): Handle mask registers.
25236
25237 2014-08-14 Richard Biener <rguenther@suse.de>
25238
25239 PR tree-optimization/62081
25240 * tree-ssa-loop.c (pass_fix_loops): New pass.
25241 (pass_tree_loop::gate): Do not fixup loops here.
25242 * tree-pass.h (make_pass_fix_loops): Declare.
25243 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
25244
25245 2014-08-14 Richard Biener <rguenther@suse.de>
25246
25247 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
25248 (type_hash_canon): ... this and avoid 2nd lookup for the add.
25249
25250 2014-08-14 Richard Biener <rguenther@suse.de>
25251
25252 PR tree-optimization/62090
25253 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
25254 (fold_builtin_2): Do not fold sprintf.
25255 (fold_builtin_3): Likewise.
25256 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
25257 moved from builtins.c.
25258 (gimple_fold_builtin): Fold sprintf.
25259
25260 2014-08-14 Richard Biener <rguenther@suse.de>
25261
25262 PR rtl-optimization/62079
25263 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
25264 run cleanup_cfg.
25265
25266 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
25267
25268 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
25269 current_function_decl.
25270
25271 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
25272
25273 * cgraph.c (cgraph_node::function_symbol): Fix wrong
25274 cgraph_function_node to cgraph_node::function_symbol
25275 refactoring.
25276
25277 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
25278
25279 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
25280 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
25281
25282 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
25283
25284 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
25285 warning.
25286
25287 2014-08-13 Roman Gareev <gareevroman@gmail.com>
25288
25289 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
25290 generator.
25291
25292 2014-08-12 Jakub Jelinek <jakub@redhat.com>
25293
25294 PR target/62025
25295 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
25296 any registers that are used in mem_insn.
25297
25298 2014-08-12 Steve Ellcey <sellcey@mips.com>
25299
25300 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
25301
25302 2014-08-12 Steve Ellcey <sellcey@mips.com>
25303
25304 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
25305 (MULTILIB_DIRNAMES): Ditto.
25306 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
25307 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
25308 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
25309 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
25310 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
25311 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
25312
25313 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25314
25315 PR target/61413
25316 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
25317 of __ARM_SIZEOF_WCHAR_T.
25318
25319 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25320
25321 PR target/62098
25322 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
25323 Remove unnecessary attributes.
25324
25325 2014-08-12 Yury Gribov <y.gribov@samsung.com>
25326
25327 * internal-fn.c (init_internal_fns): Fix off-by-one.
25328
25329 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
25330 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25331 Anna Tikhonova <anna.tikhonova@intel.com>
25332 Ilya Tocar <ilya.tocar@intel.com>
25333 Andrey Turetskiy <andrey.turetskiy@intel.com>
25334 Ilya Verbin <ilya.verbin@intel.com>
25335 Kirill Yukhin <kirill.yukhin@intel.com>
25336 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25337
25338 * config/i386/i386.c (standard_sse_constant_opcode): Use
25339 vpxord/vpternlog if avx512 is availible.
25340
25341 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
25342
25343 PR middle-end/62103
25344 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
25345 bitfields, that is when size doesn't match the size of type or the
25346 size of the constructor.
25347
25348 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
25349
25350 * config/rs6000/constraints.md (wh constraint): New constraint,
25351 for FP registers if direct move is available.
25352 (wi constraint): New constraint, for VSX/FP registers that can
25353 handle 64-bit integers.
25354 (wj constraint): New constraint for VSX/FP registers that can
25355 handle 64-bit integers for direct moves.
25356 (wk constraint): New constraint for VSX/FP registers that can
25357 handle 64-bit doubles for direct moves.
25358 (wy constraint): Make documentation match implementation.
25359
25360 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
25361 scalar_in_vmx_p field to simplify tests of whether SFmode or
25362 DFmode can go in the Altivec registers.
25363 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
25364 (rs6000_setup_reg_addr_masks): Likewise.
25365 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
25366 field, and wh/wi/wj/wk constraints.
25367 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
25368 the wh/wi/wj/wk constraints.
25369 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
25370 upper registers, prefer VSX registers unless the operation is a
25371 memory operation with REG+OFFSET addressing.
25372
25373 * config/rs6000/vsx.md (VSr mode attribute): Add support for
25374 DImode. Change SFmode to use ww constraint instead of d to allow
25375 SF registers in the upper registers.
25376 (VSr2): Likewise.
25377 (VSr3): Likewise.
25378 (VSr5): Fix thinko in comment.
25379 (VSa): New mode attribute that is an alternative to wa, that
25380 returns the VSX register class that a mode can go in, but may not
25381 be the preferred register class.
25382 (VS_64dm): New mode attribute for appropriate register classes for
25383 referencing 64-bit elements of vectors for direct moves and normal
25384 moves.
25385 (VS_64reg): Likewise.
25386 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
25387 register allocator to only registers the data type can handle.
25388 (vsx_le_perm_load_<mode>): Likewise.
25389 (vsx_le_perm_store_<mode>): Likewise.
25390 (vsx_xxpermdi2_le_<mode>): Likewise.
25391 (vsx_xxpermdi4_le_<mode>): Likewise.
25392 (vsx_lxvd2x2_le_<mode>): Likewise.
25393 (vsx_lxvd2x4_le_<mode>): Likewise.
25394 (vsx_stxvd2x2_le_<mode>): Likewise.
25395 (vsx_add<mode>3): Likewise.
25396 (vsx_sub<mode>3): Likewise.
25397 (vsx_mul<mode>3): Likewise.
25398 (vsx_div<mode>3): Likewise.
25399 (vsx_tdiv<mode>3_internal): Likewise.
25400 (vsx_fre<mode>2): Likewise.
25401 (vsx_neg<mode>2): Likewise.
25402 (vsx_abs<mode>2): Likewise.
25403 (vsx_nabs<mode>2): Likewise.
25404 (vsx_smax<mode>3): Likewise.
25405 (vsx_smin<mode>3): Likewise.
25406 (vsx_sqrt<mode>2): Likewise.
25407 (vsx_rsqrte<mode>2): Likewise.
25408 (vsx_tsqrt<mode>2_internal): Likewise.
25409 (vsx_fms<mode>4): Likewise.
25410 (vsx_nfma<mode>4): Likewise.
25411 (vsx_eq<mode>): Likewise.
25412 (vsx_gt<mode>): Likewise.
25413 (vsx_ge<mode>): Likewise.
25414 (vsx_eq<mode>_p): Likewise.
25415 (vsx_gt<mode>_p): Likewise.
25416 (vsx_ge<mode>_p): Likewise.
25417 (vsx_xxsel<mode>): Likewise.
25418 (vsx_xxsel<mode>_uns): Likewise.
25419 (vsx_copysign<mode>3): Likewise.
25420 (vsx_float<VSi><mode>2): Likewise.
25421 (vsx_floatuns<VSi><mode>2): Likewise.
25422 (vsx_fix_trunc<mode><VSi>2): Likewise.
25423 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
25424 (vsx_x<VSv>r<VSs>i): Likewise.
25425 (vsx_x<VSv>r<VSs>ic): Likewise.
25426 (vsx_btrunc<mode>2): Likewise.
25427 (vsx_b2trunc<mode>2): Likewise.
25428 (vsx_floor<mode>2): Likewise.
25429 (vsx_ceil<mode>2): Likewise.
25430 (vsx_<VS_spdp_insn>): Likewise.
25431 (vsx_xscvspdp): Likewise.
25432 (vsx_xvcvspuxds): Likewise.
25433 (vsx_float_fix_<mode>2): Likewise.
25434 (vsx_set_<mode>): Likewise.
25435 (vsx_extract_<mode>_internal1): Likewise.
25436 (vsx_extract_<mode>_internal2): Likewise.
25437 (vsx_extract_<mode>_load): Likewise.
25438 (vsx_extract_<mode>_store): Likewise.
25439 (vsx_splat_<mode>): Likewise.
25440 (vsx_xxspltw_<mode>): Likewise.
25441 (vsx_xxspltw_<mode>_direct): Likewise.
25442 (vsx_xxmrghw_<mode>): Likewise.
25443 (vsx_xxmrglw_<mode>): Likewise.
25444 (vsx_xxsldwi_<mode>): Likewise.
25445 (vsx_xscvdpspn): Tighten constraints to only use register classes
25446 the types use.
25447 (vsx_xscvspdpn): Likewise.
25448 (vsx_xscvdpspn_scalar): Likewise.
25449
25450 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
25451 wj, and wk constraints.
25452 (GPR_REG_CLASS_P): New helper macro for register classes targeting
25453 general purpose registers.
25454
25455 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
25456 direct moves.
25457 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
25458 DImode instead of wm. Use wk constraint for direct move of DFmode
25459 instead of wm.
25460 (extendsidi2_lfiwax): Likewise.
25461 (lfiwax): Likewise.
25462 (lfiwzx): Likewise.
25463 (movdi_internal64): Likewise.
25464
25465 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
25466 wk constraints. Make the wy constraint documentation match them
25467 implementation.
25468
25469 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
25470
25471 Replacement of isl_int by isl_val
25472 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
25473 (compute_bounds_for_param): use isl_val instead of isl_int
25474 (compute_bounds_for_loop): likewise
25475 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
25476 (build_linearized_memory_access): use isl_val instead of isl_int
25477 (pdr_stride_in_loop): likewise
25478 * graphite-optimize-isl.c:
25479 (getPrevectorMap): use isl_val instead of isl_int
25480 * graphite-poly.c:
25481 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
25482 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
25483 (extern the_isl_ctx): declare
25484 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
25485 (extract_affine_gmp): likewise
25486 (wrap): likewise
25487 (build_loop_iteration_domains): likewise
25488 (add_param_constraints): likewise
25489
25490 2014-08-11 Richard Biener <rguenther@suse.de>
25491
25492 PR tree-optimization/62075
25493 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
25494 handle uses in patterns.
25495
25496 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
25497 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25498 Anna Tikhonova <anna.tikhonova@intel.com>
25499 Ilya Tocar <ilya.tocar@intel.com>
25500 Andrey Turetskiy <andrey.turetskiy@intel.com>
25501 Ilya Verbin <ilya.verbin@intel.com>
25502 Kirill Yukhin <kirill.yukhin@intel.com>
25503 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25504
25505 * common/config/i386/i386-common.c
25506 (OPTION_MASK_ISA_AVX512VL_SET): Define.
25507 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
25508 (ix86_handle_option): Handle OPT_mavx512vl.
25509 * config/i386/cpuid.h (bit_AVX512VL): Define.
25510 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
25511 set -mavx512vl accordingly.
25512 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25513 OPTION_MASK_ISA_AVX512VL.
25514 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
25515 (ix86_option_override_internal): Define PTA_AVX512VL, handle
25516 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
25517 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
25518 * config/i386/i386.h (TARGET_AVX512VL): Define.
25519 (TARGET_AVX512VL_P(x)): Ditto.
25520 * config/i386/i386.opt: Add mavx512vl.
25521
25522 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
25523
25524 PR tree-optimization/62073
25525 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
25526 a basic block.
25527
25528 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
25529 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25530 Anna Tikhonova <anna.tikhonova@intel.com>
25531 Ilya Tocar <ilya.tocar@intel.com>
25532 Andrey Turetskiy <andrey.turetskiy@intel.com>
25533 Ilya Verbin <ilya.verbin@intel.com>
25534 Kirill Yukhin <kirill.yukhin@intel.com>
25535 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25536
25537 * common/config/i386/i386-common.c
25538 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
25539 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
25540 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
25541 (ix86_handle_option): Handle OPT_mavx512bw.
25542 * config/i386/cpuid.h (bit_AVX512BW): Define.
25543 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
25544 set -mavx512bw accordingly.
25545 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25546 OPTION_MASK_ISA_AVX512BW.
25547 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
25548 (ix86_option_override_internal): Define PTA_AVX512BW, handle
25549 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
25550 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
25551 * config/i386/i386.h (TARGET_AVX512BW): Define.
25552 (TARGET_AVX512BW_P(x)): Ditto.
25553 * config/i386/i386.opt: Add mavx512bw.
25554
25555 2014-08-11 Richard Biener <rguenther@suse.de>
25556
25557 PR tree-optimization/62070
25558 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
25559 Remove SSA checking.
25560
25561 2014-08-11 Yury Gribov <y.gribov@samsung.com>
25562
25563 * asan.c (asan_check_flags): New enum.
25564 (build_check_stmt_with_calls): Removed function.
25565 (build_check_stmt): Split inlining logic to
25566 asan_expand_check_ifn.
25567 (instrument_derefs): Rename parameter.
25568 (instrument_mem_region_access): Rename parameter.
25569 (instrument_strlen_call): Likewise.
25570 (asan_expand_check_ifn): New function.
25571 (asan_instrument): Remove old code.
25572 (pass_sanopt::execute): Change handling of
25573 asan-instrumentation-with-call-threshold.
25574 (asan_clear_shadow): Fix formatting.
25575 (asan_function_start): Likewise.
25576 (asan_emit_stack_protection): Likewise.
25577 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
25578 Update description.
25579 * internal-fn.c (expand_ASAN_CHECK): New function.
25580 * internal-fn.def (ASAN_CHECK): New internal function.
25581 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
25582 Update description.
25583 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
25584 * tree.c: Small comment fix.
25585
25586 2014-08-11 Yury Gribov <y.gribov@samsung.com>
25587
25588 * gimple.c (gimple_call_fnspec): Support internal functions.
25589 (gimple_call_return_flags): Use const.
25590 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
25591 * internal-fn.def: Add fnspec information.
25592 * internal-fn.h (internal_fn_fnspec): New function.
25593 (init_internal_fns): Declare new function.
25594 * internal-fn.c (internal_fn_fnspec_array): New global variable.
25595 (init_internal_fns): New function.
25596 * tree-core.h: Update macro call.
25597 * tree.c (build_common_builtin_nodes): Initialize internal fns.
25598
25599 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
25600
25601 * lto-streamer.h (struct output_block::symbol): Change from
25602 struct symtab_node to plain symtab_node.
25603 (referenced_from_this_partition_p): Change first parameter
25604 from struct symtab_node to plain symtab_node.
25605
25606 2014-08-10 Marek Polacek <polacek@redhat.com>
25607
25608 PR c/51849
25609 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
25610
25611 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
25612
25613 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
25614 DECL correctly; do not give up on types in static storage.
25615
25616 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
25617
25618 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
25619
25620 2014-08-09 Roman Gareev <gareevroman@gmail.com>
25621
25622 * graphite-isl-ast-to-gimple.c:
25623 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
25624
25625 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
25626
25627 2014-08-08 Guozhi Wei <carrot@google.com>
25628
25629 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
25630
25631 2014-08-08 Cary Coutant <ccoutant@google.com>
25632
25633 * dwarf2out.c (get_skeleton_type_unit): Remove.
25634 (output_skeleton_debug_sections): Remove skeleton type units.
25635 (output_comdat_type_unit): Likewise.
25636 (dwarf2out_finish): Likewise.
25637
25638 2014-08-07 Yi Yang <ahyangyi@google.com>
25639
25640 * predict.c (expr_expected_value_1): Remove the redundant assignment.
25641
25642 2014-08-08 Richard Biener <rguenther@suse.de>
25643
25644 * lto-streamer.h (struct lto_input_block): Make it a class
25645 with a constructor.
25646 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
25647 (struct lto_function_header, struct lto_simple_header,
25648 struct lto_simple_header_with_strings,
25649 struct lto_decl_header, struct lto_function_header): Make
25650 a simple inheritance hieararchy. Remove unused fields.
25651 (struct lto_asm_header): Remove.
25652 * lto-streamer-out.c (produce_asm): Adjust.
25653 (lto_output_toplevel_asms): Likewise.
25654 (produce_asm_for_decls): Likewise.
25655 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
25656 * data-streamer-in.c (string_for_index): Likewise.
25657 * ipa-inline-analysis.c (inline_read_section): Likewise.
25658 * ipa-prop.c (ipa_prop_read_section): Likewise.
25659 (read_replacements_section): Likewise.
25660 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
25661 * lto-section-in.c (lto_create_simple_input_block): Likewise.
25662 (lto_destroy_simple_input_block): Likewise.
25663 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
25664 (lto_input_toplevel_asms): Likewise.
25665
25666 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
25667 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25668 Anna Tikhonova <anna.tikhonova@intel.com>
25669 Ilya Tocar <ilya.tocar@intel.com>
25670 Andrey Turetskiy <andrey.turetskiy@intel.com>
25671 Ilya Verbin <ilya.verbin@intel.com>
25672 Kirill Yukhin <kirill.yukhin@intel.com>
25673 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25674
25675 * common/config/i386/i386-common.c
25676 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
25677 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
25678 (ix86_handle_option): Handle OPT_mavx512dq.
25679 * config/i386/cpuid.h (bit_AVX512DQ): Define.
25680 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
25681 set -mavx512dq accordingly.
25682 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25683 OPTION_MASK_ISA_AVX512DQ.
25684 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
25685 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
25686 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
25687 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
25688 * config/i386/i386.h (TARGET_AVX512DQ): Define.
25689 (TARGET_AVX512DQ_P(x)): Ditto.
25690 * config/i386/i386.opt: Add mavx512dq.
25691
25692 2014-08-08 Richard Biener <rguenther@suse.de>
25693
25694 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
25695 target_percent, target_percent_s): Export.
25696 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
25697 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
25698 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
25699 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
25700 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
25701 Move to gimple-fold.c.
25702 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
25703 strcat and strcpy.
25704 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
25705 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
25706 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
25707 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
25708 (rewrite_call_expr_array): Remove.
25709 (fold_builtin_sprintf_chk): Likewise.
25710 (fold_builtin_snprintf_chk): Likewise.
25711 (fold_builtin_varargs): Remove handling of sprintf_chk,
25712 vsprintf_chk, snprintf_chk and vsnprintf_chk.
25713 (gimple_fold_builtin_sprintf_chk): Remove.
25714 (gimple_fold_builtin_snprintf_chk): Likewise.
25715 (gimple_fold_builtin_varargs): Likewise.
25716 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
25717 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
25718 * gimple.c (gimple_seq_add_seq_without_update): New function.
25719 * gimple.h (gimple_seq_add_seq_without_update): Declare.
25720 * gimple-fold.c: Include output.h.
25721 (gsi_replace_with_seq_vops): New function, split out from ...
25722 (gimplify_and_update_call_from_tree): ... here.
25723 (replace_call_with_value): New function.
25724 (replace_call_with_call_and_fold): Likewise.
25725 (var_decl_component_p): Moved from builtins.c.
25726 (gimple_fold_builtin_memory_op): Moved from builtins.c
25727 fold_builtin_memory_op and rewritten to GIMPLE.
25728 (gimple_fold_builtin_memset): Likewise.
25729 (gimple_fold_builtin_strcpy): Likewise.
25730 (gimple_fold_builtin_strncpy): Likewise.
25731 (gimple_fold_builtin_strcat): Likewise.
25732 (gimple_fold_builtin_fputs): Likewise.
25733 (gimple_fold_builtin_memory_chk): Likewise.
25734 (gimple_fold_builtin_stxcpy_chk): Likewise.
25735 (gimple_fold_builtin_stxncpy_chk): Likewise.
25736 (gimple_fold_builtin_snprintf_chk): Likewise.
25737 (gimple_fold_builtin_sprintf_chk): Likewise.
25738 (gimple_fold_builtin_strlen): New function.
25739 (gimple_fold_builtin_with_strlen): New function split out from
25740 gimple_fold_builtin.
25741 (gimple_fold_builtin): Change signature and handle
25742 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
25743 here. Call gimple_fold_builtin_with_strlen.
25744 (gimple_fold_call): Adjust.
25745
25746 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
25747
25748 * calls.c (precompute_arguments): Check
25749 promoted_for_signed_and_unsigned_p and set the promoted mode.
25750 (promoted_for_signed_and_unsigned_p): New function.
25751 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
25752 and set the promoted mode.
25753 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
25754 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
25755 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
25756
25757
25758 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
25759
25760 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
25761 instead of SUBREG_PROMOTED_UNSIGNED_SET.
25762 (expand_call): Likewise.
25763 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
25764 to get promoted mode.
25765 * combine.c (record_promoted_value): Skip > 0 comparison with
25766 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
25767 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
25768 of SUBREG_PROMOTED_UNSIGNED_P.
25769 (convert_modes): Likewise.
25770 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
25771 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
25772 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
25773 SUBREG_PROMOTED_UNSIGNED_SET.
25774 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
25775 instead of SUBREG_PROMOTED_UNSIGNED_SET.
25776 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
25777 SUBREG_PROMOTED_SET.
25778 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
25779 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
25780 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
25781 of SUBREG_PROMOTED_UNSIGNED_P.
25782 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
25783 (SUBREG_PROMOTED_SET): New define.
25784 (SUBREG_PROMOTED_GET): Likewise.
25785 (SUBREG_PROMOTED_SIGN): Likewise.
25786 (SUBREG_PROMOTED_SIGNED_P): Likewise.
25787 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
25788 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
25789 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
25790 instead of SUBREG_PROMOTED_UNSIGNED_GET.
25791 (nonzero_bits1): Skip > 0 comparison with the results as
25792 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
25793 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
25794 of !SUBREG_PROMOTED_UNSIGNED_P.
25795 * simplify-rtx.c (simplify_unary_operation_1): Use new
25796 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
25797 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
25798 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
25799 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
25800
25801 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
25802
25803 * ipa-devirt.c: Include gimple-pretty-print.h
25804 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
25805 further tests.
25806 (decl_maybe_in_construction_p): Fix conditional on cdtor check
25807 (get_polymorphic_call_info): Fix return value
25808 (type_change_info): New sturcture based on ipa-prop
25809 variant.
25810 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
25811 based on ipa-prop variant.
25812 (extr_type_from_vtbl_ptr_store): New function
25813 based on ipa-prop variant.
25814 (record_known_type): New function.
25815 (check_stmt_for_type_change): New function.
25816 (get_dynamic_type): New function.
25817 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
25818 * tree-ssa-pre.c: ipa-utils.h
25819 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
25820 machinery; sanity check with ipa-prop devirtualization.
25821 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
25822 polymorphic flag.
25823
25824 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
25825
25826 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
25827 * alias.c, cfgexpand.c, cgraphbuild.c,
25828 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
25829 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
25830 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
25831 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
25832 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
25833 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
25834 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
25835 dse.c, except.c, gengtype.c, gimple-expr.c,
25836 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
25837 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
25838 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
25839 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
25840 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
25841 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
25842 pointer-set.h.
25843 * pointer-set.c: Remove file.
25844 * pointer-set.h: Remove file.
25845
25846 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25847
25848 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
25849 * config/arm/types.md (f_sels, f_seld): Delete.
25850
25851 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25852
25853 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
25854 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
25855 (aarch64_movdi_<mode>high): Likewise.
25856 (aarch64_mov<mode>high_di): Likewise.
25857 (aarch64_movdi_<mode>low): Likewise.
25858 (aarch64_mov<mode>low_di): Likewise.
25859 (aarch64_movtilow_tilow): Likewise.
25860 Add comment explaining usage of fp,simd attributes and of
25861 TARGET_FLOAT and TARGET_SIMD.
25862
25863 2014-08-07 Ian Bolton <ian.bolton@arm.com>
25864 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25865
25866 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
25867 Use MOVN when one of the half-words is 0xffff.
25868
25869 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
25870
25871 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
25872
25873 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
25874
25875 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
25876 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
25877 (rfs_str): String corresponding to RFS_* constants.
25878 (rank_for_schedule_stats_t): New typedef.
25879 (rank_for_schedule_stats): New static variable.
25880 (rfs_result): New static function.
25881 (rank_for_schedule): Track statistics for deciding heuristics.
25882 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
25883 static functions.
25884 (ready_sort): Use them for debug printouts.
25885 (schedule_block): Init statistics state. Print statistics on
25886 rank_for_schedule decisions.
25887
25888 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
25889
25890 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
25891
25892 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
25893
25894 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
25895 constraint.
25896
25897 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
25898
25899 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
25900 function to not conflict.
25901 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
25902 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
25903 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
25904 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
25905 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
25906 of pointer_map.
25907
25908 2014-08-07 Marek Polacek <polacek@redhat.com>
25909
25910 * fold-const.c (fold_binary_loc): Add folding of
25911 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
25912
25913 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
25914
25915 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
25916 instead of type size.
25917 (ASM_FINISH_DECLARE_OBJECT): Likewise.
25918
25919 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
25920
25921 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
25922 (*thumb1_movqi_insn): Likewise.
25923 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
25924
25925 2014-08-07 Tom de Vries <tom@codesourcery.com>
25926
25927 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
25928 (glibc_2_11_or_earlier): Remove effective-target keywords.
25929
25930 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
25931
25932 * config/arm/arm.c (bdesc_2arg): Fix typo.
25933 (arm_atomic_assign_expand_fenv): Remove The default implementation.
25934
25935 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
25936
25937 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
25938
25939 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
25940
25941 PR debug/61923
25942 * haifa-sched.c (advance_one_cycle): Fix dump.
25943 (schedule_block): Don't advance cycle if we are already at the
25944 beginning of the cycle.
25945
25946 2014-08-06 Martin Jambor <mjambor@suse.cz>
25947
25948 PR ipa/61393
25949 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
25950
25951 2014-08-06 Richard Biener <rguenther@suse.de>
25952
25953 PR lto/62034
25954 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
25955 SCCs here.
25956 (lto_input_tree): Pop SCCs here.
25957
25958 2014-08-06 Richard Biener <rguenther@suse.de>
25959
25960 PR tree-optimization/61320
25961 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
25962 handle misaligned loads.
25963
25964 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
25965
25966 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
25967 (aarch64_expand_vec_perm_const): Check for dup before zip.
25968
25969 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25970
25971 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
25972 CONST_INT_P instead of GET_CODE and compare.
25973 (aarch64_select_cc_mode): Likewise.
25974 (aarch64_print_operand): Likewise.
25975 (aarch64_rtx_costs): Likewise.
25976 (aarch64_simd_valid_immediate): Likewise.
25977 (aarch64_simd_check_vect_par_cnst_half): Likewise.
25978 (aarch64_simd_emit_pair_result_insn): Likewise.
25979
25980 2014-08-05 David Malcolm <dmalcolm@redhat.com>
25981
25982 * gdbhooks.py (find_gcc_source_dir): New helper function.
25983 (class PassNames): New class, locating and parsing passes.def.
25984 (class BreakOnPass): New command "break-on-pass".
25985
25986 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
25987
25988 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
25989 getting olde.
25990
25991 2014-08-05 Richard Biener <rguenther@suse.de>
25992
25993 PR rtl-optimization/61672
25994 * emit-rtl.h (mem_attrs_eq_p): Declare.
25995 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
25996 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
25997 * cfgcleanup.c (merge_memattrs): Likewise.
25998 Include emit-rtl.h.
25999
26000 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26001
26002 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
26003 rather than singleton vectors.
26004 (vqdmlsls_lane_s32): Likewise.
26005
26006 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26007
26008 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
26009 Use VSDQ_HSI mode iterator.
26010 (aarch64_sqrdmulh_laneq<mode>): Likewise.
26011 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
26012 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
26013 Use BUILTIN_VDQHS macro.
26014 (sqrdmulh_laneq): Likewise.
26015 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
26016 (vqdmlals_laneq_s32): Likewise.
26017 (vqdmlslh_laneq_s16): Likewise.
26018 (vqdmlsls_laneq_s32): Likewise.
26019 (vqdmulhh_laneq_s16): Likewise.
26020 (vqdmulhs_laneq_s32): Likewise.
26021 (vqrdmulhh_laneq_s16): Likewise.
26022 (vqrdmulhs_laneq_s32): Likewise.
26023
26024 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26025
26026 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
26027 (vmuld_laneq_f64): Likewise.
26028 (vmuls_laneq_f32): Likewise.
26029 (vmul_n_f64): Likewise.
26030 (vmuld_lane_f64): Reimplement in C.
26031 (vmuls_lane_f32): Likewise.
26032
26033 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26034
26035 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
26036 to reservation.
26037 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
26038
26039 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26040
26041 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
26042 (rbitsi2): Likewise.
26043 (*arm_rev): Set predicable and predicable_short_it attributes.
26044
26045 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26046
26047 * convert.c (convert_to_integer): Guard transformation to lrint by
26048 -fno-math-errno.
26049
26050 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
26051
26052 * config/aarch64/aarch64-builtins.c
26053 (aarch64_simd_builtin_type_mode): Delete.
26054 (v8qi_UP): Remap to V8QImode.
26055 (v4hi_UP): Remap to V4HImode.
26056 (v2si_UP): Remap to V2SImode.
26057 (v2sf_UP): Remap to V2SFmode.
26058 (v1df_UP): Remap to V1DFmode.
26059 (di_UP): Remap to DImode.
26060 (df_UP): Remap to DFmode.
26061 (v16qi_UP):V16QImode.
26062 (v8hi_UP): Remap to V8HImode.
26063 (v4si_UP): Remap to V4SImode.
26064 (v4sf_UP): Remap to V4SFmode.
26065 (v2di_UP): Remap to V2DImode.
26066 (v2df_UP): Remap to V2DFmode.
26067 (ti_UP): Remap to TImode.
26068 (ei_UP): Remap to EImode.
26069 (oi_UP): Remap to OImode.
26070 (ci_UP): Map to CImode.
26071 (xi_UP): Remap to XImode.
26072 (si_UP): Remap to SImode.
26073 (sf_UP): Remap to SFmode.
26074 (hi_UP): Remap to HImode.
26075 (qi_UP): Remap to QImode.
26076 (aarch64_simd_builtin_datum): Make mode a machine_mode.
26077 (VAR1): Build builtin name.
26078 (aarch64_init_simd_builtins): Remove dead code.
26079
26080 2014-08-05 Roman Gareev <gareevroman@gmail.com>
26081
26082 * graphite-isl-ast-to-gimple.c:
26083 (set_options): New function.
26084 (scop_to_isl_ast): Add calling of set_options.
26085
26086 2014-08-05 Jakub Jelinek <jakub@redhat.com>
26087
26088 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
26089 (analyze_iv_to_split_insn): Don't initialize them.
26090 (get_ivts_expr): Removed.
26091 (allocate_basic_variable, insert_base_initialization): Use
26092 SET_SRC instead of *get_ivts_expr.
26093 (split_iv): Use &SET_SRC instead of get_ivts_expr.
26094
26095 2014-08-05 Roman Gareev <gareevroman@gmail.com>
26096
26097 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
26098 (translate_isl_ast_for_loop): Add checking of the
26099 flag_loop_parallelize_all.
26100 (ast_build_before_for): New function.
26101 (scop_to_isl_ast): Add checking of the
26102 flag_loop_parallelize_all.
26103 * graphite-dependences.c: Move the defenition of the
26104 scop_get_dependences from graphite-optimize-isl.c to this file.
26105 (apply_schedule_on_deps): Add checking of the ux's emptiness.
26106 (carries_deps): Add checking of the x's value.
26107 * graphite-optimize-isl.c: Move the defenition of the
26108 scop_get_dependences to graphite-dependences.c.
26109 * graphite-poly.h: Add declarations of scop_get_dependences
26110 and carries_deps.
26111
26112 2014-08-04 Rohit <rohitarulraj@freescale.com>
26113
26114 PR target/60102
26115 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
26116 names.
26117 (alt_reg_names): Likewise.
26118 (rs6000_dwarf_register_span): For SPE high registers, replace
26119 dwarf register numbers with GCC hard register numbers.
26120 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
26121 (rs6000_dbx_register_number): For SPE high registers, return dwarf
26122 register number for the corresponding GCC hard register number.
26123 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
26124 newly added GCC hard register numbers for SPE high registers.
26125 (DWARF_FRAME_REGISTERS): Likewise.
26126 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
26127 (DWARF_FRAME_REGNUM): Likewise.
26128 (FIXED_REGISTERS): Likewise.
26129 (CALL_USED_REGISTERS): Likewise.
26130 (CALL_REALLY_USED_REGISTERS): Likewise.
26131 (REG_ALLOC_ORDER): Likewise.
26132 (enum reg_class): Likewise.
26133 (REG_CLASS_NAMES): Likewise.
26134 (REG_CLASS_CONTENTS): Likewise.
26135 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
26136
26137 2014-08-04 Richard Biener <rguenther@suse.de>
26138
26139 * gimple-fold.h (gimple_fold_builtin): Remove.
26140 * gimple-fold.c (gimple_fold_builtin): Make static.
26141 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
26142 fold_stmt, not gimple_fold_builtin.
26143
26144 2014-08-04 Martin Liska <mliska@suse.cz>
26145
26146 * cgraph.h (csi_end_p): Removed.
26147 (csi_next): Likewise.
26148 (csi_node): Likewise.
26149 (csi_start): Likewise.
26150 (cgraph_node_in_set_p): Likewise.
26151 (cgraph_node_set_size): Likewise.
26152 (vsi_end_p): Likewise.
26153 (vsi_next): Likewise.
26154 (vsi_node): Likewise.
26155 (vsi_start): Likewise.
26156 (varpool_node_set_size): Likewise.
26157 (cgraph_node_set_nonempty_p): Likewise.
26158 (varpool_node_set_nonempty_p): Likewise.
26159 * cgraphunit.c (cgraph_process_new_functions): vec replaces
26160 cgraph_node_set.
26161 * ipa-inline-transform.c: Likewise.
26162 * ipa-utils.c (cgraph_node_set_new): Removed.
26163 (cgraph_node_set_add): Likewise.
26164 (cgraph_node_set_remove): Likewise.
26165 (cgraph_node_set_find): Likewise.
26166 (dump_cgraph_node_set): Likewise.
26167 (debug_cgraph_node_set): Likewise.
26168 (free_cgraph_node_set): Likewise.
26169 (varpool_node_set_new): Likewise.
26170 (varpool_node_set_add): Likewise.
26171 (varpool_node_set_remove): Likewise.
26172 (varpool_node_set_find): Likewise.
26173 (dump_varpool_node_set): Likewise.
26174 (free_varpool_node_set): Likewise.
26175 (debug_varpool_node_set): Likewise.
26176 * tree-emutls.c (struct tls_var_data):
26177 (emutls_index): Removed.
26178 (emutls_decl): Likewise.
26179 (gen_emutls_addr): Function implementation uses newly added
26180 hash_map<varpool_node *, tls_var_data>.
26181 (clear_access_vars): Likewise.
26182 (create_emultls_var): Likewise.
26183 (ipa_lower_emutls): Likewise.
26184 (reset_access): New function.
26185
26186 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
26187
26188 * config/i386/i386.c (ix86_option_override_internal): Add
26189 PTA_RDRND and PTA_MOVBE for bdver4.
26190
26191 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26192 James Greenhalgh <james.greenhalgh@arm.com>
26193
26194 * doc/md.texi (clrsb): Document.
26195 (clz): Change reference to x into operand 1.
26196 (ctz): Likewise.
26197 (popcount): Likewise.
26198
26199 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26200
26201 PR target/61713
26202 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
26203 move to subtarget in serial version if result is ignored.
26204
26205 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26206 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26207
26208 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
26209 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
26210 (sched_analyze_insn): Update use of try_group_insn to
26211 sched_macro_fuse_insns.
26212 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
26213 arguments that are not conditional jumps.
26214
26215 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
26216
26217 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
26218 family information. Handle BTVER2 cpu with cpuid family value.
26219
26220 2014-08-04 Tom de Vries <tom@codesourcery.com>
26221
26222 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
26223 (glibc_2_11_or_earlier): Document effective-target keywords.
26224
26225 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
26226
26227 * ipa-devirt.c (odr_type_warn_count): Add type.
26228 (possible_polymorphic_call_targets): Set it.
26229 (ipa_devirt): Use it.
26230
26231 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
26232
26233 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
26234 Document.
26235 * ipa-devirt.c: Include hash-map.h
26236 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
26237 (clear_speculation): Break out of ...
26238 (get_class_context): ... here; speed up handling obviously useless
26239 speculations.
26240 (odr_type_warn_count, decl_warn_count): New structures.
26241 (final_warning_record): New structure.
26242 (final_warning_records): New static variable.
26243 (possible_polymorphic_call_targets): Cleanup handling of
26244 speculative info; do not build speculation when user do not care;
26245 record info about warnings when asked for.
26246 (add_decl_warning): New function.
26247 (type_warning_cmp): New function.
26248 (decl_warning_cmp): New function.
26249 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
26250 (gate): Enable pass when warnings are requested.
26251 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
26252 options.
26253
26254 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
26255
26256 * hash-map.h (default_hashmap_traits::mark_key_deleted):
26257 Fix cast.
26258 (hash_map::remove): New method.
26259 (hash_map::traverse): New method.
26260 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
26261 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
26262 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
26263 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
26264 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
26265 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
26266 pointer_map.
26267
26268 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
26269
26270 * hash-set.h: new File.
26271 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
26272 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
26273 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
26274 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
26275 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
26276 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
26277 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
26278 varpool.c: Use hash_set instead of pointer_set.
26279
26280 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
26281
26282 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
26283
26284 2014-08-01 Jiong Wang <jiong.wang@arm.com>
26285
26286 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
26287 for frame access when strict_p is false.
26288
26289 2014-08-01 Renlin Li <renlin.li@arm.com>
26290 2014-08-01 Jiong Wang <jiong.wang@arm.com>
26291
26292 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
26293 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
26294 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
26295 Declaration.
26296 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
26297 predicate.
26298 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
26299 aarch64_mem_pair_offset.
26300
26301 2014-08-01 Jiong Wang <jiong.wang@arm.com>
26302
26303 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
26304 offset.
26305 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
26306 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
26307
26308 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
26309
26310 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
26311
26312 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
26313
26314 PR regression/61510
26315 * cgraphunit.c (analyze_functions): Use get_create rather than get
26316 for decls which are clones of abstract functions.
26317
26318 2014-08-01 Martin Liska <mliska@suse.cz>
26319
26320 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
26321 * ipa-prop.h (count_formal_params): Global function created from static.
26322 * ipa-prop.c (count_formal_params): Likewise.
26323 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
26324 profiles for semantically equivalent functions.
26325 * passes.c (do_per_function): If we load body of a function
26326 during WPA, this condition should behave same.
26327 * varpool.c (ctor_for_folding): More tolerant assert for variable
26328 aliases created during WPA.
26329
26330 2014-08-01 Martin Liska <mliska@suse.cz>
26331
26332 * doc/invoke.texi (Options That Control Optimization): Documentation
26333 for -foptimize-strlen introduced. Optimization levels default options
26334 fixed.
26335
26336 2014-08-01 Jakub Jelinek <jakub@redhat.com>
26337
26338 * opts.c (common_handle_option): Handle -fsanitize=alignment.
26339 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
26340 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
26341 type to bool.
26342 * stor-layout.h (min_align_of_type): New prototype.
26343 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
26344 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
26345 check.
26346 * ubsan.c: Include builtins.h.
26347 (ubsan_expand_bounds_ifn): Change return type to bool,
26348 always return true.
26349 (ubsan_expand_null_ifn): Change return type to bool, change
26350 argument to gimple_stmt_iterator *. Handle both null and alignment
26351 sanitization, take type from ckind argument's type rather than
26352 first argument.
26353 (instrument_member_call): Removed.
26354 (instrument_mem_ref): Remove t argument, add mem and base arguments.
26355 Handle both null and alignment sanitization, don't say whole
26356 struct access is member access. Build 3 argument IFN_UBSAN_NULL
26357 call instead of 2 argument.
26358 (instrument_null): Adjust instrument_mem_ref caller. Don't
26359 instrument calls here.
26360 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
26361 like SANITIZE_NULL.
26362 * stor-layout.c (min_align_of_type): New function.
26363 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
26364 Or it into SANITIZE_UNDEFINED.
26365 * doc/invoke.texi (-fsanitize=alignment): Document.
26366
26367 2014-07-31 Andi Kleen <ak@linux.intel.com>
26368
26369 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
26370
26371 2014-07-31 Andi Kleen <ak@linux.intel.com>
26372
26373 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
26374 inchash.
26375 (vn_reference_compute_hash): Dito.
26376 (vn_nary_op_compute_hash): Dito.
26377 (vn_phi_compute_hash): Dito.
26378 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
26379
26380 2014-07-31 Andi Kleen <ak@linux.intel.com>
26381
26382 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
26383 Rename to inchash:add_expr_commutative. Convert to inchash.
26384 (iterative_hash_hashable_expr): Rename to
26385 inchash:add_hashable_expr. Convert to inchash.
26386 (avail_expr_hash): Dito.
26387
26388 2014-07-31 Andi Kleen <ak@linux.intel.com>
26389
26390 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
26391 Convert to inchash.
26392
26393 2014-07-31 Andi Kleen <ak@linux.intel.com>
26394
26395 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
26396
26397 2014-07-31 Andi Kleen <ak@linux.intel.com>
26398
26399 * Makefile.in (OBJS): Add rtlhash.o
26400 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
26401 (loc_checksum): Dito.
26402 (loc_checksum_ordered): Dito.
26403 (hash_loc_operands): Dito.
26404 (hash_locs): Dito.
26405 (hash_loc_list): Dito.
26406 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
26407 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
26408 * rtlhash.c: New file.
26409 * rtlhash.h: New file.
26410
26411 2014-07-31 Andi Kleen <ak@linux.intel.com>
26412
26413 * inchash.h (inchash): Change inchash class to namespace.
26414 (class hash): ... Rename from inchash.
26415 (add_object): Move from macro to class template.
26416 * lto-streamer-out.c (hash_tree): Change inchash
26417 to inchash::hash.
26418 * tree.c (build_type_attribute_qual_variant): Dito.
26419 (type_hash_list): Dito.
26420 (attribute_hash_list): Dito.
26421 (iterative_hstate_expr): Rename to inchash::add_expr
26422 (build_range_type_1): Change inchash to inchash::hash
26423 and use hash::add_expr.
26424 (build_array_type_1): Dito.
26425 (build_function_type): Dito
26426 (build_method_type_directly): Dito.
26427 (build_offset_type): Dito.
26428 (build_complex_type): Dito.
26429 (make_vector_type): Dito.
26430 * tree.h (iterative_hash_expr): Dito.
26431
26432 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
26433
26434 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
26435
26436 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
26437
26438 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
26439 correct alphabetical position.
26440 (vpaddd_f64): Rewrite using builtins.
26441 (vpaddd_s64): Move to correct alphabetical position.
26442 (vpaddd_u64): New.
26443
26444 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
26445
26446 PR target/61844
26447 * config/sh/sh.c (sh_legitimate_address_p,
26448 sh_legitimize_reload_address): Handle reg+reg address modes when
26449 ALLOW_INDEXED_ADDRESS is false.
26450 * config/sh/predicates.md (general_movsrc_operand,
26451 general_movdst_operand): Likewise.
26452
26453 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
26454
26455 * config/aarch64/aarch64-builtins.c
26456 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
26457 BYTES_BIG_ENDIAN.
26458
26459 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
26460
26461 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
26462 the generated mask based on BYTES_BIG_ENDIAN.
26463 (aarch64_simd_check_vect_par_cnst_half): New.
26464 * config/aarch64/aarch64-protos.h
26465 (aarch64_simd_check_vect_par_cnst_half): New.
26466 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
26467 the check out to aarch64_simd_check_vect_par_cnst_half.
26468 (vect_par_cnst_lo_half): Likewise.
26469 * config/aarch64/aarch64-simd.md
26470 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
26471 (move_hi_quad_<mode>): Always generate a low mask.
26472
26473 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26474
26475 * doc/invoke.texi (AVR Options): Add documentation about
26476 __AVR_DEVICE_NAME__ built-in macro.
26477
26478 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
26479
26480 PR target/61948
26481 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
26482 constraints are satisfied.
26483 (<shift>di3_neon): Likewise.
26484
26485 2014-07-31 Richard Biener <rguenther@suse.de>
26486
26487 PR tree-optimization/61964
26488 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
26489 by structural equality.
26490
26491 2014-07-31 Yury Gribov <y.gribov@samsung.com>
26492
26493 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
26494 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
26495 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
26496 New enums.
26497 * gcc.c (sanitize_spec_function): Support new option.
26498 (SANITIZER_SPEC): Remove now redundant check.
26499 * opts.c (common_handle_option): Support new option.
26500 (finish_options): Check for incompatibilities.
26501 * toplev.c (process_options): Split userspace-specific checks.
26502
26503 2014-07-31 Richard Biener <rguenther@suse.de>
26504
26505 * lto-streamer.h (struct output_block): Remove global.
26506 (struct data_in): Remove labels, num_named_labels and
26507 num_unnamed_labels.
26508 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
26509 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
26510
26511 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
26512
26513 PR c++/60517
26514 * common.opt (-Wreturn-local-addr): Moved from c.opt.
26515 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
26516 (isolate_path): New argument to avoid inserting a trap.
26517 (find_implicit_erroneous_behaviour): Handle returning the address
26518 of a local variable.
26519 (find_explicit_erroneous_behaviour): Likewise.
26520
26521 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
26522
26523 PR lto/61868
26524 * toplev.c (init_random_seed): Move piece of code never called to
26525 set_random_seed.
26526 (set_random_seed): see above.
26527
26528 2014-07-31 Tom de Vries <tom@codesourcery.com>
26529
26530 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
26531
26532 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
26533
26534 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
26535 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
26536
26537 2014-07-31 Richard Biener <rguenther@suse.de>
26538
26539 * data-streamer.h (streamer_write_data_stream): Declare here,
26540 renamed from ...
26541 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
26542 * lto-cgraph.c (lto_output_node): Adjust.
26543 (lto_output_varpool_node): Likewise.
26544 * data-streamer-out.c (streamer_string_index): Likewise.
26545 (streamer_write_data_stream, lto_append_block): Move from ...
26546 * lto-section-out.c (lto_output_data_stream,
26547 lto_append_block): ... here.
26548
26549 2014-07-30 Mike Stump <mikestump@comcast.net>
26550
26551 * configure.ac: Also check for popen.
26552 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
26553 * configure: Regenerate.
26554 * config.in: Regenerate.
26555
26556 2014-07-30 Martin Jambor <mjambor@suse.cz>
26557
26558 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
26559 parameter to gimple.
26560
26561 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26562
26563 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
26564 address as second parameter to __tpf_eh_return routine.
26565
26566 2014-07-30 Jiong Wang <jiong.wang@arm.com>
26567
26568 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
26569 Thumb2.
26570
26571 2014-07-30 Tom Tromey <tromey@redhat.com>
26572
26573 PR c/59855
26574 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
26575 * doc/extend.texi (Type Attributes): Document designated_init
26576 attribute.
26577
26578 2014-07-30 Roman Gareev <gareevroman@gmail.com>
26579
26580 * graphite-isl-ast-to-gimple.c:
26581 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
26582 (gcc_expression_from_isl_expression): Pass type to
26583 gcc_expression_from_isl_ast_expr_id.
26584
26585 2014-07-30 Richard Biener <rguenther@suse.de>
26586
26587 * lto-streamer.h (lto_write_data): New function.
26588 * langhooks.c (lhd_append_data): Do not free block.
26589 * lto-section-out.c (lto_write_data): New function writing
26590 raw data to the current section.
26591 (lto_write_stream): Adjust for langhook semantic change.
26592 (lto_destroy_simple_output_block): Write header directly.
26593 * lto-opts.c (lto_write_options): Write options directly.
26594 * lto-streamer-out.c (produce_asm): Write heaeder directly.
26595 (lto_output_toplevel_asms): Likewise.
26596 (copy_function_or_variable): Copy data directly.
26597 (write_global_references): Output index table directly.
26598 (lto_output_decl_state_refs): Likewise.
26599 (write_symbol): Write data directly.
26600 (produce_symtab): Adjust.
26601 (produce_asm_for_decls): Output header and refs directly.
26602
26603 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
26604
26605 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
26606 to speculative_targets
26607 (get_class_context): Fix handling of contextes without outer type;
26608 avoid matching non-polymorphic types in LTO.
26609 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
26610 parameter to speculative_targetsp; handle speculation.
26611 (dump_possible_polymorphic_call_targets): Update dumping.
26612
26613 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
26614
26615 * common.opt (Wodr): Enable by default.
26616
26617 2014-07-29 Olivier Hainque <hainque@adacore.com>
26618
26619 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
26620
26621 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
26622
26623 PR bootstrap/61914
26624 * gengtype.c (strtoken): New function.
26625 (create_user_defined_type): Replace strtok with strtoken.
26626
26627 2014-07-29 Nathan Sidwell <nathan@acm.org>
26628
26629 * gcov-io.c (gcov_var): Make hidden.
26630 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
26631 (gcov_do_dump): Declare.
26632 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
26633
26634 2014-07-29 Martin Jambor <mjambor@suse.cz>
26635
26636 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
26637 parameter to gimple.
26638 (sra_modify_assign): Likewise.
26639
26640 2014-07-29 Richard Biener <rguenther@suse.de>
26641
26642 PR middle-end/52478
26643 * expr.c (expand_expr_real_2): Revert last change.
26644
26645 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
26646
26647 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
26648 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
26649 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
26650 call.
26651 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
26652 (contains_type_p): Forward declare.
26653 (polymorphic_call_target_hasher::hash): Hash speculative info.
26654 (polymorphic_call_target_hasher::equal): Compare speculative info.
26655 (get_class_context): Handle speuclation.
26656 (contains_type_p): Update.
26657 (get_polymorphic_call_info_for_decl): Update.
26658 (walk_ssa_copies): Break out from ...
26659 (get_polymorphic_call_info): ... here; set speculative context
26660 before giving up.
26661 * ipa-prop.c (ipa_write_indirect_edge_info,
26662 ipa_read_indirect_edge_info): Stream speculative context.
26663 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
26664 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
26665 SPECULATIVE_MAYBE_DERIVED_TYPE).
26666 (possible_polymorphic_call_targets overriders): Update.
26667 (dump_possible_polymorphic_call_targets overriders): Update.
26668 (dump_possible_polymorphic_call_target_p overriders): Update.
26669
26670 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
26671
26672 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
26673 ipa-devirt path; fix thinko there.
26674
26675 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
26676
26677 * config/i386/i386.c (ix86_return_in_memory): Replace one
26678 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
26679
26680 2014-07-28 Marek Polacek <polacek@redhat.com>
26681
26682 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
26683
26684 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
26685
26686 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
26687 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
26688 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
26689 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
26690 (USE_LD_AS_NEEDED): Likewise.
26691 (ASM_APP_ON): Likewise.
26692 (ASM_APP_OFF): Likewise.
26693 (TARGET_POSIX_IO): Likewise.
26694 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
26695 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
26696 (USE_LD_AS_NEEDED): Likewise.
26697 (ASM_APP_ON): Likewise.
26698 (ASM_APP_OFF): Likewise.
26699 (TARGET_POSIX_IO): Likewise.
26700
26701 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
26702
26703 PR middle-end/61734
26704 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
26705 operators other than the equality operators.
26706
26707 2014-07-28 Richard Biener <rguenther@suse.de>
26708
26709 PR middle-end/52478
26710 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
26711 sure to register SImode ones, not only >= word_mode ones.
26712 * expr.c (expand_expr_real_2): When expanding -ftrapv
26713 binops do not use OPTAB_LIB_WIDEN.
26714
26715 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
26716
26717 PR middle-end/61919
26718 * tree-outof-ssa.c (insert_partition_copy_on_edge)
26719 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
26720 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
26721 inserting them in the insn stream.
26722
26723 2014-07-28 Marek Polacek <polacek@redhat.com>
26724
26725 PR middle-end/61913
26726 * common.opt (Wodr): Add Var.
26727
26728 2014-07-28 Richard Biener <rguenther@suse.de>
26729
26730 PR tree-optimization/61921
26731 * tree-ssa-structalias.c (create_variable_info_for_1): Check
26732 if there is a varpool node before dereferencing it.
26733
26734 2014-07-28 Roman Gareev <gareevroman@gmail.com>
26735
26736 * graphite-sese-to-poly.c:
26737 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
26738 id of the pbb), which contains pointer to the pbb1.
26739
26740 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
26741
26742 2014-07-28 Roman Gareev <gareevroman@gmail.com>
26743
26744 * graphite-isl-ast-to-gimple.c:
26745 (graphite_create_new_guard): New function.
26746 (translate_isl_ast_node_if): New function.
26747 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
26748
26749 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
26750
26751 2014-07-27 Anthony Green <green@moxielogic.com>
26752
26753 * config.gcc: Add moxie-*-moxiebox* configuration.
26754 * config/moxie/moxiebox.h: New file.
26755
26756 2014-07-26 Andrew Pinski <apinski@cavium.com>
26757
26758 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
26759 from the read only register.
26760
26761 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
26762
26763 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
26764 as the allocation class if it isn't likely to be spilled.
26765
26766 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
26767
26768 * rtl.h (tls_referenced_p): Declare.
26769 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
26770 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
26771 (mips_cannot_force_const_mem): Use tls_referenced_p.
26772 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
26773 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
26774 instead of pa_tls_referenced_p.
26775 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
26776 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
26777 (pa_legitimate_constant_p): Likewise.
26778 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
26779 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
26780 (rs6000_cannot_force_const_mem, rs6000_emit_move)
26781 (rs6000_address_for_altivec): Use tls_referenced_p instead of
26782 rs6000_tls_referenced_p.
26783 (rs6000_tls_symbol_ref_1): Delete.
26784
26785 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
26786
26787 PR target/44551
26788 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
26789 Optimize inverse of a VEC_CONCAT.
26790
26791 2014-07-25 Xinliang David Li <davidxl@google.com>
26792
26793 * params.def: New parameter.
26794 * coverage.c (get_coverage_counts): Check new flag.
26795 (coverage_compute_profile_id): Check new flag.
26796 (coverage_begin_function): Check new flag.
26797 (coverage_end_function): Check new flag.
26798 * value-prof.c (coverage_node_map_initialized_p): New function.
26799 (init_node_map): Populate map with all functions.
26800 * doc/invoke.texi: Document new parameter.
26801
26802 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
26803 Richard Biener <rguenther@suse.de>
26804
26805 * lto-streamer-out.c (struct sccs): Turn to ...
26806 (class DFS): ... this one; refactor the DFS walk so it can
26807 be re-done on per-SCC basis.
26808 (DFS::DFS): New constructor.
26809 (DFS::~DFS): New destructor.
26810 (hash_tree): Add new MAP argument holding in-SCC hash values;
26811 remove POINTER_TYPE hashing hack.
26812 (scc_entry_compare): Rename to ...
26813 (DFS::scc_entry_compare): ... this one.
26814 (hash_scc): Rename to ...
26815 (DFS::hash_scc): ... this one; pass output_block instead
26816 of streamer_cache; work harder to get unique and stable SCC
26817 hashes.
26818 (DFS_write_tree): Rename to ...
26819 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
26820 (lto_output_tree): Update.
26821
26822 2014-07-25 Andi Kleen <ak@linux.intel.com>
26823
26824 * lto-streamer-out.c (hash_tree): Convert to inchash.
26825
26826 2014-07-25 Andi Kleen <ak@linux.intel.com>
26827
26828 * tree.c (build_type_attribute_qual_variant): Use inchash.
26829 (type_hash_list): Dito.
26830 (attribute_hash_list): Dito
26831 (iterative_hstate_expr): Dito.
26832 (iterative_hash_expr): Dito.
26833 (build_range_type_1): Dito.
26834 (build_array_type_1): Dito.
26835 (build_function_type): Dito.
26836 (build_method_type_directly): Dito.
26837 (build_offset_type): Dito.
26838 (build_complex_type): Dito.
26839 (make_vector_type): Dito.
26840 * tree.h (iterative_hash_expr): Add compat wrapper.
26841 (iterative_hstate_expr): Add.
26842
26843 2014-07-25 Andi Kleen <ak@linux.intel.com>
26844
26845 * Makefile.in (OBJS): Add inchash.o.
26846 (PLUGIN_HEADERS): Add inchash.h.
26847 * ipa-devirt.c: Include inchash.h.
26848 * lto-streamer-out.c: Dito.
26849 * tree-ssa-dom.c: Dito.
26850 * tree-ssa-pre.c: Dito.
26851 * tree-ssa-sccvn.c: Dito.
26852 * tree-ssa-tail-merge.c: Dito.
26853 * asan.c: Dito.
26854 * tree.c (iterative_hash_hashval_t): Move to ...
26855 (iterative_hash_host_wide_int): Move to ...
26856 * inchash.c: Here. New file.
26857 * tree.h (iterative_hash_hashval_t): Move to ...
26858 (iterative_hash_host_wide_int): Move to ...
26859 * inchash.h: Here. New file.
26860
26861 2014-07-25 Richard Biener <rguenther@suse.de>
26862
26863 PR middle-end/61762
26864 PR middle-end/61894
26865 * fold-const.c (native_encode_int): Add and handle offset
26866 parameter to do partial encodings of expr.
26867 (native_encode_fixed): Likewise.
26868 (native_encode_real): Likewise.
26869 (native_encode_complex): Likewise.
26870 (native_encode_vector): Likewise.
26871 (native_encode_string): Likewise.
26872 (native_encode_expr): Likewise.
26873 * fold-const.c (native_encode_expr): Add offset parameter
26874 defaulting to -1.
26875 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
26876 (fold_ctor_reference): Handle all reads from tcc_constant
26877 ctors.
26878
26879 2014-07-25 Richard Biener <rguenther@suse.de>
26880
26881 * tree-inline.c (estimate_move_cost): Mark speed_p argument
26882 as possibly unused.
26883
26884 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26885
26886 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
26887
26888 2014-07-24 Kyle McMartin <kyle@redhat.com>
26889
26890 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
26891
26892 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26893
26894 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
26895 Add prototype.
26896 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
26897 function.
26898 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
26899 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
26900 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
26901
26902 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26903
26904 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
26905 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
26906 aggregate types. Instead, *all* aggregate types, except for single-
26907 element or homogeneous float/vector aggregates, are quadword-aligned
26908 if required by their type alignment. Issue -Wpsabi note when a type
26909 is now treated differently than before.
26910
26911 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26912
26913 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
26914 does not fit fully into floating-point registers, and there is still
26915 space in the register parameter area, use GPRs to pass those parts
26916 of the argument. Issue -Wpsabi note if any parameter is now treated
26917 differently than before.
26918 (rs6000_arg_partial_bytes): Update.
26919
26920 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
26921
26922 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
26923
26924 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
26925
26926 * rtl.h (target_rtl): Remove lang_dependent_initialized.
26927 * toplev.c (initialize_rtl): Don't use it. Move previously
26928 "language-dependent" calls to...
26929 (backend_init): ...here.
26930 (lang_dependent_init_target): Don't set lang_dependent_initialized.
26931 Assert that RTL initialization hasn't happend yet.
26932
26933 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
26934
26935 PR rtl-optimization/61629
26936 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
26937 they have already been initialized.
26938
26939 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
26940
26941 PR middle-end/61268
26942 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
26943 DECL_INCOMING_RTL and entry_parm.
26944 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
26945 * calls.c (load_register_parameters): Likewise argument values.
26946 (emit_library_call_value_1, store_one_arg): Likewise argument
26947 save areas.
26948 * config/i386/i386.c (assign_386_stack_local): Likewise the local
26949 stack slot.
26950 * explow.c (validize_mem): Modify the argument in-place.
26951
26952 2014-07-24 Jiong Wang <jiong.wang@arm.com>
26953
26954 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
26955 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
26956
26957 2014-07-24 Jiong Wang <jiong.wang@arm.com>
26958
26959 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
26960 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
26961
26962 2014-07-24 Jiong Wang <jiong.wang@arm.com>
26963
26964 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
26965 (aarch64_save_callee_saves): New parameter "skip_wb".
26966 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
26967
26968 2014-07-24 Jiong Wang <jiong.wang@arm.com>
26969
26970 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
26971 "wb_candidate2".
26972 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
26973
26974 2014-07-24 Roman Gareev <gareevroman@gmail.com>
26975
26976 * graphite-isl-ast-to-gimple.c:
26977 (graphite_create_new_loop): Add calling of isl_id_free to properly
26978 decrement reference counts.
26979
26980 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
26981
26982 2014-07-24 Martin Liska <mliska@suse.cz>
26983 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
26984 function used.
26985 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
26986 (rs6000_code_end): Likewise.
26987
26988 2014-07-24 Martin Liska <mliska@suse.cz>
26989
26990 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
26991 symtab_node funtion used.
26992 (rs6000_xcoff_declare_object_name): Likewise.
26993
26994 2014-07-24 Martin Liska <mliska@suse.cz>
26995
26996 * cgraphunit.c (compile): Correct function used.
26997
26998 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
26999
27000 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
27001 as non-indexable.
27002
27003 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
27004
27005 PR lto/61802
27006 * varasm.c (bss_initializer_p): Handle offlined ctors.
27007 (align_variable, get_variable_align): Likewise.
27008 (make_decl_one_only): Likewise.
27009 (default_binds_local_p_1): Likewise.
27010 (decl_binds_to_current_def_p): Likewise.
27011 (get_variable_section): Get constructor if it is offlined.
27012 (assemble_variable_contents): Sanity check that the caller
27013 streamed in the ctor in LTO.
27014
27015 2014-07-24 Roman Gareev <gareevroman@gmail.com>
27016
27017 * graphite-isl-ast-to-gimple.c:
27018 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
27019 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
27020 isl_ast_op_pdiv_r to the different case.
27021
27022 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
27023
27024 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27025
27026 PR middle-end/61876
27027 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
27028 when flag_errno_math is on.
27029
27030 2014-07-24 Martin Liska <mliska@suse.cz>
27031
27032 * cgraph.h (varpool_node):
27033 (availability get_availability (void)):
27034 created from cgraph_variable_initializer_availability
27035 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
27036 created from: cgraph_variable_initializer_availability
27037 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
27038 (void finalize_named_section_flags (void)):
27039 created from varpool_finalize_named_section_flags
27040 (bool assemble_decl (void)): created from varpool_assemble_decl
27041 (void analyze (void)): created from varpool_analyze_node
27042 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
27043 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
27044 (void remove_initializer (void)): created from varpool_remove_initializer
27045 (tree get_constructor (void)): created from varpool_get_constructor
27046 (bool externally_visible_p (void)): created from varpool_externally_visible_p
27047 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
27048 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
27049 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
27050 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
27051 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
27052 (static bool output_variables (void)): created from varpool_output_variables
27053 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
27054 created from varpool_extra_name_alias
27055 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
27056 (static void dump_varpool (FILE *f)): created from dump_varpool
27057 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
27058 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
27059 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
27060 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
27061 (void assemble_aliases (void)): created from assemble_aliases
27062
27063 2014-07-24 Martin Liska <mliska@suse.cz>
27064
27065 * cgraph.h (symtab_node):
27066 (void register_symbol (void)): created from symtab_register_node
27067 (void remove (void)): created from symtab_remove_node
27068 (void dump (FILE *f)): created from dump_symtab_node
27069 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
27070 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
27071 (struct ipa_ref *add_reference (symtab_node *referred_node,
27072 enum ipa_ref_use use_type)): created from add_reference
27073 (struct ipa_ref *add_reference (symtab_node *referred_node,
27074 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
27075 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
27076 gimple stmt)): created from maybe_add_reference
27077 (bool semantically_equivalent_p (symtab_node *target)): created from
27078 symtab_semantically_equivalent_p
27079 (void remove_from_same_comdat_group (void)): created from
27080 remove_from_same_comdat_group
27081 (void add_to_same_comdat_group (symtab_node *old_node)): created from
27082 symtab_add_to_same_comdat_group
27083 (void dissolve_same_comdat_group_list (void)): created from
27084 symtab_dissolve_same_comdat_group_list
27085 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
27086 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
27087 created from symtab_alias_ultimate_target
27088 (inline symtab_node *next_defined_symbol (void)): created from
27089 symtab_next_defined_symbol
27090 (bool resolve_alias (symtab_node *target)): created from
27091 symtab_resolve_alias
27092 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
27093 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
27094 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
27095 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
27096 (void set_section (const char *section)): created from set_section_1
27097 (enum availability get_availability (void)): created from symtab_node_availability
27098 (void make_decl_local (void)): created from symtab_make_decl_local
27099 (bool real_symbol_p (void)): created from symtab_read_node
27100 (can_be_discarded_p (void)): created from symtab_can_be_discarded
27101 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
27102 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
27103 symtab_in_same_comdat_p;
27104 (bool address_taken_from_non_vtable_p (void)): created from
27105 address_taken_from_non_vtable_p
27106 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
27107 (static void dump_table (FILE *)): created from dump_symtab
27108 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
27109 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
27110 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
27111 symtab_used_from_object_file_p
27112 (void dump_base (FILE *)): created from dump_symtab_base
27113 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
27114 (void unregister (void)): created from symtab_unregister_node
27115 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
27116 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
27117 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
27118 symtab_nonoverwritable_alias_1
27119 * cgraph.h (cgraph_node):
27120 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
27121 created from cgraph_remove_node_and_inline_clones
27122 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
27123 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
27124 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
27125 (cgraph_node *function_symbol (enum availability *avail = NULL)):
27126 created from cgraph_function_node
27127 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
27128 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
27129 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
27130 created from cgraph_create_clone
27131 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
27132 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
27133 created from cgraph_create_virtual_clone
27134 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
27135 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
27136 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
27137 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
27138 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
27139 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
27140 created from cgraph_function_version_info
27141 (struct cgraph_function_version_info *insert_new_function_version (void)):
27142 created from insert_new_cgraph_node_version
27143 (struct cgraph_function_version_info *function_version (void)): created from
27144 get_cgraph_node_version
27145 (void analyze (void)): created from analyze_function
27146 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
27147 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
27148 tree real_alias) cgraph_add_thunk
27149 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
27150 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
27151 created from cgraph_function_or_thunk_node
27152 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
27153 created from expand_thunk
27154 (void reset (void)): created from cgraph_reset_node
27155 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
27156 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
27157 (void remove (void)): created from cgraph_remove_node
27158 (void dump (FILE *f)): created from dump_cgraph_node
27159 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
27160 (bool get_body (void)): created from cgraph_get_body
27161 (void release_body (void)): created from cgraph_release_function_body
27162 (void unnest (void)): created from cgraph_unnest_node
27163 (void make_local (void)): created from cgraph_make_node_local
27164 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
27165 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
27166 gcov_type count, int freq)): created from cgraph_create_edge
27167 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
27168 gcov_type count, int freq)): created from cgraph_create_indirect_edge
27169 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
27170 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
27171 created from cgraph_create_edge_including_clones
27172 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
27173 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
27174 (void remove_callers (void)): created from cgraph_node_remove_callers
27175 (void remove_callees (void)): created from cgraph_node_remove_callees
27176 (enum availability get_availability (void)): created from cgraph_function_body_availability
27177 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
27178 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
27179 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
27180 (void call_duplication_hooks (cgraph_node *node2)): created from
27181 cgraph_call_node_duplication_hooks
27182 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
27183 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
27184 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
27185 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
27186 (void call_function_insertion_hooks (void)):
27187 created from cgraph_call_function_insertion_hooks
27188 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
27189 (bool local_p (void)): created from cgraph_local_node
27190 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
27191 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
27192 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
27193 (inline bool only_called_directly_or_aliased_p (void)):
27194 created from cgraph_only_called_directly_or_aliased_p
27195 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
27196 created from cgraph_will_be_removed_from_program_if_no_direct_calls
27197 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
27198 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
27199 (bool can_remove_if_no_direct_calls_p (void)):
27200 created from cgraph_can_remove_if_no_direct_calls_p
27201 (inline bool has_gimple_body_p (void)):
27202 created from cgraph_function_with_gimple_body_p
27203 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
27204 (static void dump_cgraph (FILE *f)): created from dump_cgraph
27205 (static inline void debug_cgraph (void)): created from debug_cgraph
27206 (static void record_function_versions (tree decl1, tree decl2)):
27207 created from record_function_versions
27208 (static void delete_function_version (tree decl)):
27209 created from delete_function_version
27210 (static void add_new_function (tree fndecl, bool lowered)):
27211 created from cgraph_add_new_function
27212 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
27213 (static cgraph_node * create (tree decl)): created from cgraph_create_node
27214 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
27215 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
27216 (static cgraph_node *get_for_asmname (tree asmname)):
27217 created from cgraph_node_for_asm
27218 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
27219 created from cgraph_same_body_alias
27220 (static bool used_from_object_file_p_worker (cgraph_node *node,
27221 void *): new function
27222 (static bool non_local_p (cgraph_node *node, void *)):
27223 created from cgraph_non_local_node_p_1
27224 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
27225 created from verify_cgraph
27226 (static bool make_local (cgraph_node *node, void *)):
27227 created from cgraph_make_node_local
27228 (static cgraph_node *create_alias (tree alias, tree target)):
27229 created from cgraph_create_function_alias
27230 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
27231 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
27232 created from cgraph_create_edge_1
27233 * cgraph.h (varpool_node):
27234 (void remove (void)): created from varpool_remove_node
27235 (void dump (FILE *f)): created from dump_varpool_node
27236
27237 2014-07-24 Richard Biener <rguenther@suse.de>
27238
27239 PR ipa/61823
27240 * tree-ssa-structalias.c (create_variable_info_for_1):
27241 Use varpool_get_constructor.
27242 (create_variable_info_for): Likewise.
27243
27244 2014-07-24 Jiong Wang <jiong.wang@arm.com>
27245
27246 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
27247 subtract outgoing area size when restoring stack_pointer_rtx.
27248
27249 2014-07-24 Nick Clifton <nickc@redhat.com>
27250
27251 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
27252 that operations are taking place in parallel.
27253 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
27254
27255 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
27256
27257 * omp-low.c (extract_omp_for_data): Add missing break statement.
27258
27259 2014-07-24 Richard Biener <rguenther@suse.de>
27260
27261 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
27262 * tree-inline.c (estimate_move_cost): Add speed_p parameter
27263 and adjust MOVE_RATIO query accordingly.
27264 (estimate_num_insns): Adjust callers.
27265 * ipa-prop.c (ipa_populate_param_decls): Likewise.
27266 * ipa-cp.c (gather_context_independent_values,
27267 estimate_local_effects): Likewise.
27268 * ipa-split.c (consider_split): Likewise.
27269
27270 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
27271
27272 * config/i386/driver-i386.c: Remove names of unused arguments and
27273 unnecessary unused attributes.
27274 * config/i386/host-mingw32.c: Likewise.
27275 * config/i386/i386.c: Likewise.
27276 * config/i386/winnt-stubs.c: Likewise.
27277 * config/i386/winnt.c: Likewise.
27278
27279 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27280
27281 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
27282 (aarch64_gen_loadwb_pair): New helper function.
27283 (aarch64_expand_epilogue): Simplify code using new helper functions.
27284 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
27285
27286 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27287
27288 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
27289 (aarch64_gen_storewb_pair): New helper function.
27290 (aarch64_expand_prologue): Simplify code using new helper functions.
27291 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
27292
27293 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27294
27295 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
27296 Rename to aarch64_save_callee_saves, remove restore code.
27297 (aarch64_restore_callee_saves): New function.
27298
27299 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27300
27301 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
27302 (aarch64_save_callee_saves): New function to handle reg save
27303 for both core and vectore regs.
27304
27305 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27306
27307 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
27308 (aarch64_gen_store_pair): New helper function.
27309 (aarch64_save_or_restore_callee_save_registers)
27310 (aarch64_save_or_restore_fprs): Use new helper functions.
27311
27312 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27313
27314 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
27315 (aarch64_save_or_restore_callee_save_registers)
27316 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
27317
27318 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27319
27320 * config/aarch64/aarch64.c
27321 (aarch64_save_or_restore_callee_save_registers)
27322 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
27323
27324 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27325
27326 * config/aarch64/aarch64.c
27327 (aarch64_save_or_restore_callee_save_registers)
27328 (aarch64_save_or_restore_fprs): Remove 'increment'.
27329
27330 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27331
27332 * config/aarch64/aarch64.c
27333 (aarch64_save_or_restore_callee_save_registers)
27334 (aarch64_save_or_restore_fprs): Use register offset in
27335 cfun->machine->frame.reg_offset.
27336
27337 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27338
27339 * config/aarch64/aarch64.c
27340 (aarch64_save_or_restore_callee_save_registers)
27341 (aarch64_save_or_restore_fprs): Remove base_rtx.
27342
27343 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27344
27345 * config/aarch64/aarch64.c
27346 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
27347 to 'start_offset'. Remove local variable 'start_offset'.
27348
27349 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27350
27351 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
27352 type to HOST_WIDE_INT.
27353
27354 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27355
27356 * config/aarch64/aarch64.c (aarch64_expand_prologue)
27357 (aarch64_save_or_restore_fprs)
27358 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
27359
27360 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
27361
27362 * config/arm/t-rtems-eabi: Add
27363 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
27364 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
27365 mbig-endian/mthumb/march=armv7-r, and
27366 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
27367 multilibs.
27368
27369 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
27370 Chris Johns <chrisj@rtems.org>
27371 Joel Sherrill <joel.sherrill@oarcorp.com>
27372
27373 * config.gcc: Add nios2-*-rtems*.
27374 * config/nios2/rtems.h: New file.
27375 * gcc/config/nios2/t-rtems: New file.
27376
27377 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
27378
27379 PR target/61396
27380 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
27381 constant numbers, not general constants.
27382 (rs6000_expand_vector_init): Ditto.
27383
27384 2014-07-23 Nathan Sidwell <nathan@acm.org>
27385
27386 * gcov-tool.c (gcov_list): Declare here.
27387 (set_gcov_list): Remove.
27388 (gcov_output_files): Set gcov_list directly.
27389
27390 2014-07-23 Host Schirmeier <horst@schirmeier.com>
27391
27392 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
27393
27394 2014-07-23 Jiong Wang <jiong.wang@arm.com>
27395
27396 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
27397 callee-saved registers are available for padding purpose
27398 and r3 is not mandatory, then prefer use those callee-saved
27399 instead of r3.
27400
27401 2014-07-23 Richard Biener <rguenther@suse.de>
27402
27403 * params.def (PARAM_MAX_COMBINE_INSNS): New.
27404 * combine.c: Include statistics.h and params.h.
27405 (combine_instructions): Guard three and four insn combines
27406 with max-combine-insns value. Record statistics for combines
27407 performed.
27408 * doc/invoke.texi (max-combine-insns): Document new param.
27409
27410 2014-07-23 Roman Gareev <gareevroman@gmail.com>
27411
27412 * graphite-isl-ast-to-gimple.c:
27413 (translate_isl_ast_node_block): New function.
27414 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
27415
27416 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
27417 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
27418
27419 2014-07-23 Roman Gareev <gareevroman@gmail.com>
27420
27421 * graphite-isl-ast-to-gimple.c:
27422 (get_max_schedule_dimensions): New function.
27423 (extend_schedule): Likewise.
27424 (generate_isl_schedule): Add calling of extend_schedule and
27425 get_max_schedule_dimensions.
27426
27427 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27428
27429 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
27430 (case UNSPEC): Handle UNSPEC_RBIT.
27431
27432 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27433
27434 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
27435 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
27436
27437 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27438
27439 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
27440
27441 2014-07-22 Roman Gareev <gareevroman@gmail.com>
27442
27443 * graphite-isl-ast-to-gimple.c:
27444 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
27445 (ivs_params_clear):
27446 (build_iv_mapping): New function.
27447 (translate_isl_ast_node_user): Likewise.
27448 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
27449
27450 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
27451 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
27452 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
27453
27454 2014-07-21 Bin Cheng <bin.cheng@arm.com>
27455
27456 PR target/55701
27457 * config/arm/arm.md (setmem): New pattern.
27458 * config/arm/arm-protos.h (struct tune_params): New fields.
27459 (arm_gen_setmem): New prototype.
27460 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
27461 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
27462 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
27463 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
27464 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
27465 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
27466 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
27467 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
27468 (arm_const_inline_cost): New function.
27469 (arm_block_set_max_insns): New function.
27470 (arm_block_set_non_vect_profit_p): New function.
27471 (arm_block_set_vect_profit_p): New function.
27472 (arm_block_set_unaligned_vect): New function.
27473 (arm_block_set_aligned_vect): New function.
27474 (arm_block_set_unaligned_non_vect): New function.
27475 (arm_block_set_aligned_non_vect): New function.
27476 (arm_block_set_vect, arm_gen_setmem): New functions.
27477
27478 2014-07-21 Bin Cheng <bin.cheng@arm.com>
27479
27480 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
27481
27482 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
27483
27484 PR target/61855
27485 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
27486 out of #ifdef __OPTIMIZE__.
27487
27488 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
27489
27490 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
27491 different trapping status if -fnon-call-exceptions is enabled.
27492
27493 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
27494
27495 * expr.c (store_field): Handle VOIDmode for calls that return values
27496 in multiple locations.
27497
27498 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27499
27500 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
27501 (altivec_vsldoi_<mode>): Likewise.
27502
27503 2014-07-20 Roman Gareev <gareevroman@gmail.com>
27504
27505 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
27506 to the number of characters in the line.
27507
27508 2014-07-20 Roman Gareev <gareevroman@gmail.com>
27509
27510 * graphite-isl-ast-to-gimple.c: Add using of
27511 build_nonstandard_integer_type instead of int128_integer_type_node.
27512
27513 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
27514
27515 * toplev.c (output_stack_usage): Adjust the location of the warning.
27516
27517 2014-07-19 Daniel Cederman <cederman@gaisler.com>
27518
27519 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
27520 (*membar_storeload): Disable for LEON3.
27521
27522 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
27523
27524 PR rtl-optimization/61461
27525 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
27526
27527 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
27528
27529 PR target/61794
27530 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
27531 Fix instruction constraint.
27532 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
27533
27534 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
27535
27536 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
27537
27538 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
27539
27540 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
27541 GNU coding standards.
27542 (nds32_register_move_cost): Likewise.
27543 (nds32_memory_move_cost): Likewise.
27544 (nds32_address_cost): Likewise.
27545
27546 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27547
27548 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
27549
27550 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
27551
27552 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
27553 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
27554 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
27555 (HAVE_sync_compare_and_swapqi): Define.
27556 (HAVE_sync_compare_and_swaphi): Likewise.
27557 (HAVE_sync_compare_and_swapsi): Likewise.
27558
27559 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
27560
27561 * config/mips/p5600.md: Add missing cpu tests.
27562
27563 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27564
27565 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
27566 (vmla_f64): Likewise.
27567 (vfms_f64): Likewise.
27568 (vmls_f64): Likewise.
27569
27570 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27571
27572 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
27573 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
27574
27575 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27576
27577 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
27578 (vmlal_high_lane_s32): Likewise.
27579 (vmlal_high_lane_u16): Likewise.
27580 (vmlal_high_lane_u32): Likewise.
27581 (vmlsl_high_lane_s16): Likewise.
27582 (vmlsl_high_lane_s32): Likewise.
27583 (vmlsl_high_lane_u16): Likewise.
27584 (vmlsl_high_lane_u32): Likewise.
27585
27586 2014-07-17 Terry Guo <terry.guo@arm.com>
27587
27588 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
27589 (alus_reg): Renamed to alus_sreg.
27590 * config/arm/arm-fixed.md: Change type of non-dsp instructions
27591 from alu_reg to alu_sreg. Change type of dsp instructions from
27592 alu_reg to alu_dsp_reg.
27593 * config/arm/thumb1.md: Likewise.
27594 * config/arm/thumb2.md: Likewise.
27595 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
27596 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
27597 with alu_sreg and alus_sreg.
27598 * config/arm/arm1026ejs.md (alu_op): Likewise.
27599 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
27600 * config/arm/arm926ejs.md (9_alu_op): Likewise.
27601 * config/arm/fa526.md (526_alu_op): Likewise.
27602 * config/arm/fa606te.md (606te_alu_op): Likewise.
27603 * config/arm/fa626te.md (626te_alu_op): Likewise.
27604 * config/arm/fa726te.md (726te_alu_op): Likewise.
27605 * config/arm/fmp626.md (mp626_alu_op): Likewise.
27606 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
27607 alu_sreg, alu_dsp_reg and alus_sreg.
27608 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
27609 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
27610 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
27611 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
27612 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
27613 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
27614 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
27615 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
27616 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
27617 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
27618 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
27619 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
27620 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
27621 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
27622 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
27623 alus_reg to alus_sreg.
27624
27625 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
27626
27627 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
27628 infinity format.
27629
27630 2014-07-17 Richard Biener <rguenther@suse.de>
27631
27632 PR rtl-optimization/61801
27633 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
27634 don't set reg_pending_barrier if it appears in a debug-insn.
27635
27636 2014-07-16 DJ Delorie <dj@redhat.com>
27637
27638 * config/rx/rx.c (rx_option_override): Fix alignment values.
27639 (rx_align_for_label): Likewise.
27640
27641 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
27642
27643 PR target/61737.
27644 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
27645 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
27646 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
27647 functions.
27648 (cris_print_index, cris_print_operand, cris_constant_index_p)
27649 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
27650 (cris_address_cost): Ditto last CONSTANT_P.
27651 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
27652 callers changed. Yield cris_offsettable_symbol for non-PIC
27653 constant symbolic expressions including labels. Yield cris_unspec
27654 for all unspecs.
27655 (cris_expand_pic_call_address): New parameter MARKERP. Set its
27656 target to pic_offset_table_rtx for calls that will likely go
27657 through PLT, const0_rtx when they can't. All callers changed.
27658 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
27659 symbolic expressions to be PICified. Remove second, redundant,
27660 assert on can_create_pseudo_p returning non-zero. Use
27661 replace_equiv_address_nv, not replace_equiv_address, for final
27662 operand update.
27663 * config/cris/cris.md ("movsi"): Move variable t to pattern
27664 toplevel. Adjust assert for new cris_symbol_type member. Use
27665 CONSTANT_P instead of CONSTANT_ADDRESS_P.
27666 ("*movsi_internal") <case 9>: Make check for valid unspec operands
27667 for lapc stricter.
27668 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
27669 ("call", "call_value"): Use second incoming operand as a marker
27670 for pic-offset-table-register being used.
27671 ("*expanded_call_non_v32", "*expanded_call_v32")
27672 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
27673 second incoming operand to CALL, match cris_call_type_marker.
27674 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
27675 ("*expanded_call_side"): Ditto. Fix typo in comment.
27676 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
27677 CONSTANT_P.
27678 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
27679 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
27680 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
27681 users changed. Add members cris_offsettable_symbol and cris_unspec.
27682 (cris_symbol_type): Rename from cris_pic_symbol_type.
27683 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
27684 just CONSTANT_P.
27685 * config/cris/cris-protos.h (cris_symbol_type_of,
27686 cris_expand_pic_call_address): Adjust prototypes.
27687 (cris_legitimate_constant_p): New prototype.
27688
27689 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
27690 an existing tmake_file. Don't add t-slibgcc and t-linux.
27691
27692 2014-07-17 Jason Merrill <jason@redhat.com>
27693
27694 PR c++/61623
27695 * symtab.c (symtab_remove_from_same_comdat_group): Also
27696 set_comdat_group to NULL_TREE.
27697 (verify_symtab): Fix diagnostic.
27698
27699 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
27700
27701 PR target/61662
27702 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
27703
27704 2014-07-16 Dodji Seketeli <dodji@redhat.com>
27705
27706 Support location tracking for built-in macro tokens
27707 * input.h (is_location_from_builtin_token): New function declaration.
27708 * input.c (is_location_from_builtin_token): New function definition.
27709 * toplev.c (general_init): Tell libcpp what the pre-defined
27710 spelling location for built-in tokens is.
27711
27712 2014-07-16 Jakub Jelinek <jakub@redhat.com>
27713
27714 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
27715 on the FUNCTION_DECL.
27716
27717 2014-07-16 Richard Biener <rguenther@suse.de>
27718
27719 PR other/61782
27720 * doc/extend.texi (always_inline): Clarify.
27721
27722 2014-07-15 Eric Christopher <echristo@gmail.com>
27723
27724 * doc/invoke.texi (Link Options): Document -z option.
27725
27726 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
27727
27728 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
27729 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
27730
27731 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
27732
27733 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
27734
27735 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
27736
27737 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
27738 varpool_assemble_decl.
27739 * varpool.c (varpool_assemble_decl): Assert that node->definition is
27740 true.
27741
27742 2014-07-15 Michael Matz <matz@suse.de>
27743
27744 PR rtl-optimization/61772
27745 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
27746
27747 2014-07-15 Richard Biener <rguenther@suse.de>
27748
27749 * opts.c (default_options_table): Disable bit-ccp at -Og.
27750
27751 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
27752
27753 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
27754
27755 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
27756
27757 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
27758 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
27759 call langhook for unknown declaration.
27760 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
27761 * tree.h (DECL_ARGUMENTS): Update.
27762 * print-tree.c (print_node): Update.
27763 * tree-core.h (tree_decl_non_common): Remove arguments.
27764 (tree_function_decl): Add arguments.
27765
27766 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
27767
27768 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
27769
27770 2014-07-14 Richard Biener <rguenther@suse.de>
27771
27772 PR tree-optimization/61779
27773 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
27774 simplifying a condition.
27775
27776 2014-07-14 Richard Biener <rguenther@suse.de>
27777
27778 * builtins.c (c_strlen): Make only_value == 2 really only
27779 affect warning generation.
27780
27781 2014-07-14 Richard Biener <rguenther@suse.de>
27782
27783 PR tree-optimization/61757
27784 PR tree-optimization/61783
27785 PR tree-optimization/61787
27786 * tree-ssa-dom.c (record_equality): Revert canonicalization
27787 change and add comment.
27788 (propagate_rhs_into_lhs): Revert previous fix, removing
27789 loop depth restriction again.
27790
27791 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27792
27793 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
27794 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
27795 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
27796 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
27797 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
27798 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
27799 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
27800
27801 2014-07-14 Richard Biener <rguenther@suse.de>
27802
27803 * cgraph.h (decl_in_symtab_p): Make inline.
27804
27805 2014-07-14 Jakub Jelinek <jakub@redhat.com>
27806
27807 PR middle-end/61294
27808 * doc/invoke.texi (-Wmemset-transposed-args): Document.
27809
27810 PR target/61656
27811 * config/i386/i386.c (classify_argument): Don't merge classes above
27812 number of words.
27813
27814 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
27815
27816 * cgraph.h (symtab_node): Add nonzero_address.
27817 (decl_in_symtab_p): Break out from ...
27818 (symtab_get_node): ... here.
27819 * fold-const.c: Include cgraph.h
27820 (tree_single_nonzero_warnv_p): Use symtab to determine
27821 if symbol is non-zero.
27822 * symtab.c (symtab_node::nonzero_address): New method.
27823
27824 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
27825
27826 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
27827 forgotten in previous commit.
27828
27829 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
27830
27831 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
27832 on builtin types.
27833 * ipa-devirt.c: Include stor-layout.h and intl.h
27834 (odr_subtypes_equivalent_p): New function.
27835 (warn_odr): New function.
27836 (warn_type_mismatch): New function.
27837 (odr_types_equivalent_p): New function.
27838 (add_type_duplicate): Use it.
27839 * common.opt (Wodr): New flag.
27840 * doc/invoke.texi (Wodr): Document new warning.
27841
27842 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
27843
27844 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
27845 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
27846 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
27847 (varpool_get_constructor): Push CTORS_IN timevar.
27848 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
27849
27850 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
27851
27852 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
27853 Remove VOID_FTYPE_PUSHORT.
27854 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
27855 Change code to USHORT_FTYPE_VOID.
27856 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
27857 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
27858 (ix86_atomic_assign_expand_fenv): Update for
27859 __builtin_ia32_fnstsw changes.
27860 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
27861 (fnstsw): Change operand 0 to nonimmediate operand.
27862
27863 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
27864
27865 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
27866 (varpool_get_constructor): New function.
27867 (varpool_ctor_useable_for_folding_p): Break out from ...
27868 (ctor_for_folding): ... here; use varpool_get_constructor.
27869 (varpool_assemble_decl): Likewise.
27870 * lto-streamer.h (struct output_block): Turn cgraph_node
27871 to symbol filed.
27872 (lto_input_variable_constructor): Declare.
27873 * ipa-visibility.c (function_and_variable_visibility): Use
27874 varpool_get_constructor.
27875 * cgraph.h (varpool_get_constructor): Declare.
27876 (varpool_ctor_useable_for_folding_p): New function.
27877 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
27878 parameter; return error_mark_node for non-trivial constructors.
27879 (lto_write_tree_1, DFS_write_tree): Update use of
27880 get_symbol_initial_value.
27881 (output_function): Update initialization of symbol.
27882 (output_constructor): New function.
27883 (copy_function): Rename to ..
27884 (copy_function_or_variable): ... this one; handle vars too.
27885 (lto_output): Output variable sections.
27886 * lto-streamer-in.c (input_constructor): New function.
27887 (lto_read_body): Rename from ...
27888 (lto_read_body_or_constructor): ... this one; handle vars too.
27889 (lto_input_variable_constructor): New function.
27890 * ipa-prop.c (ipa_prop_write_jump_functions,
27891 ipa_prop_write_all_agg_replacement): Update.
27892 * lto-cgraph.c (compute_ltrans_boundary): Use it.
27893 (output_cgraph_opt_summary): Set symbol to NULL.
27894
27895 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
27896
27897 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
27898 non-polymorphic types.
27899 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
27900 * ipa-devirt.c (types_same_for_odr): Do not explode when one
27901 of types is not polymorphic.
27902
27903 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
27904
27905 * lra-constraints.c (remove_inheritance_pseudos): Process
27906 destination pseudo too.
27907
27908 2014-07-11 Rong Xu <xur@google.com>
27909
27910 * gcov-tool.c (gcov_output_files): Fix build error introduced in
27911 commit r212448.
27912
27913 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
27914
27915 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
27916 * config/avr/avr-devices.c (AVR_MCU): Same.
27917 (avr_mcu_types): add text start value to end of device list.
27918 * config/avr/avr-mcus.def: Add text section start for all devices.
27919 (ata5782): Add new avr5 device.
27920 (ata5831): Same.
27921 * config/avr/avr-tables.opt: Regenerate.
27922 * config/avr/avr.h: Add declaration for text section start handler.
27923 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
27924 SPEC functions.
27925 (LINK_SPEC): Include text section start handler to linker spec.
27926 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
27927 pass -Ttext option to linker if the text section start for the device
27928 is not zero.
27929 * config/avr/t-multilib: Regenerate.
27930 * doc/avr-mmcu.texi: Regenerate.
27931
27932 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
27933
27934 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
27935 * config/rs6000/aix52.h (LINK_SPEC): Same.
27936 * config/rs6000/aix53.h (LINK_SPEC): Same.
27937 * config/rs6000/aix61.h (LINK_SPEC): Same.
27938 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
27939
27940 2014-07-11 Roman Gareev <gareevroman@gmail.com>
27941
27942 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
27943 (graphite_verify): New function.
27944 (ivs_params_clear): New function.
27945 (gcc_expression_from_isl_ast_expr_id): New function.
27946 (gcc_expression_from_isl_expr_int): New function.
27947 (binary_op_to_tree): New function.
27948 (ternary_op_to_tree): New function.
27949 (unary_op_to_tree): New function.
27950 (nary_op_to_tree): New function.
27951 (gcc_expression_from_isl_expr_op): New function.
27952 (gcc_expression_from_isl_expression): New function.
27953 (graphite_create_new_loop): New function.
27954 (translate_isl_ast_for_loop): New function.
27955 (get_upper_bound): New function.
27956 (graphite_create_new_loop_guard): New function.
27957 (translate_isl_ast_node_for): New function.
27958 (translate_isl_ast): New function.
27959 (add_parameters_to_ivs_params): New function.
27960 (scop_to_isl_ast): New parameter ip.
27961 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
27962
27963 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
27964
27965 * config/xtensa/predicates.md (call expander): Update for
27966 DECL_SECTION_NAME being string.
27967
27968 2014-07-11 Richard Biener <rguenther@suse.de>
27969
27970 PR middle-end/61473
27971 * builtins.c (fold_builtin_memory_op): Inline memory moves that
27972 can be implemented with a single load followed by a single store.
27973 (c_strlen): Only warn when only_value is not 2.
27974
27975 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
27976
27977 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
27978
27979 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
27980
27981 PR target/61561
27982 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
27983 (*movhi_bytes): Likewise.
27984 (*arm_movqi_insn): Likewise.
27985
27986 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
27987
27988 PR target/56858
27989 * config/alpha/alpha.c: Include tree-pass.h, context.h
27990 and pass_manager.h.
27991 (pass_data_handle_trap_shadows): New pass.
27992 (pass_handle_trap_shadows::gate): New pass gate function.
27993 (make_pass_handle_trap_shadows): New function.
27994 (rest_of_handle_trap_shadows): Ditto.
27995
27996 (alpha_align_insns_1): Rename from alpha_align_insns.
27997 (pass_data_align_insns): New pass.
27998 (pass_align_insns::gate): New pass gate function.
27999 (make_pass_aling_insns): New function.
28000 (rest_of_align_insns): Ditto.
28001 (alpha_align_insns): Ditto.
28002
28003 (alpha_option_override): Declare handle_trap_shadows info
28004 and align_insns_info. Register handle_trap_shadows and align_insns
28005 passes here.
28006 (alpha_reorg): Do not call alpha_trap_shadows and
28007 alpha_align_insn from here.
28008
28009 (alpha_pad_function_end): Do not skip BARRIERs.
28010
28011 2014-07-10 Rong Xu <xur@google.com>
28012
28013 Add gcov-tool: an offline gcda profile processing tool support.
28014 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
28015 (gcov_is_error): Ditto.
28016 (gcov_read_string): Ditto.
28017 (gcov_read_sync): Ditto.
28018 * gcov-io.h: Move counter defines to gcov-counter.def.
28019 * gcov-dump.c (tag_counters): Use gcov-counter.def.
28020 * coverage.c: Ditto.
28021 * gcov-tool.c: Offline gcda profile processing tool.
28022 (unlink_gcda_file): Remove one gcda file.
28023 (unlink_profile_dir): Remove gcda files from the profile path.
28024 (gcov_output_files): Output gcda files to an output dir.
28025 (profile_merge): Merge two profiles in directory.
28026 (print_merge_usage_message): Print merge usage.
28027 (merge_usage): Print merge usage and exit.
28028 (do_merge): Driver for profile merge sub-command.
28029 (profile_rewrite): Rewrite profile.
28030 (print_rewrite_usage_message): Print rewrite usage.
28031 (rewrite_usage): Print rewrite usage and exit.
28032 (do_rewrite): Driver for profile rewrite sub-command.
28033 (print_usage): Print gcov-info usage and exit.
28034 (print_version): Print gcov-info version.
28035 (process_args): Process arguments.
28036 (main): Main routine for gcov-tool.
28037 * Makefile.in: Build and install gcov-tool.
28038 * gcov-counter.def: New file split from gcov-io.h.
28039 * doc/gcc.texi: Include gcov-tool.texi.
28040 * doc/gcov-tool.texi: Document for gcov-tool.
28041
28042 2014-07-10 Richard Biener <rguenther@suse.de>
28043
28044 PR tree-optimization/61757
28045 * tree-ssa-dom.c (loop_depth_of_name): Restore.
28046 (propagate_rhs_into_lhs): Revert part of last change.
28047
28048 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
28049
28050 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
28051 FUNCTION_DECLs.
28052
28053 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
28054
28055 PR middle-end/53590
28056 * function.c (allocate_struct_function): Revert r188667 change.
28057
28058 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
28059
28060 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
28061
28062 * doc/install.texi: Remove links to defunct package providers for
28063 Solaris.
28064
28065 2014-07-09 Tom de Vries <tom@codesourcery.com>
28066
28067 * final.c (get_call_fndecl): Declare.
28068 (self_recursive_call_p): New function.
28069 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
28070
28071 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28072
28073 * ipa-devirt.c (record_node): Walk through aliases.
28074
28075 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28076
28077 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
28078
28079 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28080
28081 Revert:
28082 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
28083
28084 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28085
28086 * ipa-visibility.c (function_and_variable_visibility): Remove
28087 temporary hack disabling local aliases on AIX.
28088
28089 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28090
28091 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
28092 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
28093
28094 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28095
28096 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
28097 * rs6000/rs6000.c: Inline output of .set instruction.
28098 (declare_alias_data): New struct.
28099 (rs6000_declare_alias): New function.
28100 (rs6000_xcoff_declare_function_name): Use it.
28101 (rs6000_xcoff_declare_object_name): New function.
28102 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
28103 (ASM_OUTPUT_DEF): Turn to empty definition.
28104
28105 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
28106
28107 PR bootstrap/61679
28108 * hash-table.h: use hash_table::value_type instead of
28109 Descriptor::value_type in the return types of several methods.
28110
28111 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
28112
28113 * tree-pass.h (pass_data): Remove has_execute member.
28114 * passes.c (execute_one_pass): Don't check pass->has_execute.
28115 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
28116 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
28117 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
28118 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
28119 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
28120 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
28121 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
28122 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
28123 gimple-low.c, gimple-ssa-isolate-paths.c,
28124 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
28125 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
28126 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
28127 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
28128 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
28129 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
28130 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
28131 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
28132 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
28133 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
28134 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
28135 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
28136 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
28137 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
28138 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
28139 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
28140 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
28141 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
28142 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
28143 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
28144 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
28145 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
28146 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
28147 web.c: Remove initializer for pass_data::has_execute.
28148
28149 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
28150
28151 * graphite-htab.h: Use hash_map instead of hash_table.
28152 * graphite-clast-to-gimple.c: Adjust.
28153 * passes.c: Use hash_map instead of hash_table.
28154 * sese.c: Likewise.
28155 * sese.h: Remove now unused code.
28156
28157 2014-07-08 Sriraman Tallam <tmsriram@google.com>
28158
28159 PR target/61599
28160 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
28161 than zero.
28162
28163 2014-07-08 Jakub Jelinek <jakub@redhat.com>
28164
28165 PR rtl-optimization/61673
28166 * combine.c (simplify_comparison): Test just mode's sign bit
28167 in tmode rather than the sign bit and any bits above it.
28168
28169 2014-07-08 Roman Gareev <gareevroman@gmail.com>
28170
28171 * graphite-isl-ast-to-gimple.c (generate_isl_context):
28172 Add __isl_give to the declaration.
28173 (generate_isl_schedule): Likewise.
28174 (scop_to_isl_ast): Likewise.
28175
28176 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28177
28178 * config/arm/arm.c (cortexa5_extra_costs): New table.
28179 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
28180
28181 2014-07-08 Jakub Jelinek <jakub@redhat.com>
28182
28183 PR tree-optimization/61725
28184 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
28185 range, use range_includes_zerop_p instead of integer_zerop on
28186 vr0->min, only use log2 of max if min is not negative.
28187
28188 2014-07-08 Richard Biener <rguenther@suse.de>
28189
28190 * tree-ssa-dom.h (loop_depth_of_name): Remove.
28191 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
28192 restriction on loop depth difference.
28193 (record_equality): Likewise.
28194 (propagate_rhs_into_lhs): Likewise. Simplify condition.
28195 (loop_depth_of_name): Remove.
28196 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
28197 restriction on loop depth difference.
28198 (init_copy_prop): Likewise.
28199
28200 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
28201
28202 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
28203 parameter.
28204 (walk_aliased_vdefs): Likewise.
28205 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
28206 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
28207 (detect_type_change_from_memory_writes): Check if entry was reached.
28208
28209 2014-07-08 Richard Biener <rguenther@suse.de>
28210
28211 PR tree-optimization/61681
28212 * tree-ssa-structalias.c (find_what_var_points_to): Expand
28213 NONLOCAL inside ESCAPED.
28214
28215 2014-07-08 Richard Biener <rguenther@suse.de>
28216
28217 PR tree-optimization/61680
28218 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
28219 Handle properly all read-write dependences with group accesses.
28220
28221 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
28222
28223 PR tree-optimization/61576
28224 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
28225 block containing reduction statement is predecessor of phi basi block.
28226
28227 2014-07-08 Marek Polacek <polacek@redhat.com>
28228
28229 PR c/60226
28230 * fold-const.c (round_up_loc): Change the parameter type.
28231 Remove assert.
28232 * fold-const.h (round_up_loc): Adjust declaration.
28233 * stor-layout.c (finalize_record_size): Check for too large types.
28234
28235 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
28236
28237 * symtab.c: Include calls.h.
28238 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
28239
28240 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
28241
28242 * config/rs6000/rs6000.c (output_vec_const_move): Handle
28243 little-endian code generation.
28244 * config/rs6000/spe.md (spe_evmergehi): Rename to...
28245 (vec_perm00_v2si): ... this. Handle little-endian code generation.
28246 (spe_evmergehilo): Rename to...
28247 (vec_perm01_v2si): ... this. Handle little-endian code generation.
28248 (spe_evmergelo): Rename to...
28249 (vec_perm11_v2si): ... this. Handle little-endian code generation.
28250 (spe_evmergelohi): Rename to...
28251 (vec_perm10_v2si): ... this. Handle little-endian code generation.
28252 (spe_evmergehi, spe_evmergehilo): New expanders.
28253 (spe_evmergelo, spe_evmergelohi): Likewise.
28254 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
28255 (*frob_tf_ti): Likewise.
28256 (*frob_<mode>_di_2): Likewise.
28257 (*frob_tf_di_8_2): Likewise.
28258 (*frob_di_<mode>): Likewise.
28259 (*frob_ti_tf): Likewise.
28260 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
28261 (*frob_ti_<mode>_8_2): Likewise.
28262 (*frob_ti_tf_2): Likewise.
28263 (mov_si<mode>_e500_subreg0): Rename to...
28264 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
28265 endianness only.
28266 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
28267 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
28268 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
28269 the big endianness only.
28270 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
28271 (*mov_si<mode>_e500_subreg0_2): Rename to...
28272 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
28273 big big endianness only.
28274 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
28275 (*mov_si<mode>_e500_subreg4): Rename to...
28276 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
28277 endianness only.
28278 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
28279 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
28280 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
28281 the big endianness only.
28282 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
28283 pattern.
28284 (*mov_si<mode>_e500_subreg4_2): Rename to...
28285 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
28286 endianness only.
28287 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
28288 (*mov_sitf_e500_subreg8): Rename to...
28289 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
28290 endianness only.
28291 (*mov_sitf_e500_subreg8_le): New instruction pattern.
28292 (*mov_sitf_e500_subreg8_2): Rename to...
28293 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
28294 endianness only.
28295 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
28296 (*mov_sitf_e500_subreg12): Rename to...
28297 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
28298 endianness only.
28299 (*mov_sitf_e500_subreg12_le): New instruction pattern.
28300 (*mov_sitf_e500_subreg12_2): Rename to...
28301 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
28302 endianness only.
28303 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
28304
28305 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
28306
28307 * asan.c (instrument_strlen_call): Do not instrument first byte
28308 in strlen if already instrumented.
28309
28310 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28311
28312 * config/arm/arm.opt (mwords-little-endian): Delete.
28313 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
28314 of TARGET_LITTLE_WORDS.
28315 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
28316 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
28317 warning.
28318 * doc/invoke.texi: Remove references to -mwords-little-endian.
28319
28320 2014-07-07 Jakub Jelinek <jakub@redhat.com>
28321
28322 * expmed.c (struct init_expmed_rtl): Change all fields but
28323 pow2 and cint from struct rtx_def to rtx.
28324 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
28325 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
28326 at the end again.
28327
28328 2014-07-06 Marek Polacek <polacek@redhat.com>
28329
28330 PR c/6940
28331 * doc/invoke.texi: Document -Wsizeof-array-argument.
28332
28333 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
28334
28335 * wide-int.h (wide_int_storage): Change declaration from struct
28336 to class.
28337
28338 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
28339
28340 * cgraph.c (cgraph_create_indirect_edge): Update call of
28341 get_polymorphic_call_info.
28342 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
28343 (possible_polymorphic_call_targets): Add parameter call.
28344 (decl_maybe_in_construction_p): New predicate.
28345 (get_polymorphic_call_info): Add parameter call;
28346 use decl_maybe_in_construction_p.
28347 * gimple-fold.c (fold_gimple_assign): Update use of
28348 possible_polymorphic_call_targets.
28349 (gimple_fold_call): Likewise.
28350 * ipa-prop.c: Inlcude calls.h
28351 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
28352 (param_type_may_change_p): New predicate.
28353 (detect_type_change_from_memory_writes): Break out from ...
28354 (detect_type_change): ... this one; use param_type_may_change_p.
28355 (detect_type_change_ssa): Use param_type_may_change_p.
28356 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
28357
28358 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
28359
28360 PR target/49423
28361 * config/arm/arm-protos.h (arm_legitimate_address_p,
28362 arm_is_constant_pool_ref): Add prototypes.
28363 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
28364 (arm_is_constant_pool_ref) New function.
28365 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
28366 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
28367 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
28368 operand. Remove pool_range and neg_pool_range attributes.
28369 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
28370 pool_range and neg_pool_range attributes.
28371 * config/arm/constraints.md (Uh): New constraint.
28372 (Uq): Don't allow constant pool references.
28373
28374 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
28375
28376 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
28377 (move_lo_quad_internal_be_<mode>): Likewise.
28378 (move_lo_quad_<mode>): Convert to define_expand.
28379 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
28380 (aarch64_simd_move_hi_quad_be_<mode>): New.
28381 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
28382 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
28383 (aarch64_combinez_be<mode>): New.
28384 (aarch64_combine<mode>): Convert to define_expand.
28385 (aarch64_combine_internal<mode>): New.
28386 (aarch64_simd_combine<mode>): Remove bogus RTL description.
28387
28388 2014-07-04 Tom de Vries <tom@codesourcery.com>
28389
28390 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
28391 combination of earlyclobber and read/write modifiers.
28392
28393 2014-07-04 Tom de Vries <tom@codesourcery.com>
28394
28395 * config/aarch64/aarch64-simd.md
28396 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
28397
28398 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
28399
28400 PR target/61714
28401 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
28402
28403 2014-07-04 Jakub Jelinek <jakub@redhat.com>
28404
28405 PR middle-end/61654
28406 * cgraphunit.c (expand_thunk): Call free_dominance_info.
28407
28408 PR tree-optimization/61684
28409 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
28410 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
28411
28412 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28413 Kito Cheng <kito@0xlab.org>
28414 Monk Chiang <sh.chiang04@gmail.com>
28415
28416 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
28417 (nds32_symbol_load_store_p): Move to ...
28418 (nds32_fp_as_gp_check_available): Move to ...
28419 * config/nds32/nds32-fp-as-gp.c: ... here.
28420 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
28421 extern declaration.
28422
28423 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28424 Kito Cheng <kito@0xlab.org>
28425 Monk Chiang <sh.chiang04@gmail.com>
28426
28427 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
28428 (nds32_expand_store_multiple): Move to ...
28429 (nds32_expand_movmemqi): Move to ...
28430 * config/nds32/nds32-memory-manipulation.c: ... here.
28431
28432 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28433 Kito Cheng <kito@0xlab.org>
28434 Monk Chiang <sh.chiang04@gmail.com>
28435
28436 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
28437 (nds32_output_casesi_pc_relative): Move to ...
28438 (nds32_output_casesi): Move to ...
28439 (nds32_mem_format): Move to ...
28440 (nds32_output_16bit_store): Move to ...
28441 (nds32_output_16bit_load): Move to ...
28442 (nds32_output_32bit_store): Move to ...
28443 (nds32_output_32bit_load): Move to ...
28444 (nds32_output_32bit_load_s): Move to ...
28445 (nds32_output_stack_push): Move to ...
28446 (nds32_output_stack_pop): Move to ...
28447 * config/nds32/nds32-md-auxiliary.c: ... here.
28448
28449 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28450 Ling-Hua Tseng <uranus@tinlans.org>
28451
28452 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
28453 the purpose of this file.
28454
28455 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28456 Kito Cheng <kito@0xlab.org>
28457 Monk Chiang <sh.chiang04@gmail.com>
28458
28459 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
28460 (nds32_address_cost): Move implementation to ...
28461 * config/nds32/nds32-cost.c: ... here.
28462 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
28463 (nds32_address_cost_impl): Declare.
28464
28465 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28466 Kito Cheng <kito@0xlab.org>
28467 Monk Chiang <sh.chiang04@gmail.com>
28468
28469 * config/nds32/nds32.c
28470 (nds32_consecutive_registers_load_store_p): Move to ...
28471 (nds32_valid_multiple_load_store): Move to ...
28472 (nds32_valid_stack_push_pop): Move to ...
28473 (nds32_can_use_bclr_p): Move to ...
28474 (nds32_can_use_bset_p): Move to ...
28475 (nds32_can_use_btgl_p): Move to ...
28476 (nds32_can_use_bitci_p): Move to ...
28477 * config/nds32/nds32-predicates.c: ... here.
28478
28479 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28480 Kito Cheng <kito@0xlab.org>
28481 Monk Chiang <sh.chiang04@gmail.com>
28482
28483 * config/nds32/nds32.c
28484 (nds32_expand_builtin_null_ftype_reg): Move to ...
28485 (nds32_expand_builtin_reg_ftype_imm): Move to ...
28486 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
28487 (nds32_init_builtins): Move implementation to ...
28488 (nds32_expand_builtin): Move implementation to ...
28489 * config/nds32/nds32-intrinsic.c: ... here.
28490 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
28491 (nds32_expand_builtin_impl): Declare.
28492
28493 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28494 Kito Cheng <kito@0xlab.org>
28495 Monk Chiang <sh.chiang04@gmail.com>
28496
28497 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
28498 (nds32_emit_section_tail_template): Move to ...
28499 (nds32_emit_isr_jmptbl_section): Move to ...
28500 (nds32_emit_isr_vector_section): Move to ...
28501 (nds32_emit_isr_reset_conten): Move to ...
28502 (nds32_check_isr_attrs_conflict): Move to ...
28503 (nds32_construct_isr_vectors_information): Move to ...
28504 (nds32_asm_file_start): Move implementation to ...
28505 (nds32_asm_file_end): Move implementation to ...
28506 * config/nds32/nds32-isr.c: ... here.
28507 * config/nds32/nds32-protos.h
28508 (nds32_check_isr_attrs_conflict): Declare.
28509 (nds32_construct_isr_vectors_information): Declare.
28510 (nds32_asm_file_start_for_isr): Declare.
28511 (nds32_asm_file_end_for_isr): Declare.
28512
28513 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
28514 Kito Cheng <kito@0xlab.org>
28515 Monk Chiang <sh.chiang04@gmail.com>
28516
28517 * config.gcc (nds32*): Add new modules to extra_objs.
28518 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
28519 (nds32be-*-*): Likewise.
28520 * config/nds32/nds32-cost.c: New file.
28521 * config/nds32/nds32-fp-as-gp.c: New file.
28522 * config/nds32/nds32-intrinsic.c: New file.
28523 * config/nds32/nds32-isr.c: New file.
28524 * config/nds32/nds32-md-auxiliary.c: New file.
28525 * config/nds32/nds32-memory-manipulation.c: New file.
28526 * config/nds32/nds32-pipelines-auxiliary.c: New file.
28527 * config/nds32/nds32-predicates.c: New file.
28528 * config/nds32/t-nds32: New file.
28529
28530 2014-07-03 Jakub Jelinek <jakub@redhat.com>
28531
28532 PR tree-optimization/61682
28533 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
28534 using cases and when one of the operands is equal to 1.
28535
28536 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
28537
28538 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
28539 ashr<mode>3): Correct mode of operands[2].
28540 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
28541 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
28542 Correct mode of operands[2]. Fix split condition.
28543
28544 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
28545
28546 * arm.md (arch): Add armv6_or_vfpv3.
28547 (arch_enabled): Add test for the above.
28548 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
28549 on VFP9.
28550 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
28551
28552 2014-07-03 Jakub Jelinek <jakub@redhat.com>
28553
28554 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
28555 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
28556 HWI 1 and negate the unsigned value.
28557 * expmed.c (expand_sdiv_pow2): For modes wider than word always
28558 use AND instead of shift.
28559 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
28560
28561 2014-07-03 Marek Polacek <polacek@redhat.com>
28562
28563 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
28564 (-fsanitize=float-divide-by-zero): Move to the table with
28565 -fsanitize=undefined suboptions.
28566 (-fsanitize=float-cast-overflow): Likewise.
28567
28568 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
28569
28570 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
28571 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
28572 endianness.
28573
28574 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28575
28576 * loop-invariant.c (struct invariant): Add a new member: eqno;
28577 (find_identical_invariants): Update eqno;
28578 (create_new_invariant): Init eqno;
28579 (get_inv_cost): Compute comp_cost with eqno;
28580
28581 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
28582
28583 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
28584 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
28585 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
28586 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
28587 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
28588
28589 2014-07-02 Christian Bruel <christian.bruel@st.com>
28590
28591 PR target/29349
28592 PR target/53513
28593 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
28594 (make_preds_opaque): Delete.
28595 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
28596 (commit_mode_sets): New function.
28597 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
28598 Process all modes at once.
28599 * basic-block.h (pre_edge_lcm_avs): Declare.
28600 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
28601 Call clear_aux_for_edges. Fix comments.
28602 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
28603 (pre_edge_rev_lcm): Idem.
28604 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
28605 parameter.
28606 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
28607 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
28608 Idem.
28609 * config/i386/i386.c (x96_emit_mode_set): Idem.
28610 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
28611 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
28612 (fpscr_toggle) Disallow from delay slot.
28613 * target.def (emit_mode_set): Add prev_mode parameter.
28614 * doc/tm.texi: Regenerate.
28615
28616 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28617
28618 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
28619 variable i.
28620
28621 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
28622
28623 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
28624 vtable_pointer_value_to_vtable): Constify.
28625 (contains_polymorphic_type_p): Declare.
28626 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
28627 vtable_pointer_value_to_vtable): Constify.
28628 (contains_polymorphic_type_p): New predicate.
28629 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
28630 polymorphic types.
28631 (ipa_set_ancestor_jf): Likewise.
28632 (detect_type_change): Return false in easy cases.
28633 (compute_complex_assign_jump_func): Require type to contain
28634 polymorphic type.
28635 (compute_known_type_jump_func): Likewise.
28636
28637 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
28638
28639 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
28640 Remove.
28641 (type_in_anonymous_namespace_p): Constify argument.
28642 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
28643 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
28644 (main_odr_variant): New function.
28645 (hash_type_name): Make static; update assert; do not ICE on
28646 non-records.
28647 (types_same_for_odr): Bring here from tree.c; simplify and remove
28648 old structural comparing code that doesn't work for templates.
28649 (odr_hasher::equal): Update assert.
28650 (add_type_duplicate): Return true when bases should be computed;
28651 replace incomplete loader by complete; do not output duplicated
28652 warnings; do not ICE on non-records; set odr_violated flag.
28653 (get_odr_type): Be ready to replace incomplete type by complete
28654 one; work on ODR variants instead of main variants; reorder item
28655 in array so bases have still smaller indexes.
28656 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
28657 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
28658
28659 2014-07-01 Cary Coutant <ccoutant@google.com>
28660
28661 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
28662 lookup.
28663 (resolve_addr_in_expr): When replacing the rtx in a location list
28664 entry, get a new address table entry.
28665 (dwarf2out_finish): Call index_location_lists even if there are no
28666 addr_index_table entries yet.
28667
28668 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
28669
28670 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
28671 change for not being obvious.
28672
28673 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
28674
28675 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
28676 unused argument.
28677
28678 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28679
28680 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
28681 (vcagt_f64): Likewise.
28682 (vcale_f64): Likewise.
28683 (vcaled_f64): Likewise.
28684 (vcales_f32): Likewise.
28685 (vcalt_f64): Likewise.
28686 (vcaltd_f64): Likewise.
28687 (vcalts_f32): Likewise.
28688
28689 2014-07-01 Marek Polacek <polacek@redhat.com>
28690
28691 * doc/invoke.texi: Document -Wint-conversion.
28692
28693 2014-07-01 Marek Polacek <polacek@redhat.com>
28694
28695 PR c/58286
28696 * doc/invoke.texi: Document -Wincompatible-pointer-types.
28697
28698 2014-07-01 Martin Liska <mliska@suse.cz>
28699
28700 IPA REF alias refactoring
28701 * cgraph.h (iterate_direct_aliases): New function.
28702 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
28703 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
28704 FOR_EACH_ALIAS added.
28705 (cgraph_for_node_and_aliases): Likewise.
28706 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
28707 * ipa-inline.c (reset_edge_caches): Likewise.
28708 (update_caller_keys): Likewise.
28709 * trans-mem.c (ipa_tm_execute): Likewise.
28710 *varpool.c (varpool_analyze_node): Likewise.
28711 (varpool_for_node_and_aliases): Likewise.
28712 * ipa-ref.h (first_alias): New function.
28713 (last_alias): Likewise.
28714 (has_aliases_p): Likewise.
28715 * ipa-ref.c (ipa_ref::remove_reference): Removal function
28716 is sensitive to IPA_REF_ALIASes.
28717 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
28718 are put at the beginning of the list.
28719 (symtab_node::iterate_direct_aliases): New function.
28720
28721 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28722
28723 Revert:
28724 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
28725 type is complete.
28726 (write_ts_type_common_tree_pointers): Do not stream fields not set
28727 for incomplete types; do not stream duplicated fields for variants;
28728 sanity check that variant and type match.
28729 (write_ts_type_non_common_tree_pointers): Likewise.
28730 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
28731 TYPE_SIZE whether type is complete.
28732 (lto_input_ts_type_common_tree_pointers): Do same changes as in
28733 write_ts_type_common_tree_pointers
28734 (lto_input_ts_type_non_common_tree_pointers): Likewise.
28735
28736 2014-06-30 Joseph Myers <joseph@codesourcery.com>
28737
28738 * var-tracking.c (add_stores): Return instead of asserting if old
28739 and new values for conditional store are the same.
28740
28741 2014-06-30 Richard Henderson <rth@redhat.com>
28742
28743 PR rtl-opt/61608
28744 PR target/39284
28745 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
28746 the cfg if there were any changes.
28747 * passes.def: Revert move of peephole2 after reorder_blocks;
28748 move duplicate_computed_gotos before peephole2.
28749
28750 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
28751
28752 * except.c (emit_note_eh_region_end): New helper function.
28753 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
28754 emit EH_REGION_END note.
28755 * jump.c (cleanup_barriers): Do not split a call and its
28756 corresponding CALL_ARG_LOCATION note.
28757
28758 2014-06-30 Jeff Law <law@redhat.com>
28759
28760 PR tree-optimization/61607
28761 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
28762 deeper into the SSA_NAME_VALUE chain.
28763
28764 2014-06-30 Marek Polacek <polacek@redhat.com>
28765
28766 * convert.c (convert_to_integer): Don't instrument conversions if the
28767 function has no_sanitize_undefined attribute.
28768 * ubsan.c: Don't run the ubsan pass if the function has
28769 no_sanitize_undefined attribute.
28770
28771 2014-06-30 Jakub Jelinek <jakub@redhat.com>
28772
28773 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
28774 -fsanitize=undefined suboptions.
28775
28776 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
28777
28778 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
28779 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
28780 against bigendian and adjust indices.
28781
28782 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
28783
28784 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
28785
28786 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
28787
28788 PR target/61633
28789 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
28790 Add alternative; make early clobber. Adjust both split patterns
28791 to use operand 0 as the working register.
28792
28793 2014-06-30 Jakub Jelinek <jakub@redhat.com>
28794
28795 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
28796 as ira_object_id_map might be NULL, or 1.
28797
28798 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28799
28800 * loop-invariant.c (get_inv_cost): Handle register class.
28801 (gain_for_invariant): Check the register pressure of the inv
28802 and its overlapped register class, other than all.
28803
28804 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
28805
28806 * doc/invoke.texi (Optimize Options): Fix descriptions of
28807 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
28808
28809 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
28810
28811 * doc/extend.texi (Function Attributes): Update 'naked' attribute
28812 documentation.
28813
28814 2014-06-29 Tobias Grosser <tobias@grosser.es>
28815
28816 PR bootstrap/61650
28817 * graphite-isl-ast-to-gimple.c: Add missing guards.
28818
28819 2014-06-29 Roman Gareev <gareevroman@gmail.com>
28820
28821 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
28822 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
28823 * flag-types.h: Add new enum fgraphite_generator.
28824 * graphite-isl-ast-to-gimple.c: New.
28825 * graphite-isl-ast-to-gimple.h: New.
28826 * graphite.c (graphite_transform_loops): Add choice of Graphite
28827 code generator, which depends on flag_graphite_code_gen.
28828
28829 2014-06-29 Roman Gareev <gareevroman@gmail.com>
28830
28831 * graphite-dependences.c (subtract_commutative_associative_deps):
28832 Add NULL checking of the following variables: must_raw_no_source,
28833 may_raw_no_source, must_war_no_source, may_war_no_source,
28834 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
28835 must_war, may_war, must_waw, may_waw.
28836
28837 2014-06-29 Roman Gareev <gareevroman@gmail.com>
28838
28839 * graphite-clast-to-gimple.c: gloog is renamed to
28840 graphite_regenerate_ast_cloog. gloog_error is renamed to
28841 graphite_regenerate_error.
28842 * graphite-clast-to-gimple.h: The definition of the struct
28843 bb_pbb_def is moved to graphite-htab.h.
28844 Add inclusion of the hash-table.h.
28845 * graphite-htab.h: The declaration of the function gloog is moved
28846 to graphite-clast-to-gimple.h and renamed to
28847 graphite_regenerate_ast_cloog.
28848 * graphite.c (graphite_transform_loops): gloog is renamed
28849 to graphite_regenerate_ast_cloog.
28850
28851 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28852
28853 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
28854 type is complete.
28855 (write_ts_type_common_tree_pointers): Do not stream fields not set
28856 for incomplete types; do not stream duplicated fields for variants;
28857 sanity check that variant and type match.
28858 (write_ts_type_non_common_tree_pointers): Likewise.
28859 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
28860 TYPE_SIZE whether type is complete.
28861 (lto_input_ts_type_common_tree_pointers): Do same changes as in
28862 write_ts_type_common_tree_pointers
28863 (lto_input_ts_type_non_common_tree_pointers): Likewise.
28864
28865 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28866
28867 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
28868
28869 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28870
28871 * tree-inline.c (remap_type_1): Do not duplicate fields
28872 that are shared in between type and its main variant.
28873
28874 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28875
28876 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
28877 of the type.
28878 (ipa_set_ancestor_jf) Likewise.
28879 (check_stmt_for_type_change): Check that we work on main variant.
28880 (detect_type_change): Look into main variant.
28881 (compute_known_type_jump_func): Check that main variant has BINFO.
28882
28883 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28884
28885 * ipa-devirt.c (set_type_binfo): New function.
28886 (add_type_duplicate): Use it.
28887 (get_odr_type): Sanity check that binfos points to main variants.
28888 (get_class_context): Be sure the context's outer_type is main variant.
28889 (contains_type_p): Walk main variant.
28890 (get_polymorphic_call_info_for_decl): Set outer_type to be
28891 main variant.
28892 (get_polymorphic_call_info): Likewise.
28893 (possible_polymorphic_call_targets): Sanity check that we operate
28894 on main variant.
28895
28896 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
28897
28898 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
28899
28900 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28901
28902 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
28903 accidental change due to wide-int branch merge.
28904
28905 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28906
28907 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
28908 compressed debug support.
28909 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
28910 * configure: Regenerate.
28911 * config.in: Regenerate.
28912 * common.opt (compressed_debug_sections): New enum.
28913 (gz, gz=): New options.
28914 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
28915 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
28916 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
28917 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
28918 LINK_COMPRESS_DEBUG_SPEC.
28919 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
28920 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
28921 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
28922 (Debugging Options): Document -gz[=type].
28923
28924 2014-06-27 Martin Jambor <mjambor@suse.cz>
28925
28926 PR ipa/61160
28927 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
28928 args_to_skip, use those from node instead. Copy args_to_skip and
28929 combined_args_to_skip from node to the new thunk.
28930 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
28931 (cgraph_create_virtual_clone): Moved computation of
28932 combined_args_to_skip...
28933 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
28934
28935 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
28936
28937 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
28938 redundant diagnostic machinary.
28939
28940 2014-06-27 Richard Biener <rguenther@suse.de>
28941
28942 * tree-ssa-math-opts.c (bswap_replace): Fix
28943 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
28944
28945 2014-06-27 Martin Liska <mliska@suse.cz>
28946
28947 * gimple.h (gimple_location_safe): New function introduced.
28948 * cgraphunit.c (walk_polymorphic_call_targets): Usage
28949 of gimple_location_safe replaces gimple_location.
28950 (gimple_fold_call): Likewise.
28951 * ipa-devirt.c (ipa_devirt): Likewise.
28952 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
28953 * ipa.c (walk_polymorphic_call_targets): Likewise.
28954 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
28955
28956 2014-06-27 Jakub Jelinek <jakub@redhat.com>
28957
28958 PR tree-optimization/57233
28959 PR tree-optimization/61299
28960 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
28961 functions.
28962 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
28963 would be lowered to scalar shifts, check if corresponding
28964 shifts and vector BIT_IOR_EXPR are supported and don't lower
28965 or lower just to narrower vector type in that case.
28966 * expmed.c (expand_shift_1): Fix up handling of vector
28967 shifts and rotates.
28968
28969 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
28970
28971 PR target/61586
28972 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
28973
28974 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
28975
28976 * doc/invoke.texi (-fsemantic-interposition): Document.
28977 * common.opt (fsemantic-interposition): New flag.
28978 * varasm.c (decl_replaceable_p): Use it.
28979
28980 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28981
28982 PR target/61542
28983 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
28984 extraction other than index 3.
28985
28986 2014-06-26 Teresa Johnson <tejohnson@google.com>
28987
28988 * doc/invoke.texi: Fix typo.
28989 * dumpfile.c: Add support for documented -fdump-* options
28990 optimized/missed/note/optall.
28991
28992 2014-06-26 Martin Jambor <mjambor@suse.cz>
28993
28994 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
28995 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
28996 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
28997 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
28998 * opts.c (default_options_optimization): Set
28999 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
29000 * doc/invoke.texi (allow-load-data-races)
29001 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
29002 (allow-store-data-races): Document the new default.
29003
29004 2014-06-26 Martin Jambor <mjambor@suse.cz>
29005
29006 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
29007 renamed to ipa_impossible_devirt_target. Fix typo.
29008 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
29009 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
29010 ipa_impossible_devirt_target.
29011
29012 2014-06-26 Richard Biener <rguenther@suse.de>
29013
29014 PR tree-optimization/61607
29015 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
29016 explaining why we restrict copies on loop depth.
29017 * tree-ssa-dom.c (cprop_operand): Remove restriction on
29018 on loop depth.
29019 (record_equivalences_from_phis): Instead add it here.
29020
29021 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
29022
29023 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
29024 (LTO_WRAPPER_OBJS): New variable.
29025 (lto-wrapper$(exeext)): Use it.
29026 * collect2.c: Include "collect-utils.h".
29027 (verbose, debug): Remove variables.
29028 (at_file_supplied): No longer static.
29029 (tool_name): New variable.
29030 (do_wait, fork_execute, maybe_unlink): Don't declare.
29031 (tool_cleanup): No longer static.
29032 (notice): Remove function.
29033 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
29034 fork_execute calls.
29035 (collect_wait, do_wait, collect_execute): Remove functions.
29036 (maybe_unlink): No longer static.
29037 * collect2.h (verbose, debug): Don't declare.
29038 (at_file_supplied): Declare.
29039 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
29040 changed.
29041 (collect_execute): Replace with implementation from collect2, plus a
29042 new arg use_atfile. All callers changed.
29043 (collect_wait): Replace with implementation from collect2.
29044 (maybe_unlink_file): Remove function.
29045 (fork_execute): Replace with implementation from collect2, plus a
29046 new arg use_atfile. All callers changed.
29047 (do_wait): Add call to utils_cleanup to the error path.
29048 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
29049 (tool_cleanup): Adjust declarations.
29050 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
29051 * tlink.c: Include "collect-utils.h".
29052 (tlink_execute): New arg use_atfile. All callers changed.
29053 (tlink_init, tlink_execute): Remove declarations.
29054
29055 * collect-utils.c (save_temps): New variable.
29056 (do_wait): Use it instead of debug. Use fatal_error.
29057 * collect-utils.h (save_temps): Declare.
29058 * collect2.c (verbose): Rename from vflag. All uses changed.
29059 (tool_cleanup): New function, copied from collect_atexit.
29060 (collect_atexit, handler): Just call it.
29061 * collect2.h (verbose): Declaration renamed from vflag.
29062 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
29063 debug.
29064
29065 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
29066 (lto-wrapper$(exeext)): Link with collect-utils.o.
29067 * collect-utils.c: New file.
29068 * collect-utils.h: New file.
29069 * lto-wrapper.c: Include "collect-utils.h".
29070 (args_name): Delete variable.
29071 (tool_name): New variable.
29072 (tool_cleanup): New function.
29073 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
29074 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
29075 (fork_execute): Remove functions.
29076
29077 2014-06-26 Nick Clifton <nickc@redhat.com>
29078
29079 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
29080
29081 * doc/extend.texi (Function Attributes): Fix typo in description
29082 of RX vector attribute.
29083
29084 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
29085
29086 * config.gcc (supported_defaults): Error when passing either
29087 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
29088
29089 2014-06-26 Richard Biener <rguenther@suse.de>
29090
29091 * tree-ssa-dom.c (cprop_operand): Remove restriction on
29092 propagating volatile pointers.
29093
29094 2014-06-26 Richard Biener <rguenther@suse.de>
29095
29096 PR tree-optimization/61607
29097 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
29098 loop if we redirected its latch edge.
29099 (thread_block_1): Do not cancel loops prematurely.
29100
29101 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
29102
29103 * toplev.c (backend_init_target): Move init_emit_regs and
29104 init_regs to...
29105 (backend_init) ... here; skip ira_init_once and backend_init_target.
29106 (target_reinit) ... and here; clear
29107 this_target_rtl->lang_dependent_initialized.
29108 (lang_dependent_init_target): Clear
29109 this_target_rtl->lang_dependent_initialized;
29110 break out rtl initialization to ...
29111 (initialize_rtl): ... here; call also backend_init_target
29112 and ira_init_once.
29113 * toplev.h (initialize_rtl): New function.
29114 * function.c: Include toplev.h
29115 (init_function_start): Call initialize_rtl.
29116 * rtl.h (target_rtl): Add target_specific_initialized,
29117 lang_dependent_initialized.
29118
29119 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
29120 Jakub Jelinek <jakub@redhat.com>
29121
29122 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
29123
29124 2014-06-25 Tom de Vries <tom@codesourcery.com>
29125
29126 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
29127
29128 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
29129
29130 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
29131 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
29132 Issue a strict overflow warning if appropriate.
29133
29134 2014-06-25 Martin Liska <mliska@suse.cz>
29135
29136 IPA REF refactoring
29137 * Makefile.in: Removed header file (ipa-ref-inline.h).
29138 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
29139 called.
29140 (cgraph_speculative_call_info): Likewise.
29141 (cgraph_for_node_thunks_and_aliases): Likewise.
29142 (cgraph_for_node_and_aliases): Likewise.
29143 (verify_cgraph_node): Likewise.
29144 * cgraph.h: Batch of IPA REF functions become member functions of
29145 symtab_node: add_reference, maybe_add_reference, clone_references,
29146 clone_referring, clone_reference, find_reference,
29147 remove_stmt_references, remove_all_references,
29148 remove_all_referring, dump_references, dump_referring,
29149 has_alias_p, iterate_reference, iterate_referring.
29150 * cgraphbuild.c (record_reference): New IPA REF function used.
29151 (record_type_list): Likewise.
29152 (record_eh_tables): Likewise.
29153 (mark_address): Likewise.
29154 (mark_load): Likewise.
29155 (mark_store): Likewise.
29156 (pass_build_cgraph_edges): Likewise.
29157 (rebuild_cgraph_edge): Likewise.
29158 (cgraph_rebuild_references): Likewise.
29159 (pass_remove_cgraph_callee_edges): Likewise.
29160 * cgraphclones.c (cgraph_clone_node): Likewise.
29161 (cgraph_create_virtual_clone): Likewise.
29162 (cgraph_materialize_clone): Likewise.
29163 (cgraph_materialize_all_clones): Likewise.
29164 * cgraphunit.c (cgraph_reset_node): Likewise.
29165 (cgraph_reset_node): Likewise.
29166 (analyze_function): Likewise.
29167 (assemble_thunks_and_aliases): Likewise.
29168 (expand_function): Likewise.
29169 * ipa-comdats.c (propagate_comdat_group): Likewise.
29170 (enqueue_references): Likewise.
29171 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
29172 (create_specialized_node): Likewise.
29173 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
29174 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
29175 * ipa-inline.c (reset_edge_caches): Likewise.
29176 (update_caller_keys): Likewise.
29177 (execute): Likewise.
29178 * ipa-prop.c (remove_described_reference): Likewise.
29179 (propagate_controlled_uses): Likewise.
29180 (ipa_edge_duplication_hook): Likewise.
29181 (ipa_modify_call_arguments): Likewise.
29182 * ipa-pure-const.c (propagate_pure_const): Likewise.
29183 * ipa-ref-inline.h: Header file removed, functions moved
29184 to symtab_node class.
29185 * ipa-ref.c (remove_reference): New class member function.
29186 (cannot_lead_to_return): New class member function.
29187 (referring_ref_list): Likewise.
29188 (referred_ref_list): Likewise.
29189 Rest of functions moved to symtab_node class.
29190 * ipa-ref.h: New member functions remove_reference,
29191 cannot_lead_to_return, referring_ref_list, referred_ref_list added
29192 to ipa_ref class.
29193 ipa_ref_list class has new member functions: first_reference,
29194 first_referring, clear, nreferences.
29195 * ipa-reference.c (analyze_function): New IPA REF function used.
29196 (write_node_summary_p): Likewise.
29197 (ipa_reference_write_optimization_summary): Likewise.
29198 * ipa-split.c (split_function): Likewise.
29199 * ipa-utils.c (ipa_reverse_postorder): Likewise.
29200 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
29201 (function_and_variable_visibility): Likewise.
29202 * ipa.c (has_addr_references_p): Likewise.
29203 (process_references): Argument type changed.
29204 (symtab_remove_unreachable_nodes): New IPA REF function used.
29205 (process_references): Likewise.
29206 (set_writeonly_bit): Likewise.
29207 * lto-cgraph.c: Implementation of new symtab_node member functions
29208 that uses new IPA REF functions.
29209 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
29210 function used.
29211 * lto-streamer-out.c (output_symbol_p): Likewise.
29212 * lto-streamer.h (referenced_from_this_partition_p): Argument type
29213 changed.
29214 * symtab.c: Implementation of new IPA REF API.
29215 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
29216 (ipa_tm_create_version): Likewise.
29217 (ipa_tm_execute): Likewise.
29218 * tree-emutls.c (gen_emutls_addr): Likewise.
29219 * tree-inline.c (copy_bb): Likewise.
29220 (delete_unreachable_blocks_update_callgraph): Likewise.
29221 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
29222 (varpool_for_node_and_aliases): Likewise.
29223
29224 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
29225
29226 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
29227
29228 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
29229
29230 PR bootstrap/61598
29231 * fold-const.c (fold_checksum_tree): Use a hash_table of const
29232 tree_node * instead of tree_node *.
29233 (fold): Adjust.
29234 (print_fold_checksum): Likewise.
29235 (fold_check_failed): Likewise.
29236 (debug_fold_checksum): Likewise.
29237 (fold_build1_stat_loc): Likewise.
29238 (fold_build2_stat_loc): Likewise.
29239 (fold_build3_stat_loc): Likewise.
29240 (fold_build_call_array_loc): Likewise.
29241
29242 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
29243
29244 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
29245 implementation with call to...
29246 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
29247 function.
29248 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
29249 Declare.
29250
29251 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
29252
29253 PR tree-optimization/57742
29254 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
29255 after replacing the statement.
29256
29257 2014-06-25 Nick Clifton <nickc@redhat.com>
29258
29259 * config/v850/v850.c (GHS_default_section_names): Change to const
29260 char * type.
29261 (GHS_current_section_names): Likewise.
29262 (v850_insert_attributes): Do not build strings, just assign the
29263 names directly. Change the type of 'chosen_section' to const
29264 char*.
29265 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
29266 directly to the array entry.
29267 * config/v850/v850.h (GHS_default_section_names): Change to const
29268 char * type.
29269 (GHS_current_section_names): Likewise.
29270
29271 2014-06-25 Jakub Jelinek <jakub@redhat.com>
29272
29273 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
29274 (LANG_HOOKS_DECLS): Add it.
29275 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
29276 has correct type.
29277 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
29278 * langhooks.h (struct lang_hooks_for_decls): Add
29279 omp_clause_linear_ctor hook.
29280 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
29281 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
29282 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
29283 combined simd loop use omp_clause_linear_ctor hook.
29284
29285 2014-06-24 Cong Hou <congh@google.com>
29286
29287 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
29288 pattern recognition.
29289 (type_conversion_p): PROMOTION is true if it's a type promotion
29290 conversion, and false otherwise. Return true if the given expression
29291 is a type conversion one.
29292 * tree-vectorizer.h: Adjust the number of patterns.
29293 * tree.def: Add SAD_EXPR.
29294 * optabs.def: Add sad_optab.
29295 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
29296 * expr.c (expand_expr_real_2): Likewise.
29297 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
29298 * gimple.c (get_gimple_rhs_num_ops): Likewise.
29299 * optabs.c (optab_for_tree_code): Likewise.
29300 * tree-cfg.c (estimate_operator_cost): Likewise.
29301 * tree-ssa-operands.c (get_expr_operands): Likewise.
29302 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
29303 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
29304 * doc/generic.texi: Add document for SAD_EXPR.
29305 * doc/md.texi: Add document for ssad and usad.
29306
29307 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
29308
29309 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
29310 qualification in cast.
29311
29312 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
29313
29314 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
29315 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
29316 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
29317 (tree_function_decl): ... here.
29318 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
29319 streaming of vindex to ...
29320 (write_ts_function_decl_tree_pointers): ... here.
29321 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
29322 Do not stream DECL_VINDEX.
29323 (lto_input_ts_function_decl_tree_pointers): Stream it here.
29324
29325 2014-06-24 Catherine Moore <clm@codesourcery.com>
29326 Sandra Loosemore <sandra@codesourcery.com>
29327
29328 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
29329 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
29330 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
29331
29332 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
29333
29334 * doc/invoke.texi (Warning Options): Remove duplicated
29335 -Wmaybe-uninitialized.
29336
29337 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
29338
29339 PR tree-optimization/57742
29340 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
29341 (handle_builtin_malloc, handle_builtin_memset): New functions.
29342 (strlen_optimize_stmt): Call them.
29343 * passes.def: Move strlen after loop+dom but before vrp.
29344
29345 2014-06-24 Jakub Jelinek <jakub@redhat.com>
29346
29347 PR target/61570
29348 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
29349 model family 6 CPU with has_longmode never use a CPU without
29350 64-bit support.
29351
29352 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
29353
29354 PR target/61570
29355 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
29356 the last change.
29357
29358 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
29359
29360 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
29361 * dominance.c (iterate_fix_dominators): Use hash_map instead of
29362 pointer_map.
29363 * hash-map.h: New file.
29364 * ipa-comdats.c: Use hash_map instead of pointer_map.
29365 * ipa.c: Likewise.
29366 * lto-section-out.c: Adjust.
29367 * lto-streamer.h: Replace pointer_map with hash_map.
29368 * symtab.c (verify_symtab): Likewise.
29369 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
29370 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
29371 * tree-streamer.h: Likewise.
29372 * tree-streamer.c: Adjust.
29373 * pointer-set.h: Remove pointer_map.
29374
29375 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
29376
29377 * hash-table.h: Add a template arg to choose between storing values
29378 and storing pointers to values, and then provide partial
29379 specializations for both.
29380 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
29381 should store, not the type values should point to.
29382 * tree-into-ssa.c (var_info_hasher): Likewise.
29383 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
29384 * tree-complex.c: Adjust.
29385 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
29386 table instead of int_tree_map *.
29387 * tree-parloops.c: Adjust.
29388 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
29389 type is being stored.
29390 * tree-vectorizer.c: Adjust.
29391
29392 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
29393
29394 * hash-table.h: Remove a layer of indirection from hash_table so that
29395 it contains the hash table's data instead of a pointer to the data.
29396 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
29397 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
29398 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
29399 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
29400 fold-const.c, gcse.c, ggc-common.c,
29401 gimple-ssa-strength-reduction.c, gimplify.c,
29402 graphite-clast-to-gimple.c, graphite-dependences.c,
29403 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
29404 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
29405 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
29406 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
29407 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
29408 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
29409 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
29410 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
29411 tree-ssa-live.c, tree-ssa-loop-im.c,
29412 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
29413 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
29414 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
29415 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
29416 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
29417 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
29418 vtable-verify.c, vtable-verify.h: Adjust.
29419
29420 2014-06-24 Richard Biener <rguenther@suse.de>
29421
29422 PR tree-optimization/61572
29423 * tree-ssa-sink.c (statement_sink_location): Do not sink
29424 loads from hard registers.
29425
29426 2014-06-24 Jakub Jelinek <jakub@redhat.com>
29427
29428 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
29429 not mentioned in clauses use private clause if the iterator is
29430 declared in #pragma omp for simd, and when adding lastprivate
29431 instead, add it to the outer #pragma omp for too. Diagnose
29432 if the variable is private in outer context. For simd collapse > 1
29433 loops, replace all iterators with temporaries.
29434 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
29435 same even in collapse > 1 loops.
29436
29437 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
29438 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
29439 non-NULL.
29440 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
29441 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
29442 non-NULL.
29443 (gimplify_adjust_omp_clauses): Likewise.
29444 * omp-low.c (lower_rec_simd_input_clauses,
29445 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
29446 safelen the same as safelen(1).
29447 * tree-nested.c (convert_nonlocal_omp_clauses,
29448 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
29449 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
29450 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
29451 Fixup handling of GIMPLE_OMP_TARGET.
29452 (convert_tramp_reference_stmt, convert_gimple_call): Handle
29453 GIMPLE_OMP_TARGET.
29454
29455 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
29456
29457 PR tree-optimization/61554
29458 * tree-ssa-propagate.c: Include "bitmap.h".
29459 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
29460 properly update constructor/destructor.
29461 (substitute_and_fold_dom_walker::before_dom_children):
29462 Remove call to gimple_purge_dead_eh_edges, add bb->index to
29463 need_eh_cleaup instead.
29464 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
29465 need_eh_cleanup.
29466
29467 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
29468
29469 * varpool.c (dump_varpool_node): Dump used_by_single_function.
29470 * tree-pass.h (make_pass_ipa_single_use): New pass.
29471 * cgraph.h (used_by_single_function): New flag.
29472 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
29473 Stream it.
29474 * passes.def (pass_ipa_single_use): Scedule.
29475 * ipa.c (BOTTOM): New macro.
29476 (meet): New function
29477 (propagate_single_user): New function.
29478 (ipa_single_use): New function.
29479 (pass_data_ipa_single_use): New pass.
29480 (pass_ipa_single_use): New pass.
29481 (pass_ipa_single_use::gate): New gate.
29482 (make_pass_ipa_single_use): New function.
29483
29484 2014-06-23 Kai Tietz <ktietz@redhat.com>
29485
29486 PR target/39284
29487 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
29488 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
29489
29490 2014-06-23 Richard Biener <rguenther@suse.de>
29491
29492 * tree-ssa-loop.c (gate_loop): New function.
29493 (pass_tree_loop::gate): Call it.
29494 (pass_data_tree_no_loop, pass_tree_no_loop,
29495 make_pass_tree_no_loop): New.
29496 * tree-vectorizer.c: Include tree-scalar-evolution.c
29497 (pass_slp_vectorize::execute): Initialize loops and SCEV if
29498 required.
29499 (pass_slp_vectorize::clone): New method.
29500 * timevar.def (TV_TREE_NOLOOP): New.
29501 * tree-pass.h (make_pass_tree_no_loop): Declare.
29502 * passes.def (pass_tree_no_loop): New pass group with
29503 SLP vectorizer.
29504
29505 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
29506
29507 PR target/61570
29508 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
29509 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
29510
29511 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
29512
29513 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
29514 "yes" where needed.
29515
29516 2014-06-23 Alan Modra <amodra@gmail.com>
29517
29518 PR bootstrap/61583
29519 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
29520 to zero on debug statements.
29521
29522 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
29523
29524 PR target/60825
29525 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
29526 Ignore third operand if present by marking qualifier_internal.
29527
29528 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
29529
29530 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
29531 vector extension.
29532 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
29533 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
29534 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
29535 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
29536 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
29537 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
29538 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
29539 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
29540 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
29541 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
29542 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
29543 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
29544 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
29545 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
29546 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
29547 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
29548 logic in GCC vector extensions
29549
29550 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
29551 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
29552 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
29553 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
29554 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
29555 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
29556 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
29557 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
29558 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
29559 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
29560
29561 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
29562
29563 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
29564 extensions.
29565
29566 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
29567 (vget_low_s64): Use __GET_LOW macro.
29568 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
29569 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
29570 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
29571 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
29572 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
29573
29574 (vcombine_s64): Use GCC vector extensions; remove cast.
29575 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
29576 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
29577 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
29578 Fix type signature; remove cast.
29579
29580 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
29581
29582 PR target/60825
29583 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
29584 V1DFmode.
29585 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
29586 add V1DFmode
29587 (BUILTIN_VD1): New.
29588 (BUILTIN_VD_RE): Remove.
29589 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
29590 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
29591 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
29592 variant but not df.
29593 (vreinterpretv1df*, vreinterpret*v1df): New.
29594 (vreinterpretdf*, vreinterpret*df): Remove.
29595 * config/aarch64/aarch64-simd.md (aarch64_create,
29596 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
29597 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
29598 (VD1): New.
29599 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
29600 (vcreate_f64): Remove cast, use v1df builtin.
29601 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
29602 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
29603 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
29604 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
29605 vmov_n_f64, vst1_f64): Use gcc vector extensions.
29606 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
29607 add range check using __builtin_aarch64_im_lane_boundsi.
29608 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
29609 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
29610 type signature, use gcc vector extensions.
29611 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
29612 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
29613 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
29614 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
29615 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
29616 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
29617 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
29618 vreinterpret_u64_f64): Use v1df builtin not df.
29619
29620 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
29621
29622 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
29623 vector registers.
29624
29625 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
29626
29627 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
29628 priority directly.
29629
29630 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29631
29632 * loop-invariant.c (pre_check_invariant_p): New function.
29633 (find_invariant_insn): Call pre_check_invariant_p.
29634
29635 2014-06-22 Richard Henderson <rth@redhat.com>
29636
29637 PR target/61565
29638 * compare-elim.c (struct comparison): Add eh_note.
29639 (find_comparison_dom_walker::before_dom_children): Don't eliminate
29640 a redundant comparison in a different EH region. Purge EH edges if
29641 necessary.
29642
29643 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
29644
29645 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
29646 (var_shift): Use it.
29647 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
29648 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
29649 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
29650 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
29651 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
29652 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
29653 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
29654 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
29655 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
29656 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
29657 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
29658 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
29659 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
29660 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
29661 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
29662 *rotldi3_internal15be): Use the new attribute. Merge register and
29663 integer alternatives.
29664
29665 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
29666
29667 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
29668 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
29669 split, *ashrdi3_internal3 and split): Delete, merge into...
29670 (ashr<mode>3): New expander.
29671 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
29672 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
29673
29674 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
29675
29676 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
29677 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
29678 *rotldi3_internal3 and split): Delete, merge into...
29679 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
29680 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
29681 Use "rotlw" extended mnemonic.
29682
29683 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
29684
29685 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
29686 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
29687 and split, *ashldi3_internal3 and split): Delete, merge into...
29688 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
29689 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
29690
29691 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
29692
29693 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
29694 (lshrsi3, two anonymous define_insns and define_splits,
29695 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
29696 *lshrdi3_internal3 and split): Delete, merge into...
29697 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
29698 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
29699
29700 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
29701
29702 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
29703 Remove "O" alternative.
29704
29705 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
29706
29707 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
29708 (mips_move_from_gpr_cost): Likewise.
29709 (mips_register_move_cost): Update accordingly.
29710 (mips_secondary_reload_class): Remove name of in_p.
29711
29712 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
29713
29714 PR target/61503
29715 * config/i386/i386.md (x86_64_shrd, x86_shrd,
29716 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
29717
29718 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29719
29720 * config/nios2/nios2.c: Include "builtins.h".
29721
29722 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
29723
29724 * cgraph.h (tls_model_names): New variable.
29725 * print-tree.c (print_node): Simplify.
29726 * varpool.c (tls_model_names): New variable.
29727 (dump_varpool_node): Output tls model.
29728
29729 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
29730
29731 * ipa-visibility.c (function_and_variable_visibility): Disable
29732 temporarily local aliases for some targets.
29733
29734 2014-06-20 Marek Polacek <polacek@redhat.com>
29735
29736 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
29737 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
29738 into SANITIZE_UNDEFINED.
29739 * doc/invoke.texi: Describe -fsanitize=bounds.
29740 * gimplify.c (gimplify_call_expr): Add gimplification of internal
29741 functions created in the FEs.
29742 * internal-fn.c: Move "internal-fn.h" after "tree.h".
29743 (expand_UBSAN_BOUNDS): New function.
29744 * internal-fn.def (UBSAN_BOUNDS): New internal function.
29745 * internal-fn.h: Don't define internal functions here.
29746 * opts.c (common_handle_option): Add -fsanitize=bounds.
29747 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
29748 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
29749 * tree-core.h: Define internal functions here.
29750 (struct tree_base): Add ifn field.
29751 * tree-pretty-print.c: Include "internal-fn.h".
29752 (dump_generic_node): Handle functions without CALL_EXPR_FN.
29753 * tree.c (get_callee_fndecl): Likewise.
29754 (build_call_expr_internal_loc): New function.
29755 * tree.def (CALL_EXPR): Update description.
29756 * tree.h (CALL_EXPR_IFN): Define.
29757 (build_call_expr_internal_loc): Declare.
29758 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
29759 types.
29760 (ubsan_type_descriptor): Change bool parameter to enum
29761 ubsan_print_style. Adjust the code. Add handling of
29762 UBSAN_PRINT_ARRAY.
29763 (ubsan_expand_bounds_ifn): New function.
29764 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
29765 (ubsan_build_overflow_builtin): Likewise.
29766 (instrument_bool_enum_load): Likewise.
29767 (ubsan_instrument_float_cast): Likewise.
29768 * ubsan.h (enum ubsan_print_style): New enum.
29769 (ubsan_expand_bounds_ifn): Declare.
29770 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
29771
29772 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
29773
29774 * config/rs6000/rs6000.md: Append `DONE' to preparation
29775 statements of `bswap' pattern splitters.
29776
29777 2014-06-20 Tom de Vries <tom@codesourcery.com>
29778
29779 * target.def (call_fusage_contains_non_callee_clobbers): Update
29780 definition.
29781 * doc/tm.texi: Regenerate.
29782
29783 2014-06-20 Yury Gribov <y.gribov@samsung.com>
29784 Max Ostapenko <m.ostapenko@partner.samsung.com>
29785
29786 PR sanitizer/61547
29787 * asan.c (instrument_strlen_call): Fixed instrumentation of
29788 trailing byte.
29789
29790 2014-06-20 Martin Jambor <mjambor@suse.cz>
29791
29792 PR ipa/61540
29793 * ipa-prop.c (impossible_devirt_target): New function.
29794 (try_make_edge_direct_virtual_call): Use it, also instead of
29795 asserting.
29796
29797 2014-06-20 Yury Gribov <y.gribov@samsung.com>
29798 Max Ostapenko <m.ostapenko@partner.samsung.com>
29799
29800 PR sanitizer/61530
29801 * asan.c (build_check_stmt): Add condition.
29802
29803 2014-06-20 Martin Jambor <mjambor@suse.cz>
29804
29805 PR ipa/61211
29806 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
29807 expanded clones.
29808
29809 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29810
29811 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
29812 Update comments.
29813 (VCONQ): Make comment more helpful.
29814 (VCON): Delete.
29815 * config/aarch64/aarch64-simd.md
29816 (aarch64_sqdmulh_lane<mode>):
29817 Use VCOND for operands 2. Update lane checking and flipping logic.
29818 (aarch64_sqrdmulh_lane<mode>): Likewise.
29819 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
29820 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
29821 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
29822 attribute of operand 3 to VCOND.
29823 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
29824 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
29825 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
29826 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
29827 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
29828 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
29829 define_insn.
29830 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
29831 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
29832 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
29833 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
29834 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
29835 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
29836 operand to VCOND. Update lane flipping and bounds checking logic.
29837 (aarch64_sqdmlal2_lane<mode>): Likewise.
29838 (aarch64_sqdmlsl_lane<mode>): Likewise.
29839 (aarch64_sqdmull_lane<mode>): Likewise.
29840 (aarch64_sqdmull2_lane<mode>): Likewise.
29841 (aarch64_sqdmlal_laneq<mode>):
29842 Replace VCON usage with VCONQ.
29843 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
29844 (aarch64_sqdmlal2_laneq<mode>): Emit
29845 aarch64_sqdmlal2_laneq<mode>_internal insn.
29846 Replace VCON with VCONQ.
29847 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
29848 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
29849 (aarch64_sqdmull_laneq<mode>): Emit
29850 aarch64_sqdmull_laneq<mode>_internal insn.
29851 Replace VCON with VCONQ.
29852 (aarch64_sqdmull2_laneq<mode>): Emit
29853 aarch64_sqdmull2_laneq<mode>_internal insn.
29854 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
29855 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
29856 of 3rd argument to int16x4_t.
29857 (vqdmlalh_lane_s16): Likewise.
29858 (vqdmlslh_lane_s16): Likewise.
29859 (vqdmull_high_lane_s16): Likewise.
29860 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
29861 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
29862 (vqdmlsl_lane_s16): Likewise.
29863 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
29864 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
29865 (vqdmlals_lane_s32): Likewise.
29866 (vqdmlsls_lane_s32): Likewise.
29867 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
29868 (vqdmulls_lane_s32): Likewise.
29869 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
29870 (vqdmlsl_lane_s32): Likewise.
29871 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
29872 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
29873 (vqrdmulhh_lane_s16): Likewise.
29874 (vqdmlsl_high_lane_s16): Likewise.
29875 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
29876 (vqdmlsl_high_lane_s32): Likewise.
29877 (vqrdmulhs_lane_s32): Likewise.
29878
29879 2014-06-20 Tom de Vries <tom@codesourcery.com>
29880
29881 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
29882 get_call_reg_set_usage.
29883
29884 2014-06-20 Tom de Vries <tom@codesourcery.com>
29885
29886 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
29887 it contains all call_used_regs.
29888
29889 2014-06-20 Tom de Vries <tom@codesourcery.com>
29890
29891 * final.c (collect_fn_hard_reg_usage): Add and use variable
29892 function_used_regs.
29893
29894 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
29895
29896 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
29897 (set_init_priority, get_init_priority, set_fini_priority,
29898 get_fini_priority): New methods.
29899 * tree.c (init_priority_for_decl): Remove.
29900 (init_ttree): Do not initialize init priority.
29901 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
29902 (decl_priority_info): Remove.
29903 (decl_init_priority_insert): Rewrite.
29904 (decl_fini_priority_insert): Rewrite.
29905 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
29906 tree_priority_map_marked_p): Remove.
29907 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
29908 * lto-streamer-out.c (hash_tree): Do not hash priorities.
29909 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
29910 not output priorities.
29911 (pack_ts_function_decl_value_fields): Likewise.
29912 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
29913 not input priorities.
29914 (unpack_ts_function_decl_value_fields): Likewise.
29915 * symtab.c (symbol_priority_map): Declare.
29916 (init_priority_hash): Declare.
29917 (symtab_unregister_node): Unregister from priority hash, too.
29918 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
29919 New methods.
29920 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
29921 (symbol_priority_info): New function.
29922 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
29923 New methods.
29924 * tree-core.h (tree_priority_map): Remove.
29925
29926 2014-06-20 Jakub Jelinek <jakub@redhat.com>
29927
29928 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
29929 0xff to uint64_t before shifting it up.
29930
29931 2014-06-20 Julian Brown <julian@codesourcery.com>
29932 Chung-Lin Tang <cltang@codesourcery.com>
29933
29934 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
29935 TARGET_THUMB1_ONLY. Add comments.
29936
29937 2014-06-19 Tom de Vries <tom@codesourcery.com>
29938
29939 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
29940 return type to void.
29941 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
29942
29943 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29944
29945 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
29946 as "move", from depends_on.
29947
29948 2014-06-19 Terry Guo <terry.guo@arm.com>
29949
29950 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
29951 stage.
29952
29953 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
29954
29955 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
29956 Remove cr5.
29957 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
29958
29959 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
29960
29961 PR target/61550
29962 * config/sh/sh.c (prepare_move_operands): Don't process TLS
29963 addresses here if reload in progress or completed.
29964
29965 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
29966
29967 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
29968 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
29969 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
29970 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
29971 (mips_register_priority): New function that implements the target
29972 hook TARGET_REGISTER_PRIORITY.
29973 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
29974 (mips_lra_p): Likewise for TARGET_LRA_P.
29975 (TARGET_REGISTER_PRIORITY): Define macro.
29976 (TARGET_SPILL_CLASS): Likewise.
29977 (TARGET_LRA_P): Likewise.
29978 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
29979 classes.
29980 (REG_CLASS_NAMES): Likewise.
29981 (REG_CLASS_CONTENTS): Likewise.
29982 (BASE_REG_CLASS): Use M16_SP_REGS.
29983 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
29984 New set attribute to enable alternatives depending on the register
29985 allocator used.
29986 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
29987 (*lea64): Disable pattern for MIPS16.
29988 * config/mips/mips.opt (mlra): New option.
29989
29990 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
29991
29992 * lra-constraints.c (base_to_reg): New function.
29993 (process_address): Use new function.
29994
29995 2014-06-18 Tom de Vries <tom@codesourcery.com>
29996
29997 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
29998 * config/aarch64/aarch64.c
29999 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
30000 (aarch64_emit_call_insn): New function.
30001 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
30002 of emit_call_insn.
30003 * config/aarch64/aarch64.md (define_expand "call_internal")
30004 (define_expand "call_value_internal", define_expand "sibcall_internal")
30005 (define_expand "sibcall_value_internal"): New.
30006 (define_expand "call", define_expand "call_value")
30007 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
30008 expand variant and aarch64_emit_call_insn.
30009
30010 2014-06-18 Radovan Obradovic <robradovic@mips.com>
30011 Tom de Vries <tom@codesourcery.com>
30012
30013 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
30014 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
30015 Redefine to true.
30016 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
30017 clobbers to CALL_INSN_FUNCTION_USAGE.
30018 (define_expand "sibcall_internal")
30019 (define_expand "sibcall_value_internal"): New.
30020 (define_expand "call", define_expand "call_value"): Add argument to
30021 arm_emit_call_insn.
30022 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
30023 (define_expand "sibcall_value"): Use sibcall_value_internal and
30024 arm_emit_call_insn.
30025
30026 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30027
30028 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
30029
30030 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30031
30032 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
30033 __udivmoddi4.
30034
30035 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30036
30037 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
30038 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
30039 annotations. Fix DWARF information.
30040
30041 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30042
30043 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
30044 __udivmoddi4, and fixups for negative operands.
30045
30046 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30047
30048 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
30049
30050 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30051
30052 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
30053 to __udivmoddi4.
30054
30055 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30056
30057 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
30058 manipulation.
30059
30060 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30061
30062 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
30063 describing register usage on function entry and exit.
30064
30065 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30066
30067 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
30068 (__aeabi_ldivmod): Fix whitespace.
30069
30070 2014-06-18 Andreas Schwab <schwab@suse.de>
30071
30072 * doc/md.texi (Standard Names): Use @itemx for grouped items.
30073 Remove blank line after @item.
30074
30075 2014-06-18 Richard Henderson <rth@redhat.com>
30076
30077 PR target/61545
30078 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
30079
30080 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
30081
30082 * config/arm/arm.c (neon_vector_mem_operand): Allow register
30083 POST_MODIFY for neon loads and stores.
30084 (arm_print_operand): Output post-index register for neon loads and
30085 stores.
30086
30087 2014-06-18 Richard Biener <rguenther@suse.de>
30088
30089 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
30090
30091 2014-06-18 Richard Biener <rguenther@suse.de>
30092
30093 * tree-pass.h (make_pass_dce_loop): Remove.
30094 * passes.def: Replace pass_dce_loop with pass_dce.
30095 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
30096 changed free niter estimates and reset the scev cache.
30097 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
30098 make_pass_dce_loop): Remove.
30099 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
30100 (fini_copy_prop): Return whether something changed. Always
30101 let substitute_and_fold perform DCE and free niter estimates
30102 and reset the scev cache if so.
30103 (execute_copy_prop): If sth changed schedule cleanup-cfg.
30104 (pass_data_copy_prop): Do not unconditionally schedule
30105 cleanup-cfg or update-ssa.
30106
30107 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
30108
30109 PR tree-optimization/61518
30110 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
30111 reduction var is used in reduction stmt or phi-function only.
30112
30113 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30114
30115 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
30116
30117 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
30118
30119 PR tree-optimization/61517
30120 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
30121 whose rhs's first tree is the source expression instead of the
30122 expression itself.
30123 (find_bswap_or_nop): Likewise.
30124 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
30125 gimple stmt whose rhs's first tree is the source. In the memory source
30126 case, move the stmt to be replaced close to one of the original load to
30127 avoid the problem of a store between the load and the stmt's original
30128 location.
30129 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
30130 signature.
30131
30132 2014-06-18 Andreas Schwab <schwab@suse.de>
30133
30134 PR rtl-optimization/54555
30135 * postreload.c (move2add_use_add2_insn): Substitute
30136 STRICT_LOW_PART only if it is cheaper.
30137
30138 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
30139
30140 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
30141 Do not use unspec as call operand. Use memory_operand instead of
30142 memory_nox32_operand and add "m" operand constraint. Disable
30143 pattern for TARGET_X32.
30144 (*sibcall_pop_memory): Ditto.
30145 (*sibcall_value_memory): Ditto.
30146 (*sibcall_value_pop_memory): Ditto.
30147 (sibcall peepholes): Merge SImode and DImode patterns using
30148 W mode iterator. Use memory_operand instead of memory_nox32_operand.
30149 Disable pattern for TARGET_X32. Check if eliminated register is
30150 really dead after call insn. Generate call RTX without unspec operand.
30151 (sibcall_value peepholes): Ditto.
30152 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
30153 instead of memory_nox32_operand. Check if eliminated register is
30154 really dead after call insn. Generate call RTX without unspec operand.
30155 (sibcall_value_pop peepholes): Ditto.
30156 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
30157
30158 2014-06-18 Terry Guo <terry.guo@arm.com>
30159
30160 PR target/61544
30161 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
30162 reach the head.
30163
30164 2014-06-18 Olivier Hainque <hainque@adacore.com>
30165
30166 * tree-core.h (tree_block): Add an "end_locus" field, allowing
30167 memorization of the end of block source location.
30168 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
30169 * gimplify.c (gimplify_bind_expr): Propagate the block start and
30170 end source location info we have on the block entry/exit code we
30171 generate.
30172
30173 2014-06-18 Richard Biener <rguenther@suse.de>
30174
30175 * common.opt (fssa-phiopt): New option.
30176 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
30177 but not with -Og.
30178 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
30179 * doc/invoke.texi (-fssa-phiopt): Document.
30180
30181 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30182
30183 * genattrtab.c (n_bypassed): New variable.
30184 (process_bypasses): Initialise n_bypassed.
30185 Count number of bypassed reservations.
30186 (make_automaton_attrs): Allocate space for bypassed reservations
30187 rather than number of bypasses.
30188
30189 2014-06-18 Richard Biener <rguenther@suse.de>
30190
30191 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
30192 we propagated anything.
30193 (substitute_and_fold_dom_walker::before_dom_children): Something
30194 changed if we propagated into PHI arguments.
30195 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
30196 we removed a stmt.
30197
30198 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
30199
30200 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
30201 vector case.
30202 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
30203 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
30204 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
30205 Introduces alternative way of loads group permutaions.
30206 (vect_transform_grouped_load): Try alternative way of permutations.
30207
30208 2014-06-18 Jakub Jelinek <jakub@redhat.com>
30209
30210 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
30211 changed in ORT_TARGET region, don't jump to do_outer.
30212 (struct gimplify_adjust_omp_clauses_data): New type.
30213 (gimplify_adjust_omp_clauses_1): Adjust for data being
30214 a struct gimplify_adjust_omp_clauses_data pointer instead
30215 of tree *. Pass pre_p as a new argument to
30216 lang_hooks.decls.omp_finish_clause hook.
30217 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
30218 splay_tree_foreach to pass both list_p and pre_p.
30219 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
30220 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
30221 gimplify_adjust_omp_clauses callers.
30222 * langhooks.c (lhd_omp_finish_clause): New function.
30223 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
30224 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
30225 * langhooks.h (struct lang_hooks_for_decls): Add a new
30226 gimple_seq * argument to omp_finish_clause hook.
30227 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
30228 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
30229 (scan_omp_parallel, lower_omp_for): When adding
30230 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
30231 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
30232 * tree-nested.c (convert_nonlocal_omp_clauses,
30233 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
30234 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
30235
30236 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
30237
30238 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
30239 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
30240
30241 2014-06-17 Xinliang David Li <davidxl@google.com>
30242
30243 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
30244 * passes.c (pass_init_dump_file): Do not set initialize
30245 flag to false unconditionally.
30246
30247 2014-06-17 Richard Biener <rguenther@suse.de>
30248
30249 * genopinit.c (main): Use vec<>::qsort method.
30250 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
30251 Likewise.
30252 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
30253
30254 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
30255
30256 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
30257 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
30258 (mips_move_to_gpr_cost): Remove ST_REGS case.
30259 (mips_move_from_gpr_cost): Likewise.
30260 (mips_register_move_cost): Likewise.
30261 (mips_secondary_reload_class): Likewise.
30262
30263 2014-06-17 Richard Biener <rguenther@suse.de>
30264
30265 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
30266 (pass_all_optimizations): Move 3rd copy-prop pass from after
30267 fre to before ifcombine/phiopt.
30268
30269 2014-06-17 Richard Biener <rguenther@suse.de>
30270
30271 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
30272 and allow all blocks to be forwarders.
30273
30274 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
30275
30276 PR target/61483
30277 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
30278 variable 'size'; calculate 'size' right in the front; use
30279 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
30280 pcum->aapcs_stack_words.
30281
30282 2014-06-17 Nick Clifton <nickc@redhat.com>
30283
30284 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
30285 (umulhi3, mulsidi3, umulsidi3): Likewise.
30286
30287 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
30288
30289 PR middle-end/61508
30290 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
30291 check for section name.
30292
30293 2014-06-17 Richard Biener <rguenther@suse.de>
30294
30295 * tree-ssa-propagate.c: Include domwalk.h.
30296 (substitute_and_fold): Outline main worker into a domwalker ...
30297 (substitute_and_fold_dom_walker::before_dom_children): ... here.
30298 Schedule stmts we can fully propagate for removal. Remove
30299 poor-mans DCE.
30300 (substitute_and_fold): Apply a dominator walk to perform
30301 substitution. Process stmts scheduled for removal here.
30302
30303 2014-06-17 Richard Biener <rguenther@suse.de>
30304
30305 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
30306 of PHI node moving.
30307
30308 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
30309
30310 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
30311 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
30312 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
30313 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
30314 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
30315 TARGET_HARD_FLOAT.
30316 (get_fpscr) : Likewise.
30317
30318 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
30319
30320 PR rtl-optimization/61325
30321 * lra-constraints.c (valid_address_p): Add forward declaration.
30322 (simplify_operand_subreg): Check address validity before and after
30323 alter_reg of memory subreg.
30324
30325 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
30326
30327 * config/i386/i386.c (decide_alg): Correctly handle
30328 maximum size of stringop algorithm.
30329
30330 2014-06-16 Yury Gribov <y.gribov@samsung.com>
30331
30332 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
30333
30334 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
30335
30336 PR rtl-optimization/61522
30337 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
30338
30339 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
30340
30341 Revert:
30342 * symtab.c (symtab_node::reset_section): New method.
30343 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
30344 for localization.
30345 * cgraph.h (reset_section): Declare.
30346 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
30347 do not consider comdat locals.
30348 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
30349 for new symbol.
30350 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
30351 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
30352 reset sections of symbols dragged out of the comdats.
30353 (function_and_variable_visibility): Reset sections of
30354 localized symbols.
30355
30356 2014-06-16 Richard Biener <rguenther@suse.de>
30357
30358 PR tree-optimization/61482
30359 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
30360 [-INF(OVF), +INF(OVF)] range.
30361
30362 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
30363
30364 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
30365 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
30366 handling 32-bit multiplication.
30367
30368 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
30369
30370 PR middle-end/61430
30371 * lra-lives.c (process_bb_lives): Skip creating copy during
30372 insn scan when src/dest has constrained to same regno.
30373
30374 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
30375
30376 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
30377 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
30378
30379 2014-06-16 Yury Gribov <y.gribov@samsung.com>
30380
30381 * asan.c (check_func): New function.
30382 (maybe_create_ssa_name): Likewise.
30383 (build_check_stmt_with_calls): Likewise.
30384 (use_calls_p): Likewise.
30385 (report_error_func): Change interface.
30386 (build_check_stmt): Allow non-integer lengths; add support
30387 for new parameter.
30388 (asan_instrument): Likewise.
30389 (instrument_mem_region_access): Moved code to build_check_stmt.
30390 (instrument_derefs): Likewise.
30391 (instrument_strlen_call): Likewise.
30392 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
30393 * doc/invoke.texi: Describe new parameter.
30394 * params.def: Define new parameter.
30395 * params.h: Likewise.
30396 * sanitizer.def: Describe new builtins.
30397
30398 2014-06-16 Richard Biener <rguenther@suse.de>
30399
30400 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30401 Make all defs available at the end.
30402 (eliminate): If we remove a PHI node schedule cfg-cleanup.
30403
30404 2014-06-18 Jakub Jelinek <jakub@redhat.com>
30405
30406 PR plugins/45078
30407 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
30408
30409 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
30410
30411 PR bootstrap/61516
30412 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
30413 initialization. Replace remaining use of uid.
30414
30415 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
30416
30417 * c-family/c-common.c (handle_tls_model_attribute): Use
30418 set_decl_tls_model.
30419 * c-family/c-common.c (handle_tls_model_attribute): Use
30420 set_decl_tls_model.
30421 * cgraph.h (struct varpool_node): Add tls_model.
30422 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
30423 * tree.h (DECL_TLS_MODEL): Update.
30424 (DECL_THREAD_LOCAL_P): Check that variable is static.
30425 (decl_tls_model): Declare.
30426 (set_decl_tls_model): Declare.
30427 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
30428 set symbol prorperties.
30429 (get_emutls_init_templ_addr): Cleanup.
30430 (new_emutls_decl): Update.
30431 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
30432 (lto_input_varpool_node): Likewise.
30433 * lto-streamer-out.c (hash_tree): Likewise.
30434 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
30435 not stream DECL_TLS_MODEL.
30436 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
30437 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
30438
30439 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30440
30441 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
30442
30443 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30444
30445 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
30446 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
30447 lists.
30448 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
30449 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
30450 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
30451 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
30452 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
30453 (df_get_artificial_defs, df_get_artificial_uses)
30454 (df_single_def, df_single_use): Update accordingly.
30455 (df_refs_chain_dump): Take the first element in a linked list as
30456 parameter, rather than a pointer to an array of pointers.
30457 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
30458 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
30459 (df_chain_create_bb_process_use): Likewise.
30460 (df_md_bb_local_compute_process_def): Likewise.
30461 * fwprop.c (process_defs, process_uses): Likewise.
30462 (register_active_defs, update_uses): Likewise.
30463 (forward_propagate_asm): Update for new df_ref linking.
30464 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
30465 (df_null_ref_rec, df_null_mw_rec): Likewise.
30466 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
30467 explicitly.
30468 (df_scan_free_bb_info): Remove check for null artificial_defs.
30469 (df_install_ref_incremental): Adjust for new df_ref linking.
30470 Use a single-element insertion rather than a full sort.
30471 (df_ref_chain_delete_du_chain): Take the first element
30472 in a linked list as parameter, rather than a pointer to an array of
30473 pointers.
30474 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
30475 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
30476 (df_insn_info_delete): Remove check for null defs and call to
30477 df_scan_free_mws_vec.
30478 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
30479 null rather than df_null_*_rec.
30480 (df_insn_rescan_debug_internal): Likewise, and update null
30481 checks in the same way. Remove check for null defs.
30482 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
30483 Move a single element rather doing a full sort.
30484 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
30485 linking.
30486 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
30487 Initialize df_ref and df_mw_hardreg lists to null rather than
30488 df_null_*_rec.
30489 (df_ref_compare): Take df_refs as parameter, transferring the
30490 old interface to...
30491 (df_ref_ptr_compare): ...this new function.
30492 (df_sort_and_compress_refs): Update accordingly.
30493 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
30494 old interface to...
30495 (df_mw_ptr_compare): ...this new function.
30496 (df_sort_and_compress_mws): Update accordingly.
30497 (df_install_refs, df_install_mws): Return a linked list rather than
30498 an array of pointers.
30499 (df_refs_add_to_chains): Assert that old lists are empty rather
30500 than freeing them.
30501 (df_insn_refs_verify): Don't handle null defs speciailly.
30502 * web.c (union_match_dups): Update for new df_ref linking.
30503
30504 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30505
30506 * df.h (df_ref_create, df_ref_remove): Delete.
30507 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
30508 (df_ref_remove): Likewise.
30509
30510 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30511
30512 * df.h (df_single_def, df_single_use): New functions.
30513 * ira.c (find_moveable_pseudos): Use them.
30514
30515 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30516
30517 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
30518 * df-problems.c (df_note_bb_compute): Use it.
30519 * regstat.c (regstat_bb_compute_ri): Likewise.
30520
30521 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30522
30523 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
30524 * cse.c (cse_extended_basic_block): Use them.
30525 * dce.c (mark_artificial_use): Likewise.
30526 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
30527 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
30528 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
30529 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
30530 (df_simulate_initialize_backwards): Likewise.
30531 (df_simulate_finalize_backwards): Likewise.
30532 (df_simulate_initialize_forwards): Likewise.
30533 (df_md_simulate_artificial_defs_at_top): Likewise.
30534 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
30535 * regrename.c (init_rename_info): Likewise.
30536 * regstat.c (regstat_bb_compute_ri): Likewise.
30537 (regstat_bb_compute_calls_crossed): Likewise.
30538
30539 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
30540
30541 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
30542 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
30543 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
30544 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
30545 * combine.c (create_log_links): Likewise.
30546 * compare-elim.c (find_flags_uses_in_insn): Likewise.
30547 (try_eliminate_compare): Likewise.
30548 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
30549 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
30550 (remove_reg_equal_equiv_notes_for_defs): Likewise.
30551 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
30552 (word_dce_process_block, dce_process_block): Likewise.
30553 * ddg.c (def_has_ccmode_p): Likewise.
30554 * df-core.c (df_bb_regno_first_def_find): Likewise.
30555 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
30556 * df-problems.c (df_rd_simulate_one_insn): Likewise.
30557 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
30558 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
30559 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
30560 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
30561 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
30562 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
30563 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
30564 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
30565 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
30566 * fwprop.c (local_ref_killed_between_p): Likewise.
30567 (all_uses_available_at, free_load_extend): Likewise.
30568 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
30569 * hw-doloop.c (scan_loop): Likewise.
30570 * ifcvt.c (dead_or_predicable): Likewise.
30571 * init-regs.c (initialize_uninitialized_regs): Likewise.
30572 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
30573 (process_bb_node_lives): Likewise.
30574 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
30575 (find_moveable_pseudos): Likewise.
30576 * loop-invariant.c (check_dependencies, record_uses): Likewise.
30577 * recog.c (peep2_find_free_register): Likewise.
30578 * ree.c (get_defs): Likewise.
30579 * regstat.c (regstat_bb_compute_ri): Likewise.
30580 (regstat_bb_compute_calls_crossed): Likewise.
30581 * sched-deps.c (find_inc, find_mem): Likewise.
30582 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
30583 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
30584 * shrink-wrap.c (requires_stack_frame_p): Likewise.
30585 (prepare_shrink_wrap): Likewise.
30586 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
30587 * web.c (union_defs, pass_web::execute): Likewise.
30588 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
30589 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
30590
30591 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
30592
30593 * lra-assign.c (assign_by_spills): Add code to assign vector regs
30594 to inheritance pseudos.
30595 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
30596
30597 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
30598
30599 PR target/61415
30600 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
30601 (BU_MISC_2): Rename to ...
30602 (BU_LDBL128_2): ... this.
30603 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
30604 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
30605 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
30606 RS6000_BTM_LDBL128.
30607 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
30608 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
30609 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
30610 (unpacktf_1): Likewise.
30611 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
30612 (__builtin_longdouble_dw1): Likewise.
30613 * doc/sourcebuild.texi (longdouble128): Document.
30614
30615 2014-06-13 Jeff Law <law@redhat.com>
30616
30617 PR rtl-optimization/61094
30618 PR rtl-optimization/61446
30619 * ree.c (combine_reaching_defs): Get the mode for the copy from
30620 the extension insn rather than the defining insn.
30621
30622 2014-06-13 Dehao Chen <dehao@google.com>
30623
30624 * dwarf2out.c (add_linkage_name): Emit more linkage name.
30625
30626 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
30627
30628 * doc/install.texi (--enable-linker-plugin-configure-flags)
30629 (--enable-linker-plugin-flags): Document new flags.
30630
30631 2014-06-13 Martin Jambor <mjambor@suse.cz>
30632
30633 PR ipa/61186
30634 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
30635 cache_token if returning early.
30636
30637 2014-06-13 Nick Clifton <nickc@redhat.com>
30638
30639 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
30640 requested alignment is active.
30641 (LABEL_ALIGN): Likewise.
30642 (LOOP_ALIGN): Likewise.
30643
30644 2014-06-13 Richard Biener <rguenther@suse.de>
30645
30646 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30647 Rewrite to propagate the VN result into all uses where
30648 possible and to remove stmts becoming dead because of that.
30649 (eliminate): Generalize stmt removal handling, remove in
30650 reverse dominator order to support proper debug stmt
30651 generation. Update stmts before removing stmts.
30652 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
30653
30654 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
30655
30656 PR tree-optimization/61375
30657 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
30658 symbolic number cannot be represented in an uint64_t.
30659 (find_bswap_or_nop_1): Likewise.
30660
30661 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
30662
30663 * symtab.c (symtab_node::reset_section): New method.
30664 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
30665 for localization.
30666 * cgraph.h (reset_section): Declare.
30667 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
30668 do not consider comdat locals.
30669 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
30670 for new symbol.
30671 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
30672 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
30673 reset sections of symbols dragged out of the comdats.
30674 (function_and_variable_visibility): Reset sections of
30675 localized symbols.
30676
30677 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
30678
30679 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
30680 to use symtab and decl_binds_to_current_def_p
30681 * tree-vectorizer.c (increase_alignment): Increase alignment
30682 of alias target, too.
30683
30684 2014-06-12 Jakub Jelinek <jakub@redhat.com>
30685
30686 PR middle-end/61486
30687 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
30688 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
30689 if outer combined construct is distribute.
30690 (gimplify_omp_for): For OMP_DISTRIBUTE set
30691 gimplify_omp_ctxp->distribute.
30692 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
30693 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
30694 mapping into decl map.
30695
30696 2014-06-12 Jason Merrill <jason@redhat.com>
30697
30698 * common.opt (fabi-version): Change default to 0.
30699
30700 2014-06-12 Jason Merrill <jason@redhat.com>
30701
30702 * toplev.c (process_options): Reject -fabi-version=1.
30703
30704 2014-06-12 Jeff Law <law@redhat.com>
30705
30706 PR tree-optimization/61009
30707 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
30708 value when we stop processing a block due to problematic PHIs.
30709
30710 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
30711
30712 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
30713 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
30714 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
30715 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
30716 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
30717 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
30718 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
30719 are not in the spec.
30720
30721 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
30722
30723 PR target/59843
30724 * config/aarch64/aarch64-modes.def: Add V1DFmode.
30725 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
30726 Support V1DFmode.
30727
30728 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
30729
30730 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
30731
30732 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
30733
30734 PR target/61443
30735 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
30736 loading from address spaces.
30737
30738 2014-06-12 Martin Liska <mliska@suse.cz>
30739
30740 PR ipa/61462
30741 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
30742 statement is reachable.
30743
30744 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
30745
30746 * symtab.c (section_hash): New hash.
30747 (symtab_unregister_node): Clear section before freeing.
30748 (hash_section_hash_entry): New haser.
30749 (eq_sections): New function.
30750 (symtab_node::set_section_for_node): New method.
30751 (set_section_1): Update.
30752 (symtab_node::set_section): Take string instead of tree as parameter.
30753 (symtab_resolve_alias): Update.
30754 * cgraph.h (section_hash_entry_d): New structure.
30755 (section_hash_entry): New typedef.
30756 (cgraph_node): Change comdat_group_ to x_comdat_group,
30757 change section_ to x_section and turn into section_hash_entry;
30758 update accestors; put set_section_for_node offline.
30759 * tree.c (decl_section_name): Turn into string.
30760 (set_decl_section_name): Change parameter to be string.
30761 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
30762 * sdbout.c (sdbout_one_type): Update.
30763 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
30764 * varasm.c (IN_NAMED_SECTION, get_named_section,
30765 resolve_unique_section, hot_function_section, get_named_text_section,
30766 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
30767 make_decl_rtl, default_unique_section): Update.
30768 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
30769 (c6x_elf_unique_section): Update.
30770 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
30771 * config/pa/pa.c (pa_function_section): Update.
30772 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
30773 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
30774 * config/arc/arc.c (arc_in_small_data_p): Update.
30775 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
30776 * config/mcore/mcore.c (mcore_unique_section): Update.
30777 * config/mips/mips.c (mips16_build_function_stub): Update.
30778 (mips16_build_call_stub): Update.
30779 (mips_function_rodata_section): Update.
30780 (mips_in_small_data_p): Update.
30781 * config/score/score.c (score_in_small_data_p): Update.
30782 * config/rx/rx.c (rx_in_small_data): Update.
30783 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
30784 (rs6000_xcoff_asm_named_section): Update.
30785 (rs6000_xcoff_unique_section): Update.
30786 * config/frv/frv.c (frv_string_begins_with): Update.
30787 (frv_in_small_data_p): Update.
30788 * config/v850/v850.c (v850_encode_data_area): Update.
30789 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
30790 (bfin_handle_l1_data_attribute): Update.
30791 (bfin_handle_l2_attribute): Update.
30792 * config/mep/mep.c (mep_unique_section): Update.
30793 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
30794 Update.
30795 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
30796 (h8300_handle_tiny_data_attribute): Update.
30797 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
30798 (m32r_in_small_data_p): Update.
30799 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
30800 * config/i386/i386.c (ix86_in_large_data_p): Update.
30801 * config/i386/winnt.c (i386_pe_unique_section): Update.
30802 * config/darwin.c (darwin_function_section): Update.
30803 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
30804 * tree-emutls.c (get_emutls_init_templ_addr): Update.
30805 (new_emutls_decl): Update.
30806 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
30807 input_varpool_node): Update.
30808 (ead_string_cst): Turn to ...
30809 (read_string): ... this one.
30810 * dwarf2out.c (secname_for_decl): Update.
30811 * asan.c (asan_protect_global): Update.
30812
30813 2014-06-11 DJ Delorie <dj@redhat.com>
30814
30815 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
30816 cache lines.
30817 * config/rx/rx.c (rx_option_override): Likewise.
30818 (rx_align_for_label): Likewise.
30819
30820 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
30821
30822 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
30823
30824 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
30825 prototype.
30826
30827 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30828
30829 * common.md: New file.
30830 * doc/md.texi: Update description of generic, machine-independent
30831 constraints.
30832 * config/s390/constraints.md (e): Delete.
30833 * Makefile.in (md_file): Include common.md.
30834 * config/m32c/t-m32c (md_file): Likewise.
30835 * genpreds.c (general_mem): New array.
30836 (generic_constraint_letters): Remove constraints now defined by
30837 common.md.
30838 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
30839 Allow the first character to be '<' or '>' as well.
30840 * genoutput.c (general_mem): New array.
30841 (indep_constraints): Remove constraints now defined by common.md.
30842 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
30843 Remove special handling of 'm'.
30844 * ira-costs.c (record_reg_classes): Remove special handling of
30845 constraints now defined by common.md.
30846 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
30847 * ira-lives.c (single_reg_class): Likewise.
30848 (ira_implicitly_set_insn_hard_regs): Likewise.
30849 * lra-constraints.c (reg_class_from_constraints): Likewise.
30850 (process_alt_operands, process_address, curr_insn_transform): Likewise.
30851 * postreload.c (reload_cse_simplify_operands): Likewise.
30852 * reload.c (push_secondary_reload, scratch_reload_class)
30853 (find_reloads, alternative_allows_const_pool_ref): Likewise.
30854 * reload1.c (maybe_fix_stack_asms): Likewise.
30855 * targhooks.c (default_secondary_reload): Likewise.
30856 * stmt.c (parse_output_constraint): Likewise.
30857 * recog.c (preprocess_constraints): Likewise.
30858 (constrain_operands, peep2_find_free_register): Likewise.
30859 (asm_operand_ok): Likewise, but add a comment saying why 'o'
30860 must be handled specially.
30861
30862 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30863
30864 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
30865 * genpreds.c (have_const_dbl_constraints): Delete.
30866 (add_constraint): Don't set it.
30867 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
30868 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
30869 constraints using the lookup_constraint logic.
30870 * ira-lives.c (single_reg_class): Likewise.
30871 * ira.c (ira_setup_alts): Likewise.
30872 * lra-constraints.c (process_alt_operands): Likewise.
30873 * recog.c (asm_operand_ok, constrain_operands): Likewise.
30874 * reload.c (find_reloads): Likewise.
30875
30876 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30877
30878 * genpreds.c (const_int_start, const_int_end): New variables.
30879 (choose_enum_order): Output CONST_INT constraints before memory
30880 constraints.
30881 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
30882 Add CT_CONST_INT.
30883 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
30884 * ira.c (ira_setup_alts): Likewise.
30885 * lra-constraints.c (process_alt_operands): Likewise.
30886 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
30887 * reload.c (find_reloads): Likewise.
30888
30889 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30890
30891 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
30892 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
30893 * recog.c (preprocess_constraints): Update accordingly.
30894
30895 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30896
30897 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
30898 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
30899 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
30900 * genpreds.c (print_type_tree): New function.
30901 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
30902 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
30903 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
30904 Write out enum constraint_type and get_constraint_type.
30905 * lra-constraints.c (satisfies_memory_constraint_p): Take a
30906 constraint_num rather than a constraint string.
30907 (satisfies_address_constraint_p): Likewise.
30908 (reg_class_from_constraints): Avoid old constraint macros.
30909 (process_alt_operands, process_address_1): Likewise.
30910 (curr_insn_transform): Likewise.
30911 * ira-costs.c (record_reg_classes): Likewise.
30912 (record_operand_costs): Likewise.
30913 * ira-lives.c (single_reg_class): Likewise.
30914 (ira_implicitly_set_insn_hard_regs): Likewise.
30915 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
30916 * postreload.c (reload_cse_simplify_operands): Likewise.
30917 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
30918 (constrain_operands, peep2_find_free_register): Likewise.
30919 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
30920 (find_reloads, alternative_allows_const_pool_ref): Likewise.
30921 * reload1.c (maybe_fix_stack_asms): Likewise.
30922 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
30923 * targhooks.c (default_secondary_reload): Likewise.
30924 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
30925 to EXTRA_CONSTRAINT_STR.
30926 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
30927
30928 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30929
30930 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
30931 (write_constraint_satisfied_p_array): ...this new function.
30932 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
30933 an array.
30934 (write_insn_preds_c): Update accordingly.
30935
30936 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30937
30938 * genpreds.c (write_lookup_constraint): Rename to...
30939 (write_lookup_constraint_1): ...this.
30940 (write_lookup_constraint_array): New function.
30941 (write_tm_preds_h): Define lookup_constraint as an inline function
30942 that uses write_lookup_constraint_array where possible.
30943 (write_insn_preds_c): Update for the changes above.
30944
30945 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
30946
30947 * doc/md.texi (regclass_for_constraint): Rename to...
30948 (reg_class_for_constraint): ...this.
30949 * genpreds.c (num_constraints, enum_order, register_start)
30950 (register_end, satisfied_start, memory_start, memory_end)
30951 (address_start, address_end): New variables.
30952 (add_constraint): Count the number of constraints.
30953 (choose_enum_order): New function.
30954 (write_enum_constraint_num): Iterate over enum_order.
30955 (write_regclass_for_constraint): Rename to...
30956 (write_reg_class_for_constraint_1): ...this and update output
30957 accordingly.
30958 (write_constraint_satisfied_p): Rename to...
30959 (write_constraint_satisfied_p_1): ...this and update output
30960 accordingly. Do nothing if all extra constraints are register
30961 constraints.
30962 (write_insn_extra_memory_constraint): Delete.
30963 (write_insn_extra_address_constraint): Delete.
30964 (write_range_function): New function.
30965 (write_tm_preds_h): Define constraint_satisfied_p and
30966 reg_class_for_constraint as inline functions that do a range check
30967 before calling the out-of-line function. Use write_range_function
30968 to implement insn_extra_{register,memory,address}_constraint,
30969 the first of which is new.
30970 (write_insn_preds_c): Update after above changes to write_* functions.
30971 (main): Call choose_enum_order.
30972
30973 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
30974
30975 PR tree-optimization/61306
30976 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
30977 expression instead of its size.
30978 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
30979 false to prevent optimization when the result is unpredictable due to
30980 arithmetic right shift of signed type with highest byte is set.
30981 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
30982 (init_symbolic_number): Likewise.
30983 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
30984 when the result is unpredictable due to sign extension.
30985
30986 2014-06-11 Terry Guo <terry.guo@arm.com>
30987
30988 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
30989 (*thumb1_addsi3): Ditto.
30990 (*thumb_subdi3): Ditto.
30991 (thumb1_subsi3_insn): Ditto.
30992 (*thumb_mulsi3): Ditto.
30993 (*thumb_mulsi3_v6): Ditto.
30994 (*thumb1_andsi3_insn): Ditto.
30995 (thumb1_bicsi3): Ditto.
30996 (*thumb1_iorsi3_insn): Ditto.
30997 (*thumb1_xorsi3_insn): Ditto.
30998 (*thumb1_ashlsi3): Ditto.
30999 (*thumb1_ashrsi3): Ditto.
31000 (*thumb1_lshrsi3): Ditto.
31001 (*thumb1_rotrsi3): Ditto.
31002 (*thumb1_negdi2): Ditto.
31003 (*thumb1_negsi2): Ditto.
31004 (*thumb1_abssi2): Ditto.
31005 (*thumb1_neg_abssi2): Ditto.
31006 (*thumb1_one_cmplsi2): Ditto.
31007 (*thumb1_zero_extendhisi2): Ditto.
31008 (*thumb1_zero_extendqisi2): Ditto.
31009 (*thumb1_zero_extendqisi2_v6): Ditto.
31010 (thumb1_extendhisi2): Ditto.
31011 (thumb1_extendqisi2): Ditto.
31012 (*thumb1_movdi_insn): Ditto.
31013 (*thumb1_movsi_insn): Ditto.
31014 (*thumb1_movhi_insn): Ditto.
31015 (thumb_movhi_clobber): Ditto.
31016 (*thumb1_movqi_insn): Ditto.
31017 (*thumb1_movhf): Ditto.
31018 (*thumb1_movsf_insn): Ditto.
31019 (*thumb_movdf_insn): Ditto.
31020 (movmem12b): Ditto.
31021 (movmem8b): Ditto.
31022 (cbranchqi4): Ditto.
31023 (cbranchsi4_insn): Ditto.
31024 (cbranchsi4_scratch): Ditto.
31025 (*negated_cbranchsi4): Ditto.
31026 (*tbit_cbranch): Ditto.
31027 (*tlobits_cbranch): Ditto.
31028 (*tstsi3_cbranch): Ditto.
31029 (*cbranchne_decr1): Ditto.
31030 (*addsi3_cbranch): Ditto.
31031 (*addsi3_cbranch_scratch): Ditto.
31032 (*thumb_cmpdi_zero): Ditto.
31033 (cstoresi_eq0_thumb1): Ditto.
31034 (cstoresi_ne0_thumb1): Ditto.
31035 (*cstoresi_eq0_thumb1_insn): Ditto.
31036 (*cstoresi_ne0_thumb1_insn): Ditto.
31037 (cstoresi_nltu_thumb1): Ditto.
31038 (cstoresi_ltu_thumb1): Ditto.
31039 (thumb1_addsi3_addgeu): Ditto.
31040 (*thumb_jump): Ditto.
31041 (*call_reg_thumb1_v5): Ditto.
31042 (*call_reg_thumb1): Ditto.
31043 (*call_value_reg_thumb1_v5): Ditto.
31044 (*call_value_reg_thumb1): Ditto.
31045 (*call_insn): Ditto.
31046 (*call_value_insn): Ditto.
31047 (thumb1_casesi_internal_pic): Ditto.
31048 (thumb1_casesi_dispatch): Ditto.
31049 (*thumb1_indirect_jump): Ditto.
31050 (prologue_thumb1_interwork): Ditto.
31051 (*epilogue_insns): Ditto.
31052 (consttable_1): Ditto.
31053 (consttable_2): Ditto.
31054 (tablejump): Ditto.
31055 (*thumb1_tablejump): Ditto.
31056 (thumb_eh_return): Ditto.
31057 (define_peephole2): Two of them are thumb1 only and got moved into
31058 new file thumb1.md.
31059 (define_split): Six of them are thumb1 only and got moved into new
31060 file thumb1.md.
31061 * config/arm/thumb1.md: New file comprised of above thumb1 only
31062 patterns.
31063
31064 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31065
31066 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
31067 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
31068 dependencies.
31069 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
31070 (aarch64_crc_builtin_datum): New struct.
31071 (aarch64_crc_builtin_data): New.
31072 (aarch64_init_crc32_builtins): New function.
31073 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
31074 (aarch64_crc32_expand_builtin): New.
31075 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
31076 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
31077 __ARM_FEATURE_CRC32 when appropriate.
31078 (TARGET_CRC32): Define.
31079 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
31080 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
31081 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
31082 (aarch64_<crc_variant>): New pattern.
31083 * config/aarch64/arm_acle.h: New file.
31084 * config/aarch64/iterators.md (CRC): New int iterator.
31085 (crc_variant, crc_mode): New int attributes.
31086 * doc/aarch64-acle-intrinsics.texi: New file.
31087 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
31088 Include aarch64-acle-intrinsics.texi.
31089
31090 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
31091
31092 * tree-vect-data-refs.c (vect_grouped_store_supported): New
31093 check for stores group of length 3.
31094 (vect_permute_store_chain): New permutations for stores group of
31095 length 3.
31096 * tree-vect-stmts.c (vect_model_store_cost): Change cost
31097 of vec_perm_shuffle for the new permutations.
31098
31099 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
31100
31101 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
31102 table rewriting temporarily on targets not supporting ONE_ONLY.
31103
31104 2014-06-11 Richard Biener <rguenther@suse.de>
31105
31106 PR middle-end/61437
31107 Revert
31108 2014-06-04 Richard Biener <rguenther@suse.de>
31109
31110 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
31111 TREE_PUBLIC and DECL_EXTERNAL decls.
31112
31113 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
31114
31115 * varasm.c (set_implicit_section): New function.
31116 (resolve_unique_section): Use it to set implicit section
31117 for aliases, too.
31118 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
31119 (default_function_section): Likewise.
31120 (decl_binds_to_current_def_p): Constify argument.
31121 * varasm.h (decl_binds_to_current_def_p): Update prototype.
31122 * asan.c (asan_protect_global): Use
31123 symtab_get_node (decl)->implicit_section.
31124 * symtab.c (dump_symtab_base): Dump implicit sections.
31125 (verify_symtab_base): Verify sanity of sectoins and comdats.
31126 (symtab_resolve_alias): Alias share the section of its target.
31127 (set_section_1): New function.
31128 (symtab_node::set_section): Move here, recurse to aliases.
31129 (verify_symtab): Check for duplicated symtab lists.
31130 * tree-core.h (implicit_section_name_p): Remove.
31131 * tree-vect-data-refs.c: Include varasm.h.
31132 (vect_can_force_dr_alignment_p): Fix conditional on when
31133 decl bints to current definition; use
31134 symtab_get_node (decl)->implicit_section.
31135 * cgraph.c (cgraph_make_node_local_1): Fix section set.
31136 * cgraph.h (struct symtab_node): Add implicit_section.
31137 (set_section): Rename to ...
31138 (set_section_for_node): ... this one.
31139 (set_section): Declare.
31140 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
31141 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
31142 input_overwrite_node, input_varpool_node): Stream implicit_section.
31143 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
31144 removal; it will fail in LTO.
31145
31146 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31147
31148 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
31149 Change second alternative type to f_mcr.
31150 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
31151 and 12th alternatives' types to f_mcr and f_mrc.
31152 (*movdi_aarch64): Same for 12th and 13th alternatives.
31153 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
31154 (aarch64_movtilow_tilow): Change type to fmov.
31155
31156 2014-06-10 Jiong Wang <jiong.wang@arm.com>
31157
31158 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
31159 (aarch64_save_or_restore_callee_save_registers): Fix layout.
31160
31161 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31162
31163 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
31164 New expander.
31165 (aarch64_sqrdmulh_lane<mode>): Likewise.
31166 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
31167 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
31168 (aarch64_sqdmulh_laneq<mode>): New expander.
31169 (aarch64_sqrdmulh_laneq<mode>): Likewise.
31170 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
31171 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
31172 (aarch64_sqdmulh_lane<mode>): New expander.
31173 (aarch64_sqrdmulh_lane<mode>): Likewise.
31174 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
31175 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
31176 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
31177 (aarch64_sqdmlal_laneq<mode>): Likewise.
31178 (aarch64_sqdmlsl_lane<mode>): Likewise.
31179 (aarch64_sqdmlsl_laneq<mode>): Likewise.
31180 (aarch64_sqdmlal2_lane<mode>): Likewise.
31181 (aarch64_sqdmlal2_laneq<mode>): Likewise.
31182 (aarch64_sqdmlsl2_lane<mode>): Likewise.
31183 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
31184 (aarch64_sqdmull_lane<mode>): Likewise.
31185 (aarch64_sqdmull_laneq<mode>): Likewise.
31186 (aarch64_sqdmull2_lane<mode>): Likewise.
31187 (aarch64_sqdmull2_laneq<mode>): Likewise.
31188
31189 2014-06-10 Richard Biener <rguenther@suse.de>
31190
31191 PR tree-optimization/61438
31192 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
31193 (eliminate_dom_walker::before_dom_children): Only try to inhibit
31194 insertion of IVs if running PRE.
31195 (eliminate): Adjust.
31196 (pass_pre::execute): Likewise.
31197 (pass_fre::execute): Likewise.
31198
31199 2014-06-10 Richard Biener <rguenther@suse.de>
31200
31201 PR middle-end/61456
31202 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
31203 Do not use the main variant for the type comparison.
31204 (ncr_compar): Likewise.
31205 (nonoverlapping_component_refs_p): Likewise.
31206
31207 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
31208
31209 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
31210 REG_CFA_RESTORE mode.
31211
31212 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
31213
31214 * config/i386/i386.c (expand_vec_perm_pblendv): New.
31215 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
31216 expand_vec_perm_pblendv.
31217
31218 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31219
31220 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
31221 available.
31222 Simplify description of __crc32d and __crc32cd intrinsics.
31223 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
31224 availability.
31225
31226 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
31227
31228 PR lto/61334
31229 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
31230 * config.in: Regenerate.
31231 * configure: Likewise.
31232
31233 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
31234
31235 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
31236 and public vars.
31237 (intersect_static_var_sets): Remove.
31238 (propagate): Do not prune local statics.
31239
31240 2014-06-10 Jakub Jelinek <jakub@redhat.com>
31241
31242 PR fortran/60928
31243 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
31244 Set lastprivate_firstprivate even if omp_private_outer_ref
31245 langhook returns true.
31246 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
31247 langhook, call unshare_expr on new_var and call
31248 build_outer_var_ref to get the last argument.
31249
31250 2014-06-10 Marek Polacek <polacek@redhat.com>
31251
31252 PR c/60988
31253 * doc/extend.texi: Add cindex for transparent_union.
31254
31255 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
31256
31257 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
31258 init_symbolic_number ().
31259
31260 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
31261
31262 PR middle-end/61141
31263 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
31264 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
31265 (verify_rtl_sharing): Likewise.
31266
31267 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
31268
31269 PR c++/54442
31270 * tree.c (build_qualified_type): Use a canonical type for
31271 TYPE_CANONICAL.
31272
31273 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31274
31275 * config/arm/arm-modes.def: Remove XFmode.
31276
31277 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
31278
31279 PR target/61062
31280 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
31281 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
31282 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
31283 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
31284 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
31285 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
31286 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
31287 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
31288 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
31289
31290 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
31291
31292 * tree-core.h (tree_decl_with_vis): Remove section_name.
31293
31294 2014-06-09 Kito Cheng <kito@0xlab.org>
31295
31296 * ira.c (ira): Don't call init_caller_save if LRA enabled
31297 since LRA use its own infrastructure to handle that.
31298
31299 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
31300
31301 * symtab.c (dump_symtab_base): Update dumping.
31302 (symtab_make_decl_local): Clear only DECL_COMDAT.
31303 * tree-vect-data-refs.c (Check that variable is static before
31304 tampering with sections.
31305 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
31306 (cgraph_create_virtual_clone): Likewise.
31307 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
31308 (decl_section_name, set_decl_section_name): New accessors.
31309 (find_decls_types_r): Do not walk section name
31310 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
31311 (decl_comdat_group, decl_comdat_group_id): Constify.
31312 (decl_section_name, set_decl_section_name): Update.
31313 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
31314 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
31315 (cgraph_make_node_local_1): Clear section and comdat group.
31316 * cgraph.h (set_comdat_group): Sanity check.
31317 (get_section, set_section): New.
31318 * ipa-comdats.c (ipa_comdats): Use get_section.
31319 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
31320 * lto-streamer-out.c: Do not follow section names.
31321 * c-family/c-common.c (handle_section_attribute): Update.
31322 * lto-cgraph.c (lto_output_node): Output section.
31323 (lto_output_varpool_node): Likewise.
31324 (read_comdat_group): Rename to ...
31325 (read_identifier): ... this one.
31326 (read_string_cst): New function.
31327 (input_node, input_varpool_node): Input section names.
31328 * tree-emutls.c (get_emutls_init_templ_addr): Update.
31329 (new_emutls_decl): Update.
31330 (secname_for_decl): Check section names only of static vars.
31331 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
31332 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
31333 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
31334 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
31335 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
31336 * config/mcore/mcore.c (mcore_unique_section): Likewise.
31337 * config/mips/mips.c (mips16_build_function_stub): Likewise.
31338 * config/v850/v850.c (v850_insert_attributes): Likewise.
31339 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
31340 Likewise.
31341 (h8300_handle_tiny_data_attribute): Likewise.
31342 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
31343 (bfin_handle_l2_attribute): Likewise.
31344
31345 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
31346
31347 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
31348 remove static initializer.
31349
31350 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
31351
31352 * varasm.c (use_blocks_for_decl_p): Check symbol table
31353 instead of alias attribute.
31354 (place_block_symbol): Recurse on aliases.
31355
31356 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
31357
31358 * ipa-visibility.c: Include varasm.h
31359 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
31360
31361 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
31362
31363 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
31364 outputting aliases.
31365
31366 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
31367
31368 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
31369 from test_insn into GGC space escape via SET_SRC.
31370
31371 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
31372
31373 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
31374 call statement, if any.
31375 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
31376 statements, if any. Tidy up.
31377
31378 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
31379
31380 PR target/61431
31381 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
31382 iterators, VSX_D that handles 64-bit types, and VSX_LE that
31383 handles swapping the two 64-bit double words on little endian
31384 systems. Include V1TImode and optionally TImode in VSX_LE so that
31385 these types are properly swapped. Change all of the insns and
31386 splits that do the 64-bit swaps to use VSX_LE.
31387 (vsx_le_perm_load_<mode>): Likewise.
31388 (vsx_le_perm_store_<mode>): Likewise.
31389 (splitters for little endian memory operations): Likewise.
31390 (vsx_xxpermdi2_le_<mode>): Likewise.
31391 (vsx_lxvd2x2_le_<mode>): Likewise.
31392 (vsx_stxvd2x2_le_<mode>): Likewise.
31393
31394 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
31395
31396 PR target/61423
31397 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
31398 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
31399 and corresponding splitters. Zero extend general register
31400 or memory input operand to XMM temporary. Enable for
31401 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
31402 (floatunssi<mode>2): Update expander predicate.
31403
31404 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
31405
31406 PR rtl-optimization/61325
31407 * lra-constraints.c (process_address_1): Check scale equal to one
31408 to prevent transformation: base + scale * index => base + new_reg.
31409
31410 2014-06-06 Richard Biener <rguenther@suse.de>
31411
31412 PR tree-optimization/59299
31413 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
31414 a def operand.
31415 (nearest_common_dominator_of_uses): Likewise.
31416 (statement_sink_location): Adjust. Support sinking loads.
31417
31418 2014-06-06 Martin Jambor <mjambor@suse.cz>
31419
31420 * ipa-prop.c (get_place_in_agg_contents_list): New function.
31421 (build_agg_jump_func_from_list): Likewise.
31422 (determine_known_aggregate_parts): Renamed to
31423 determine_locally_known_aggregate_parts. Moved some functionality
31424 to the two functions above, removed bound checks.
31425
31426 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
31427
31428 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
31429 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
31430 (aarch64_progress_pointer): Likewise.
31431 (aarch64_copy_one_part_and_move_pointers): Likewise.
31432 (aarch64_expand_movmen): Likewise.
31433 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
31434 * config/aarch64/aarch64.md (movmem<mode>): New.
31435
31436 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
31437
31438 * targhooks.c (default_add_stmt_cost): Call target specific
31439 hook instead of default one.
31440
31441 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
31442
31443 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
31444 endianness instead of host endianness.
31445 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
31446 comments.
31447
31448 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
31449
31450 PR debug/53927
31451 * function.c (instantiate_decls): Process the saved static chain.
31452 (expand_function_start): If not optimizing, save the static chain
31453 onto the stack.
31454 * tree-nested.c (convert_all_function_calls): Always create the static
31455 chain for nested functions if not optimizing.
31456
31457 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
31458
31459 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
31460
31461 2014-06-06 Richard Biener <rguenther@suse.de>
31462
31463 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
31464 (construct_init_block): Likewise.
31465 (construct_exit_block): Likewise.
31466 (pass_expand::execute): Likewise.
31467 * graphite.c (graphite_transforms): Replace check for current_loops
31468 with a check for > 1 loops.
31469 (pass_graphite_transforms::execute): Adjust.
31470 * ipa-split.c (split_function): Remove check for current_loops.
31471 * omp-low.c (expand_parallel_call): Likewise.
31472 (expand_omp_for_init_counts): Likewise.
31473 (extract_omp_for_update_vars): Likewise.
31474 (expand_omp_for_generic): Likewise.
31475 (expand_omp_sections): Likewise.
31476 (expand_omp_target): Likewise.
31477 * tracer.c (tail_duplicate): Likewise.
31478 (pass_tracer::execute): Likewise.
31479 * trans-mem.c (expand_transaction): Likewise.
31480 * tree-complex.c (expand_complex_div_wide): Likewise.
31481 * tree-eh.c (lower_resx): Likewise.
31482 (cleanup_empty_eh_merge_phis): Likewise.
31483 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
31484 current_loops with a check for > 1 loops.
31485 (pass_predcom::execute): Adjust.
31486 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
31487 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
31488 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
31489 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
31490 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
31491 * tree-switch-conversion.c (process_switch): Likewise.
31492 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
31493 * tree-vrp.c (vrp_visit_phi_node): Likewise.
31494 (execute_vrp): Likewise.
31495 * ubsan.c (ubsan_expand_null_ifn): Likewise.
31496
31497 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
31498
31499 * rtl.h (insn_location): Declare.
31500 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
31501 with UNKNOWN_LOCATION.
31502 * emit-rtl.c (insn_location): New function.
31503 * final.c (notice_source_line): Check that the instruction has a
31504 location before retrieving it and use insn_location.
31505 * modulo-sched.c (loop_single_full_bb_p): Likewise.
31506 * print-rtl.c (print_rtx): Likewise.
31507
31508 2014-06-06 Richard Biener <rguenther@suse.de>
31509
31510 * passes.def: Move 2nd VRP pass before phi-only-cprop.
31511
31512 2014-06-06 Christian Bruel <christian.bruel@st.com>
31513
31514 PR tree-optimization/43934
31515 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
31516 cost.
31517
31518 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
31519
31520 * ira-lives.c (single_reg_class): Add missing break. Explicitly
31521 return NO_REGS for extra address and memory constraints. Handle
31522 operands that match (or are equivalent to something that matches)
31523 extra constant constraints. Ignore other non-register operands.
31524
31525 2014-06-06 Alan Modra <amodra@gmail.com>
31526
31527 PR target/61300
31528 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
31529 * doc/tm.texi: Regenerate.
31530 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
31531 Use throughout in place of REG_PARM_STACK_SPACE.
31532 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
31533 "incoming" param. Pass to rs6000_function_parms_need_stack.
31534 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
31535 prototype_p when incoming. Use function decl when incoming
31536 to handle K&R style functions.
31537 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
31538 (INCOMING_REG_PARM_STACK_SPACE): Define.
31539
31540 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
31541
31542 PR target/52472
31543 * cfgexpand.c (expand_debug_expr): Use address space of nested
31544 TREE_TYPE for ADDR_EXPR and MEM_REF.
31545
31546 2014-06-05 Jeff Law <law@redhat.com>
31547
31548 PR tree-optimization/61289
31549 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
31550 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
31551 looking for those which match LHS. All callers changed.
31552 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
31553 parameters and code which manipulated them. All callers changed.
31554 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
31555 and DST_MAP parameters. Simplify invalidation code by just calling
31556 invalidate_equivalences. All callers changed.
31557 (thread_across_edge): Simplify now that we don't need to maintain
31558 the map of equivalences to invalidate.
31559
31560 2014-06-05 Kai Tietz <ktietz@redhat.com>
31561 Richard Henderson <rth@redhat.com>
31562
31563 PR target/46219
31564 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
31565 checking for !TARGET_X32.
31566 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
31567 (sibcall_intern): New define_insn, plus required peepholes.
31568 (sibcall_pop_intern): Likewise.
31569 (sibcall_value_intern): Likewise.
31570 (sibcall_value_pop_intern): Likewise.
31571
31572 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
31573
31574 * tree-inline.c (tree_function_versioning): Check DF info existence
31575 before accessing it.
31576
31577 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
31578
31579 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
31580 frame_size.
31581 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
31582 aarch64_frame hard_fp_offset and frame_size.
31583 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
31584 frame_size; remove original_frame_size.
31585 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
31586 (aarch64_initial_elimination_offset): Remove frame_size and
31587 offset. Use aarch64_frame frame_size.
31588
31589 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
31590 Jiong Wang <jiong.wang@arm.com>
31591 Renlin <renlin.li@arm.com>
31592
31593 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
31594 initialization of R30 offset. Update offset. Iterate core
31595 regisers upto X30. Remove X29, X30 specific code.
31596
31597 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
31598 Jiong Wang <jiong.wang@arm.com>
31599
31600 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
31601 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
31602 (aarch64_register_saved_on_entry): Adjust test.
31603
31604 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
31605
31606 * config/aarch64/aarch64.h (machine_function): Move
31607 saved_varargs_size from here...
31608 (aarch64_frame): ... to here.
31609
31610 * config/aarch64/aarch64.c (aarch64_expand_prologue)
31611 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
31612 (aarch64_initial_elimination_offset)
31613 (aarch64_setup_incoming_varargs): Adjust location of
31614 saved_varargs_size.
31615
31616 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
31617
31618 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
31619 layout comment.
31620
31621 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
31622 Prachi Godbole <Prachi.Godbole@imgtec.com>
31623
31624 * config/mips/mips-cpus.def: Add definition for p5600. Updated
31625 mips32r5 entry to use PROCESSOR_P5600.
31626 * config/mips/mips-tables.opt: Regenerate.
31627 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
31628 * config/mips/mips.c (mips_fmadd_bypass): New function.
31629 (mips_rtx_cost_data): Add costs for p5600.
31630 (mips_issue_rate): Add support for p5600.
31631 (mips_multipass_dfa_lookahead): Likewise.
31632 * config/mips/mips.h (TUNE_P5600): New define.
31633 (TUNE_MACC_CHAINS): Add TUNE_P5600.
31634 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
31635 * config/mips/mips.md: Include p5600.md.
31636 (processor): Add p5600.
31637 * config/mips/p5600.md: New file.
31638
31639 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
31640
31641 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
31642 * config/i386/predicates.md (palignr_operand): New.
31643 Indicates if permutation is suitable for palignr instruction.
31644
31645 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
31646
31647 PR tree-optimization/61319
31648 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
31649 stmt belongs to loop.
31650
31651 2014-06-05 Richard Biener <rguenther@suse.de>
31652
31653 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
31654 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
31655 (lookup_tmp_var): Adjust.
31656 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
31657
31658 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31659
31660 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
31661
31662 2014-06-05 Marek Polacek <polacek@redhat.com>
31663
31664 PR c/49706
31665 * doc/invoke.texi: Document -Wlogical-not-parentheses.
31666
31667 2014-06-04 Tom de Vries <tom@codesourcery.com>
31668
31669 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
31670 CONST_INT.
31671
31672 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
31673
31674 PR tree-optimization/61385
31675 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
31676
31677 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
31678
31679 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
31680 changed to use fatal_error.
31681 (main): Ensure lto_wrapper_cleanup is run atexit.
31682
31683 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
31684
31685 * lra-constraints.c (valid_address_p): Move earlier in file.
31686 (address_eliminator): New structure.
31687 (satisfies_memory_constraint_p): New function.
31688 (satisfies_address_constraint_p): Likewise.
31689 (process_alt_operands, process_address, curr_insn_transform): Use them.
31690
31691 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
31692
31693 * lra-int.h (lra_static_insn_data): Make operand_alternative a
31694 const pointer.
31695 (target_lra_int, default_target_lra_int, this_target_lra_int)
31696 (op_alt_data): Delete.
31697 * lra.h (lra_init): Delete.
31698 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
31699 (init_insn_code_data_once): Remove op_alt_data handling.
31700 (finish_insn_code_data_once): Likewise.
31701 (init_op_alt_data): Delete.
31702 (get_static_insn_data): Initialize operand_alternative to null.
31703 (free_insn_recog_data): Cast operand_alternative before freeing it.
31704 (setup_operand_alternative): Take the operand_alternative as
31705 parameter and assume it isn't already cached in the static
31706 insn data.
31707 (lra_set_insn_recog_data): Update accordingly.
31708 (lra_init): Delete.
31709 * ira.c (ira_init): Don't call lra_init.
31710 * target-globals.h (this_target_lra_int): Declare.
31711 (target_globals): Remove lra_int.
31712 (restore_target_globals): Update accordingly.
31713 * target-globals.c: Don't include lra-int.h.
31714 (default_target_globals, save_target_globals): Remove lra_int.
31715
31716 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
31717
31718 * recog.h (operand_alternative): Convert reg_class, reject,
31719 matched and matches into bitfields.
31720 (preprocess_constraints): New overload.
31721 (preprocess_insn_constraints): New function.
31722 (preprocess_constraints): Take the insn as parameter.
31723 (recog_op_alt): Change into a pointer.
31724 (target_recog): Add x_op_alt.
31725 * recog.c (asm_op_alt): New variable.
31726 (recog_op_alt): Change into a pointer.
31727 (preprocess_constraints): New overload, replacing the old function
31728 definition with one that doesn't use global state.
31729 (preprocess_insn_constraints): New function.
31730 (preprocess_constraints): Use them. Take the insn as parameter.
31731 Use asm_op_alt for asms.
31732 (recog_init): Free existing x_op_alt entries.
31733 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
31734 pointer const.
31735 (make_early_clobber_and_input_conflicts): Likewise.
31736 (process_bb_node_lives): Pass the insn to process_constraints.
31737 * reg-stack.c (check_asm_stack_operands): Likewise.
31738 (subst_asm_stack_regs): Likewise.
31739 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
31740 * regrename.c (build_def_use): Likewise.
31741 * sched-deps.c (sched_analyze_insn): Likewise.
31742 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
31743 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
31744 (note_invalid_constants): Likewise.
31745 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
31746 (ix86_legitimate_combined_insn): Make operand_alternative pointer
31747 const.
31748
31749 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
31750
31751 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
31752 * ira-lives.c (check_and_make_def_conflict): Check for disabled
31753 alternatives.
31754 (make_early_clobber_and_input_conflicts): Likewise.
31755 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
31756
31757 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
31758
31759 * recog.h (alternative_class): New function.
31760 (which_op_alt): Return a const recog_op_alt.
31761 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
31762 (subst_asm_stack_regs): Likewise.
31763 * config/arm/arm.c (note_invalid_constants): Likewise.
31764 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
31765 the operand_alternative; use alternative class instead.
31766 * sel-sched.c (get_reg_class): Likewise.
31767 * regrename.c (build_def_use): Likewise.
31768 (hide_operands, restore_operands, record_out_operands): Update type
31769 accordingly.
31770
31771 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
31772
31773 * recog.h (recog_op_alt): Convert to a flat array.
31774 (which_op_alt): New function.
31775 * recog.c (recog_op_alt): Convert to a flat array.
31776 (preprocess_constraints): Update accordingly, grouping all
31777 operands of the same alternative together, rather than the
31778 other way around.
31779 * ira-lives.c (check_and_make_def_conflict): Likewise.
31780 (make_early_clobber_and_input_conflicts): Likewise.
31781 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
31782 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
31783 (subst_asm_stack_regs): Likewise.
31784 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
31785 * regrename.c (hide_operands, record_out_operands): Likewise.
31786 (build_def_use): Likewise.
31787 * sel-sched.c (get_reg_class): Likewise.
31788 * config/arm/arm.c (note_invalid_constants): Likewise.
31789
31790 2014-06-04 Jason Merrill <jason@redhat.com>
31791
31792 PR c++/51253
31793 PR c++/61382
31794 * gimplify.c (gimplify_arg): Non-static.
31795 * gimplify.h: Declare it.
31796
31797 2014-06-04 Richard Biener <rguenther@suse.de>
31798
31799 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
31800 TREE_PUBLIC and DECL_EXTERNAL decls.
31801
31802 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
31803
31804 * regcprop.c (copyprop_hardreg_forward_1): Account for
31805 HARD_REGNO_CALL_PART_CLOBBERED.
31806
31807 2014-06-04 Richard Biener <rguenther@suse.de>
31808
31809 * configure.ac: Check whether the underlying type of int64_t
31810 is long or long long.
31811 * configure: Regenerate.
31812 * config.in: Likewise.
31813 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
31814 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
31815
31816 2014-06-04 Richard Biener <rguenther@suse.de>
31817
31818 PR tree-optimization/60098
31819 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
31820 we hit a kill.
31821 (dse_optimize_stmt): Simplify, now that we found a kill
31822 earlier.
31823
31824 2014-06-04 Richard Biener <rguenther@suse.de>
31825
31826 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
31827 of accesses with non-invariant address.
31828
31829 2014-06-04 Martin Liska <mliska@suse.cz>
31830
31831 * cgraph.h (cgraph_make_wrapper): New function introduced.
31832 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
31833 * ipa-inline.h (inline_analyze_function): The function is global.
31834 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
31835
31836 2014-06-04 Martin Liska <mliska@suse.cz>
31837
31838 * tree.h (private_lookup_attribute_starting): New function.
31839 (lookup_attribute_starting): Likewise.
31840 * tree.c (private_lookup_attribute_starting): Likewise.
31841
31842 2014-06-04 Martin Liska <mliska@suse.cz>
31843
31844 * cgraph.h (expand_thunk): New argument added.
31845 (address_taken_from_non_vtable_p): New global function.
31846 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
31847 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
31848 * cgraphunit.c (analyze_function): Likewise.
31849 (assemble_thunks_and_aliases): Argument added to call.
31850 (expand_thunk): New argument forces to produce GIMPLE thunk.
31851
31852 2014-06-04 Martin Liska <mliska@suse.cz>
31853
31854 * coverage.h (coverage_compute_cfg_checksum): Argument added.
31855 * coverage.c (coverage_compute_cfg_checksum): Likewise.
31856 * profile.c (branch_prob): Likewise.
31857
31858 2014-06-04 Martin Jambor <mjambor@suse.cz>
31859
31860 PR ipa/61340
31861 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
31862 handler for switch on an ipa_ref_use enum.
31863 * ipa-reference.c (analyze_function): Likewise.
31864
31865 2014-06-04 Kai Tietz <ktietz@redhat.com>
31866
31867 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
31868 from old call-instruction.
31869
31870 2014-06-04 Bin Cheng <bin.cheng@arm.com>
31871
31872 * config/aarch64/aarch64.c (aarch64_classify_address)
31873 (aarch64_legitimize_reload_address): Support full addressing modes
31874 for vector modes.
31875 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
31876 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
31877
31878 2014-06-03 Andrew Pinski <apinski@cavium.com>
31879
31880 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
31881 for OP0.
31882
31883 2014-06-03 Andrew Pinski <apinski@cavium.com>
31884
31885 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
31886 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
31887
31888 2014-06-03 Kai Tietz <ktietz@redhat.com>
31889
31890 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
31891 for 64-bit ms-abi.
31892
31893 2014-06-03 Dehao Chen <dehao@google.com>
31894
31895 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
31896 the same loop.
31897
31898 2014-06-03 Marek Polacek <polacek@redhat.com>
31899
31900 PR c/60439
31901 * doc/invoke.texi: Document -Wswitch-bool.
31902 * function.c (stack_protect_epilogue): Cast controlling expression of
31903 the switch to int.
31904 * gengtype.c (walk_type): Generate switch expression with its
31905 controlling expression cast to int.
31906
31907 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
31908
31909 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
31910 and attiny841.
31911 * config/avr/avr-tables.opt: Regenerate.
31912 * config/avr/t-multilib: Regenerate.
31913 * doc/avr-mmcu.texi: Regenerate.
31914
31915 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
31916 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
31917
31918 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
31919 (ata6617c, ata664251): Add new avr35 devices.
31920 (ata6612c): Add new avr4 device.
31921 (ata6613c, ata6614q): Add new avr5 devices.
31922 * config/avr/avr-tables.opt: Regenerate.
31923 * config/avr/t-multilib: Regenerate.
31924 * doc/avr-mmcu.texi: Regenerate.
31925
31926 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
31927
31928 * gcc/config/aarch64/aarch64-builtins.c
31929 (aarch64_types_binop_ssu_qualifiers): New static data.
31930 (TYPES_BINOP_SSU): Define.
31931 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
31932 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
31933 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
31934 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
31935 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
31936 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
31937 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
31938 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
31939 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
31940 suffix to builtin function name, remove cast.
31941 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
31942 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
31943 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
31944
31945 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
31946
31947 * gcc/config/aarch64/aarch64-builtins.c
31948 (aarch64_types_binop_uus_qualifiers,
31949 aarch64_types_shift_to_unsigned_qualifiers,
31950 aarch64_types_unsigned_shiftacc_qualifiers): Define.
31951 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
31952 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
31953 sqshlu_n, uqshl_n): Update qualifiers.
31954 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
31955 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
31956 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
31957 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
31958 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
31959 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
31960 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
31961 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
31962 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
31963 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
31964 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
31965 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
31966 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
31967 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
31968 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
31969 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
31970 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
31971 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
31972 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
31973 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
31974 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
31975 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
31976 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
31977 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
31978 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
31979 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
31980 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
31981
31982 2014-06-03 Teresa Johnson <tejohnson@google.com>
31983
31984 * tree-sra.c (modify_function): Record caller nodes after rebuild.
31985
31986 2014-06-02 Jason Merrill <jason@redhat.com>
31987
31988 PR c++/61020
31989 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
31990
31991 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
31992
31993 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
31994 location == 0.
31995
31996 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
31997
31998 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
31999 New pattern.
32000 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
32001 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
32002 * config/aarch64/iterators.md (REVERSE): New iterator.
32003 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
32004 (rev_op): New int_attribute.
32005 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
32006 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
32007 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
32008 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
32009 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
32010 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
32011 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
32012 Replace temporary __asm__ with __builtin_shuffle.
32013
32014 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
32015
32016 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
32017 mips64r5.
32018 * config/mips/mips-tables.opt: Regenerate.
32019 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
32020 to use mips_isa_rev rather than ISA_MIPS32R2.
32021 * config/mips/mips.h (ISA_MIPS32R3): New define.
32022 (ISA_MIPS32R5): New define.
32023 (ISA_MIPS64R3): New define.
32024 (ISA_MIPS64R5): New define.
32025 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
32026 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
32027 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
32028 and mips64r5.
32029 (MIPS_ISA_SYNCI_SPEC): Likewise.
32030 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
32031 (LINK_SPEC): Added mips32r3 and mips32r5.
32032 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
32033 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
32034 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
32035 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
32036 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
32037 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
32038 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
32039
32040 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
32041
32042 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
32043 options.
32044 * config/mips/mips.opt (mxpa): New option.
32045 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
32046 assembler.
32047
32048 2014-06-03 Martin Jambor <mjambor@suse.cz>
32049
32050 PR ipa/61160
32051 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
32052 thunks.
32053
32054 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
32055
32056 PR tree-optimization/61328
32057 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
32058 initialization from find_bswap_or_nop_1.
32059 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
32060 in source_expr2 before using the size value the function sets. Also
32061 make use of init_symbolic_number () in both the old place and
32062 find_bswap_or_nop_load () to avoid reading uninitialized memory when
32063 doing recursion in the GIMPLE_BINARY_RHS case.
32064
32065 2014-06-03 Richard Biener <rguenther@suse.de>
32066
32067 PR tree-optimization/61383
32068 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
32069 stmts can't trap.
32070
32071 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
32072
32073 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
32074 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
32075 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
32076 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
32077 in this file.
32078 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
32079 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
32080 * system.h: ...here and make it unconditional.
32081 * target.def (conditional_register_usage): Mention
32082 define_register_constraint instead of old-style constraint macros.
32083 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
32084 * doc/tm.texi: Regenerate.
32085 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
32086 protected by !USE_MD_CONSTRAINTS.
32087 * config/frv/frv.md: Remove quote from old version of documentation.
32088 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
32089 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
32090 CONST_DOUBLE_OK_FOR_LETTER.
32091 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
32092
32093 2014-06-02 Andrew Pinski <apinski@cavium.com>
32094
32095 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
32096 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
32097 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
32098 file whose name depends on -mabi= and -mbig-endian.
32099 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
32100 Handle LP64 better and handle ilp32 too.
32101 (MULTILIB_OPTIONS): Delete.
32102 (MULTILIB_DIRNAMES): Delete.
32103
32104 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
32105
32106 * expr.h: Remove prototypes of functions defined in builtins.c.
32107 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
32108 Remove prototypes of functions defined in builtins.c.
32109 * builtins.h: Update prototype list to include all exported functions.
32110 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
32111 no_c99_libc_has_function): Move to targhooks.c
32112 (build_string_literal, build_call_expr_loc_array,
32113 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
32114 to tree.c.
32115 (expand_builtin_object_size, fold_builtin_object_size): Make static.
32116 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
32117 no_c99_libc_has_function): Relocate from builtins.c.
32118 * tree.c: Include builtins.h.
32119 (build_call_expr_loc_array, build_call_expr_loc_vec,
32120 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
32121 from builtins.c.
32122 * fold-const.h (fold_fma): Move prototype to builtins.h.
32123 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
32124 * asan.c: Include builtins.h.
32125 * cfgexpand.c: Likewise.
32126 * convert.c: Likewise.
32127 * emit-rtl.c: Likewise.
32128 * except.c: Likewise.
32129 * expr.c: Likewise.
32130 * fold-const.c: Likewise.
32131 * gimple-fold.c: Likewise.
32132 * gimple-ssa-strength-reduction.c: Likewise.
32133 * gimplify.c: Likewise.
32134 * ipa-inline.c: Likewise.
32135 * ipa-prop.c: Likewise.
32136 * lto-streamer-out.c: Likewise.
32137 * stmt.c: Likewise.
32138 * tree-inline.c: Likewise.
32139 * tree-object-size.c: Likewise.
32140 * tree-sra.c: Likewise.
32141 * tree-ssa-ccp.c: Likewise.
32142 * tree-ssa-forwprop.c: Likewise.
32143 * tree-ssa-loop-ivcanon.c: Likewise.
32144 * tree-ssa-loop-ivopts.c: Likewise.
32145 * tree-ssa-math-opts.c: Likewise.
32146 * tree-ssa-reassoc.c: Likewise.
32147 * tree-ssa-threadedge.c: Likewise.
32148 * tree-streamer-in.c: Likewise.
32149 * tree-vect-data-refs.c: Likewise.
32150 * tree-vect-patterns.c: Likewise.
32151 * tree-vect-stmts.c: Likewise.
32152 * config/aarch64/aarch64.c: Likewise.
32153 * config/alpha/alpha.c: Likewise.
32154 * config/arc/arc.c: Likewise.
32155 * config/arm/arm.c: Likewise.
32156 * config/avr/avr.c: Likewise.
32157 * config/bfin/bfin.c: Likewise.
32158 * config/c6x/c6x.c: Likewise.
32159 * config/cr16/cr16.c: Likewise.
32160 * config/cris/cris.c: Likewise.
32161 * config/epiphany/epiphany.c: Likewise.
32162 * config/fr30/fr30.c: Likewise.
32163 * config/frv/frv.c: Likewise.
32164 * config/h8300/h8300.c: Likewise.
32165 * config/i386/i386.c: Likewise.
32166 * config/i386/winnt.c: Likewise.
32167 * config/ia64/ia64.c: Likewise.
32168 * config/iq2000/iq2000.c: Likewise.
32169 * config/lm32/lm32.c: Likewise.
32170 * config/m32c/m32c.c: Likewise.
32171 * config/m32r/m32r.c: Likewise.
32172 * config/m68k/m68k.c: Likewise.
32173 * config/mcore/mcore.c: Likewise.
32174 * config/mep/mep.c: Likewise.
32175 * config/microblaze/microblaze.c: Likewise.
32176 * config/mips/mips.c: Likewise.
32177 * config/mmix/mmix.c: Likewise.
32178 * config/mn10300/mn10300.c: Likewise.
32179 * config/moxie/moxie.c: Likewise.
32180 * config/msp430/msp430.c: Likewise.
32181 * config/nds32/nds32.c: Likewise.
32182 * config/pa/pa.c: Likewise.
32183 * config/pdp11/pdp11.c: Likewise.
32184 * config/picochip/picochip.c: Likewise.
32185 * config/rl78/rl78.c: Likewise.
32186 * config/rs6000/rs6000.c: Likewise.
32187 * config/rx/rx.c: Likewise.
32188 * config/s390/s390.c: Likewise.
32189 * config/score/score.c: Likewise.
32190 * config/sh/sh.c: Likewise.
32191 * config/sparc/sparc.c: Likewise.
32192 * config/spu/spu.c: Likewise.
32193 * config/stormy16/stormy16.c: Likewise.
32194 * config/tilegx/tilegx.c: Likewise.
32195 * config/tilepro/tilepro.c: Likewise.
32196 * config/v850/v850.c: Likewise.
32197 * config/vax/vax.c: Likewise.
32198 * config/xtensa/xtensa.c: Likewise.
32199
32200 2014-06-02 Jeff Law <law@redhat.com>
32201
32202 PR rtl-optimization/61094
32203 * ree.c (combine_reaching_defs): Do not reextend an insn if it
32204 was marked as do_no_reextend. If a copy is needed to eliminate
32205 an extension, then mark it as do_not_reextend.
32206
32207 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
32208
32209 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
32210
32211 2014-06-02 Richard Henderson <rth@redhat.com>
32212
32213 PR target/61336
32214 * config/alpha/alpha.c (print_operand_address): Allow symbolic
32215 addresses inside asms. Use output_operand_lossage instead of
32216 gcc_unreachable.
32217
32218 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
32219
32220 PR target/61239
32221 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
32222 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
32223
32224 2014-06-02 Tom de Vries <tom@codesourcery.com>
32225
32226 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
32227 case that x has VOIDmode.
32228
32229 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
32230
32231 * varasm.c (copy_constant): Delete function.
32232 (build_constant_desc): Don't call it.
32233
32234 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32235
32236 PR target/61154
32237 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
32238 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
32239 with immediate_operand.
32240
32241 2014-06-02 Andreas Schwab <schwab@suse.de>
32242
32243 * config/ia64/ia64.c
32244 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
32245 pending_data_specs first.
32246
32247 2014-06-02 Richard Biener <rguenther@suse.de>
32248
32249 PR tree-optimization/61378
32250 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
32251 valueized_anything.
32252
32253 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
32254
32255 * config/i386/constraints.md (Bw): Rename from 'w'.
32256 (Bz): Rename from 'z'.
32257 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
32258
32259 2014-06-01 Kai Tietz <ktietz@redhat.com>
32260
32261 PR target/61377
32262 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
32263 * config/i386/i386.md (sibcall_insn_operand): Use Bs
32264 instead of m constraint.
32265
32266 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
32267
32268 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
32269 a separate alternative where the scratch operand 2 is marked as
32270 early clobber.
32271
32272 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
32273
32274 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
32275 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
32276 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
32277 and __builtins_arm_get_fpscr.
32278 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
32279 __builtins_arm_get_fpscr.
32280 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
32281 __builtins_arm_ldfpscr.
32282 (arm_atomic_assign_expand_fenv): New function.
32283 * config/arm/vfp.md (set_fpscr): New pattern.
32284 (get_fpscr) : Likewise.
32285 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
32286 VUNSPEC_SET_FPSCR.
32287 * doc/extend.texi (AARCH64 Built-in Functions) : Document
32288 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
32289
32290 2014-05-30 Jakub Jelinek <jakub@redhat.com>
32291
32292 * asan.c (report_error_func): Add SLOW_P argument, use
32293 BUILT_IN_ASAN_*_N if set.
32294 (build_check_stmt): Likewise.
32295 (instrument_derefs): If T has insufficient alignment,
32296 force same handling as for odd sizes.
32297
32298 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
32299 BUILT_IN_ASAN_REPORT_STORE_N): New.
32300 * asan.c (struct asan_mem_ref): Change access_size type to
32301 HOST_WIDE_INT.
32302 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
32303 update_mem_ref_hash_table): Likewise.
32304 (asan_mem_ref_hasher::hash): Hash in a HWI.
32305 (report_error_func): Change size_in_bytes argument to HWI.
32306 Use *_N builtins if size_in_bytes is larger than 16 or not power of
32307 two.
32308 (build_shadow_mem_access): New function.
32309 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
32310 Handle size_in_bytes not power of two or larger than 16.
32311 (instrument_derefs): Don't give up if size_in_bytes is not
32312 power of two or is larger than 16.
32313
32314 2014-05-30 Kai Tietz <ktietz@redhat.com>
32315
32316 PR target/60104
32317 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
32318 for sibling-tail-calls.
32319 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
32320 to its use.
32321 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
32322 (sibcall_insn_operand): Add check for sibcall_memory_operand.
32323
32324 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
32325
32326 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
32327 * config/avr/avr-tables.opt: Regenerate.
32328 * config/avr/t-multilib: Regenerate.
32329 * doc/avr-mmcu.texi: Regenerate.
32330
32331 2014-05-30 Ian Lance Taylor <iant@google.com>
32332
32333 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
32334 target("sse").
32335
32336 2014-05-30 Tom de Vries <tom@codesourcery.com>
32337
32338 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
32339 Redefine as true.
32340
32341 2014-05-30 Tom de Vries <tom@codesourcery.com>
32342
32343 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
32344 * lra.c (initialize_lra_reg_info_element): Add init of
32345 actual_call_used_reg_set field.
32346 (lra): Call lra_create_live_ranges before lra_inheritance for
32347 -fuse-caller-save.
32348 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
32349 -fuse-caller-save.
32350 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
32351 instead of call_used_reg_set for -fuse-caller-save.
32352 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
32353
32354 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32355
32356 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
32357 to mov_imm.
32358 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
32359
32360 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
32361
32362 * ira.c (ira_get_dup_out_num): Check for output operands at
32363 the start of the loop. Handle cases where an included alternative
32364 follows an excluded one.
32365
32366 2014-05-29 Mike Stump <mikestump@comcast.net>
32367
32368 PR debug/61352
32369 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
32370 post ld passes when lto is used.
32371
32372 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
32373
32374 PR rtl-optimization/61325
32375 * lra-constraints.c (process_address): Rename to process_address_1.
32376 (process_address): New function.
32377
32378 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
32379
32380 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
32381 TYPES_BINOPV): New static data.
32382 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
32383 New builtin.
32384 * config/aarch64/aarch64-simd.md (aarch64_ext,
32385 aarch64_im_lane_boundsi): New patterns.
32386 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
32387 patterns for EXT.
32388 (aarch64_evpc_ext): New function.
32389
32390 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
32391
32392 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
32393 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
32394 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
32395 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
32396 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
32397
32398 2014-05-29 Tom de Vries <tom@codesourcery.com>
32399
32400 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
32401
32402 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
32403 Richard Sandiford <rdsandiford@googlemail.com>
32404
32405 * arm/iterators.md (shiftable_ops): New code iterator.
32406 (t2_binop0, arith_shift_insn): New code attributes.
32407 * arm/predicates.md (shift_nomul_operator): New predicate.
32408 * arm/arm.md (insn_enabled): Delete.
32409 (enabled): Remove insn_enabled test.
32410 (*arith_shiftsi): Delete. Replace with ...
32411 (*<arith_shift_insn>_multsi): ... new pattern.
32412 (*<arith_shift_insn>_shiftsi): ... new pattern.
32413 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
32414
32415 2014-05-29 Radovan Obradovic <robradovic@mips.com>
32416 Tom de Vries <tom@codesourcery.com>
32417
32418 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
32419 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
32420 clobber.
32421 (mips_split_call): Use POST_CALL_TMP_REG.
32422 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
32423
32424 2014-05-29 Tom de Vries <tom@codesourcery.com>
32425
32426 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
32427 with #ifdef STACK_REGS.
32428
32429 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
32430
32431 * varasm.c (get_variable_section): Walk aliases.
32432 (place_block_symbol): Walk aliases.
32433
32434 2014-05-28 Tom de Vries <tom@codesourcery.com>
32435
32436 Revert:
32437 2014-05-28 Tom de Vries <tom@codesourcery.com>
32438
32439 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
32440 * lra.c (initialize_lra_reg_info_element): Add init of
32441 actual_call_used_reg_set field.
32442 (lra): Call lra_create_live_ranges before lra_inheritance for
32443 -fuse-caller-save.
32444 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
32445 -fuse-caller-save.
32446 * lra-constraints.c (need_for_call_save_p): Use
32447 actual_call_used_reg_set instead of call_used_reg_set for
32448 -fuse-caller-save.
32449 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
32450
32451 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
32452
32453 * doc/md.texi: Document that the % constraint character must
32454 be at the beginning of the string.
32455 * genoutput.c (validate_insn_alternatives): Check that '=',
32456 '+' and '%' only appear at the beginning of a constraint.
32457 * ira.c (commutative_constraint_p): Delete.
32458 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
32459 at the start of the string.
32460 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
32461 duplicate '='s.
32462 * config/arm/neon.md (bicdi3_neon): Likewise.
32463 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
32464 (slt_si, sltu_si): Likewise.
32465 * config/vax/vax.md (sbcdi3): Likewise.
32466 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
32467 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
32468 (mul64): Move '%' to beginning of constraint.
32469 * config/arm/arm.md (*xordi3_insn): Likewise.
32470 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
32471 (xorsi3): Likewise.
32472
32473 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
32474
32475 * doc/md.texi: Document the restrictions on the "enabled" attribute.
32476
32477 2014-05-28 Jason Merrill <jason@redhat.com>
32478
32479 PR c++/47202
32480 * cgraph.h (symtab_node::get_comdat_group_id): New.
32481 * cgraphunit.c (analyze_functions): Call it.
32482 * symtab.c (dump_symtab_node): Likewise.
32483 * tree.c (decl_comdat_group_id): New.
32484 * tree.h: Declare it.
32485 * lto-streamer-out.c (write_symbol): Use it.
32486 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
32487
32488 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
32489
32490 PR bootstrap/PR61146
32491 * wide-int.cc: Do not include longlong.h when compiling with clang.
32492
32493 2014-05-28 Richard Biener <rguenther@suse.de>
32494
32495 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
32496 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
32497 (vrp_visit_assignment_or_call): Print less vertical space.
32498 (vrp_visit_stmt): Likewise.
32499 (vrp_visit_phi_node): Likewise. For a PHI argument with
32500 VR_VARYING range consider recording it as copy.
32501
32502 2014-05-28 Richard Biener <rguenther@suse.de>
32503
32504 Revert
32505 2014-05-28 Richard Biener <rguenther@suse.de>
32506
32507 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
32508
32509 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
32510
32511 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
32512 sufficiently aligned and an offset is used at the same time.
32513 (expand_expr_real_1): Likewise.
32514
32515 2014-05-28 Richard Biener <rguenther@suse.de>
32516
32517 PR middle-end/61045
32518 * fold-const.c (fold_comparison): When folding
32519 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
32520 the sign of the remaining constant operand stays the same.
32521
32522 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
32523
32524 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
32525 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
32526 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
32527 to the assembler.
32528 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
32529 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
32530 (m32bit-doubles) Likewise.
32531 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
32532 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
32533 option for RL78.
32534
32535 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32536
32537 * configure.ac ($gcc_cv_ld_clearcap): New test.
32538 * configure: Regenerate.
32539 * config.in: Regenerate.
32540 * config/sol2.opt (mclear-hwcap): New option.
32541 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
32542 * config/sol2-clearcap.map: Moved here from
32543 testsuite/gcc.target/i386/clearcap.map.
32544 * config/sol2-clearcapv2.map: Move here from
32545 gcc.target/i386/clearcapv2.map.
32546 * config/t-sol2 (install): Depend on install-clearcap-map.
32547 (install-clearcap-map): New target.
32548 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
32549 -mclear-hwcap.
32550
32551 2014-05-28 Richard Biener <rguenther@suse.de>
32552
32553 * hwint.h (*_HALF_WIDE_INT*): Move to ...
32554 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
32555 ... here and remove the rest.
32556 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
32557
32558 2014-05-28 Richard Biener <rguenther@suse.de>
32559
32560 PR tree-optimization/61335
32561 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
32562 new range fails, drop to varying.
32563
32564 2014-05-28 Olivier Hainque <hainque@adacore.com>
32565
32566 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
32567 (CPP_SPEC): Add entry for -mcpu=8548.
32568 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
32569 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
32570
32571 2014-05-28 Tom de Vries <tom@codesourcery.com>
32572
32573 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
32574 * lra.c (initialize_lra_reg_info_element): Add init of
32575 actual_call_used_reg_set field.
32576 (lra): Call lra_create_live_ranges before lra_inheritance for
32577 -fuse-caller-save.
32578 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
32579 -fuse-caller-save.
32580 * lra-constraints.c (need_for_call_save_p): Use
32581 actual_call_used_reg_set instead of call_used_reg_set for
32582 -fuse-caller-save.
32583 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
32584
32585 2014-05-28 Radovan Obradovic <robradovic@mips.com>
32586 Tom de Vries <tom@codesourcery.com>
32587
32588 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
32589 to gccoptlist.
32590 (@item -fuse-caller-save): New item.
32591
32592 2014-05-28 Radovan Obradovic <robradovic@mips.com>
32593 Tom de Vries <tom@codesourcery.com>
32594
32595 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
32596 OPT_fuse_caller_save.
32597
32598 2014-05-28 Radovan Obradovic <robradovic@mips.com>
32599 Tom de Vries <tom@codesourcery.com>
32600
32601 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
32602 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
32603 get_call_reg_set_usage.
32604 * resource.c (mark_set_resources, mark_target_live_regs): Use
32605 get_call_reg_set_usage.
32606 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
32607 field.
32608 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
32609 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
32610 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
32611 * ira-build.c (ira_create_allocno): Init
32612 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
32613 (create_cap_allocno, propagate_allocno_info)
32614 (propagate_some_info_from_allocno)
32615 (copy_info_to_removed_store_destinations): Handle
32616 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
32617 * ira-costs.c (ira_tune_allocno_costs): Use
32618 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
32619
32620 2014-05-28 Radovan Obradovic <robradovic@mips.com>
32621 Tom de Vries <tom@codesourcery.com>
32622
32623 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
32624 and function_used_regs_valid fields.
32625 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
32626 find_all_hard_reg_sets.
32627 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
32628 (get_call_reg_set_usage): New function.
32629 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
32630 * regs.h (get_call_reg_set_usage): Declare.
32631
32632 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
32633
32634 PR libgcc/61152
32635 * config/dbx.h (License): Add Runtime Library Exception.
32636 * config/newlib-stdint.h (License): Same.
32637 * config/rtems.h (License): Same
32638 * config/initfini-array.h (License): Same
32639 * config/v850/v850.h (License): Same.
32640 * config/v850/v850-opts.h (License): Same
32641 * config/v850/rtems.h (License): Same.
32642
32643 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
32644
32645 PR target/61044
32646 * doc/extend.texi (Local Labels): Note that label differences are
32647 not supported for AVR.
32648
32649 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
32650 Olivier Hainque <hainque@adacore.com>
32651
32652 * rtl.h (set_for_reg_notes): Declare.
32653 * emit-rtl.c (set_for_reg_notes): New function.
32654 (set_unique_reg_note): Use it.
32655 * optabs.c (add_equal_note): Likewise
32656
32657 2014-05-27 Andrew Pinski <apinski@cavium.com>
32658
32659 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
32660 Use <w> for the register in assembly template.
32661 (stack_protect_test): Use the mode of operands[0] for the result.
32662 (stack_protect_test_<mode>): Use <w> for the register
32663 in assembly template.
32664
32665 2014-05-27 DJ Delorie <dj@redhat.com>
32666
32667 * config/rx/rx.c (add_vector_labels): New.
32668 (rx_output_function_prologue): Call it.
32669 (rx_handle_func_attribute): Don't require empty arguments.
32670 (rx_handle_vector_attribute): New.
32671 (rx_attribute_table): Add "vector" attribute.
32672 * doc/extend.texi (interrupt, vector): Document new/changed
32673 RX-specific attributes.
32674
32675 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
32676
32677 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
32678
32679 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
32680 predicate to detect a negative quotient.
32681
32682 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
32683
32684 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
32685 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
32686 Add X - Y CMP 0 to X CMP Y transformation.
32687 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
32688
32689 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
32690
32691 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
32692 before printing.
32693
32694 2014-05-27 Steve Ellcey <sellcey@mips.com>
32695
32696 * config/mips/mips.c: Add include of cgraph.h.
32697
32698 2014-05-27 Richard Biener <rguenther@suse.de>
32699
32700 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
32701
32702 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
32703
32704 PR libgcc/61152
32705 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
32706 * config/arm/arm-cores.def (License): Same.
32707 * config/arm/arm-opts.h (License): Same.
32708 * config/arm/aout.h (License): Same.
32709 * config/arm/bpabi.h (License): Same.
32710 * config/arm/elf.h (License): Same.
32711 * config/arm/linux-elf.h (License): Same.
32712 * config/arm/linux-gas.h (License): Same.
32713 * config/arm/netbsd-elf.h (License): Same.
32714 * config/arm/uclinux-eabi.h (License): Same.
32715 * config/arm/uclinux-elf.h (License): Same.
32716 * config/arm/vxworks.h (License): Same.
32717
32718 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32719
32720 * config/arm/neon.md (neon_bswap<mode>): New pattern.
32721 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
32722 (arm_init_neon_builtins): Handle NEON_BSWAP.
32723 Define required type nodes.
32724 (arm_expand_neon_builtin): Handle NEON_BSWAP.
32725 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
32726 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
32727 * config/arm/iterators.md (VDQHSD): New mode iterator.
32728
32729 2014-05-27 Richard Biener <rguenther@suse.de>
32730
32731 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
32732 Try using literal operands when comparing value-ranges failed.
32733
32734 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
32735
32736 * ira.c (commutative_operand): Adjust for change to recog_data.
32737 [Missing from previous commit.]
32738
32739 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
32740
32741 * system.h (TEST_BIT): New macro.
32742 * recog.h (alternative_mask): New type.
32743 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
32744 (recog_data_d): Replace alternative_enabled_p array with
32745 enabled_alternatives.
32746 (target_recog): New structure.
32747 (default_target_recog, this_target_recog): Declare.
32748 (get_enabled_alternatives, recog_init): Likewise.
32749 * recog.c (default_target_recog, this_target_recog): New variables.
32750 (get_enabled_alternatives): New function.
32751 (extract_insn): Use it.
32752 (recog_init): New function.
32753 (preprocess_constraints, constrain_operands): Adjust for change to
32754 recog_data.
32755 * postreload.c (reload_cse_simplify_operands): Likewise.
32756 * reload.c (find_reloads): Likewise.
32757 * ira-costs.c (record_reg_classes): Likewise.
32758 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
32759 all alternatives after a disabled one would be skipped.
32760 (ira_implicitly_set_insn_hard_regs): Likewise.
32761 * ira.c (ira_setup_alts): Adjust for change to recog_data.
32762 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
32763 with enabled_alternatives.
32764 * lra.c (free_insn_recog_data): Update accordingly.
32765 (lra_update_insn_recog_data): Likewise.
32766 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
32767 * lra-constraints.c (process_alt_operands): Likewise. Handle
32768 only_alternative as part of the enabled mask.
32769 * target-globals.h (this_target_recog): Declare.
32770 (target_globals): Add a recog field.
32771 (restore_target_globals): Restore this_target_recog.
32772 * target-globals.c: Include recog.h.
32773 (default_target_globals): Initialize recog field.
32774 (save_target_globals): Likewise.
32775 * reginfo.c (reinit_regs): Call recog_init.
32776 * toplev.c (backend_init_target): Likewise.
32777
32778 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
32779
32780 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
32781 rather than any named insn's code.
32782
32783 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
32784
32785 PR libgcc/61152
32786 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
32787 * config/arm/arm-cores.def (License): Same.
32788
32789 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
32790
32791 * tree.h (decl_comdat_group): Declare.
32792 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
32793 * tree.c (decl_comdat_group): Here.
32794
32795 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
32796
32797 PR rtl-optimization/61222
32798 * combine.c (simplify_shift_const_1): When moving a PLUS outside
32799 the shift, truncate the PLUS operand to the result mode.
32800
32801 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
32802
32803 PR target/61271
32804 * config/i386/i386.c (ix86_rtx_costs)
32805 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
32806 Fix condition.
32807
32808 2014-05-26 Martin Jambor <mjambor@suse.cz>
32809
32810 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
32811 subreg uses.
32812
32813 2014-05-26 Richard Biener <rguenther@suse.de>
32814
32815 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
32816 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
32817 Provide specializations.
32818 (wi::int_traits <HOST_WIDE_INT>,
32819 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
32820
32821 2014-05-26 Alan Modra <amodra@gmail.com>
32822
32823 PR target/61098
32824 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
32825 params and return a bool. Remove dead code. Update comment.
32826 Assert we have a const_int source. Remove bogus code from
32827 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
32828 handling of constants > 2G and reg_equal note, from..
32829 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
32830 return value. Update comment. If we can, use a new pseudo
32831 for intermediate calculations.
32832 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
32833 prototype.
32834 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
32835 call to rs6000_emit_set_const in splitter.
32836 (movdi_internal64+2, +3): Likewise.
32837
32838 2014-05-26 Richard Biener <rguenther@suse.de>
32839
32840 * system.h: Define __STDC_FORMAT_MACROS before
32841 including inttypes.h.
32842 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
32843 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
32844 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
32845 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
32846 HOST_WIDEST_INT_C): Remove.
32847 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
32848 if C99 inttypes.h is not available.
32849 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
32850 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
32851 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
32852 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
32853 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
32854 (struct output_info): Likewise.
32855 (print_statistics): Adjust.
32856 (dump_bitmap_statistics): Likewise.
32857 * bt-load.c (migrate_btr_defs): Print with PRId64.
32858 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
32859 (MAX_SAFE_MULTIPLIER): Adjust.
32860 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
32861 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
32862 dump_cgraph_node): Likewise.
32863 * final.c (dump_basic_block_info): Likewise.
32864 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
32865 * gcov.c (format_gcov): Likewise.
32866 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
32867 for calculation.
32868 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
32869 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
32870 (inline_small_functions, dump_overall_stats, dump_inline_stats):
32871 Use PRId64 for dumping.
32872 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
32873 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
32874 (add_allocno_hard_regs): Adjust.
32875 * loop-doloop.c (doloop_modify): Print using PRId64.
32876 * loop-iv.c (inverse): Compute in uint64_t.
32877 (determine_max_iter, iv_number_of_iterations): Likewise.
32878 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
32879 Print using PRId64.
32880 * lto-streamer-out.c (write_symbol): Use uint64_t.
32881 * mcf.c (CAP_INFINITY): Use int64_t maximum.
32882 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
32883 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
32884 * modulo-sched.c (const_iteration_count): Use int64_t.
32885 (sms_schedule): Dump using PRId64.
32886 * predict.c (dump_prediction): Likewise.
32887 * pretty-print.h (pp_widest_integer): Remove.
32888 * profile.c (get_working_sets, is_edge_inconsistent,
32889 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
32890 * tree-pretty-print.c (pp_double_int): Remove case handling
32891 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
32892 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
32893 and adjust users.
32894 (pass_optimize_bswap::execute): Remove restriction on hosts.
32895 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
32896 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
32897 * tree.c (widest_int_cst_value): Remove.
32898 * tree.h (widest_int_cst_value): Likewise.
32899 * value-prof.c (dump_histogram_value): Print using PRId64.
32900 * gengtype.c (main): Also inject int64_t.
32901 * ggc-page.c (struct max_alignment): Use int64_t.
32902 * alloc-pool.c (struct allocation_object_def): Likewise.
32903 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
32904 for computation.
32905 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
32906 * doc/tm.texi: Regenerated.
32907 * gengtype-lex.l (IWORD): Handle [u]int64_t.
32908 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
32909 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
32910 mmix_output_register_setting): Use [u]int64_t in prototypes.
32911 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
32912 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
32913 mmix_output_octa, mmix_output_shifted_value): Adjust.
32914 (mmix_intval): Adjust. Remove unreachable case.
32915 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
32916
32917 2014-05-26 Richard Biener <rguenther@suse.de>
32918
32919 * configure.ac: Drop __int64 type check. Insist that we
32920 found uint64_t and int64_t.
32921 * hwint.h (HOST_BITS_PER___INT64): Remove.
32922 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
32923 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
32924 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
32925 (HOST_WIDEST_FAST_INT): Remove __int64 case.
32926 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
32927 for dst_q_src_df_rms_cdt.
32928 * configure: Regenerate.
32929 * config.in: Likewise.
32930
32931 2014-05-26 Michael Tautschnig <mt@debian.org>
32932
32933 PR target/61249
32934 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
32935 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
32936
32937 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32938
32939 PR rtl-optimization/61278
32940 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
32941
32942 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32943
32944 PR rtl-optimization/61220
32945 Part of PR rtl-optimization/61225
32946 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
32947 insn; skip split_edge for a block with only one successor.
32948
32949 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
32950
32951 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
32952 for variables.
32953
32954 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
32955
32956 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
32957 (update_vtable_references): New function.
32958 (function_and_variable_visibility): Rewrite also vtable initializers.
32959 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
32960
32961 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
32962
32963 * ggc.h (ggc_grow): New function.
32964 * ggc-none.c (ggc_grow): New function.
32965 * ggc-page.c (ggc_grow): Likewise.
32966
32967 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
32968
32969 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
32970 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
32971 comdat_can_be_unshared_p, cgraph_externally_visible_p,
32972 varpool_externally_visible_p, can_replace_by_local_alias,
32973 update_visibility_by_resolution_info, function_and_variable_visibility,
32974 pass_data_ipa_function_and_variable_visibility,
32975 make_pass_ipa_function_and_variable_visibility,
32976 whole_program_function_and_variable_visibility,
32977 pass_data_ipa_whole_program_visibility,
32978 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
32979 * cgraph.h (cgraph_local_node_p): Declare.
32980 * ipa-visibility.c: New file.
32981 * Makefile.in (OBJS): Add ipa-visiblity.o
32982
32983 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
32984
32985 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
32986 that var decl is available.
32987
32988 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
32989
32990 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
32991 symtab_node pointer.
32992 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
32993 (find_decls_types_r): Do not walk COMDAT_GROUP.
32994 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
32995 * varasm.c (make_decl_one_only): Use set_comdat_group;
32996 create node if needed.
32997 * ipa-inline-transform.c (save_inline_function_body): Update
32998 way we decl->symtab mapping.
32999 * symtab.c (symtab_hash, hash_node, eq_node
33000 symtab_insert_node_to_hashtable): Remove.
33001 (symtab_register_node): Update.
33002 (symtab_unregister_node): Update.
33003 (symtab_get_node): Reimplement as inline function.
33004 (symtab_add_to_same_comdat_group): Update.
33005 (symtab_dissolve_same_comdat_group_list): Update.
33006 (dump_symtab_base): Update.
33007 (verify_symtab_base): Update.
33008 (symtab_make_decl_local): Update.
33009 (fixup_same_cpp_alias_visibility): Update.
33010 (symtab_nonoverwritable_alias): Update.
33011 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
33012 * ipa.c (update_visibility_by_resolution_info): UPdate.
33013 * bb-reorder.c: Include cgraph.h
33014 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
33015 with comdat groups.
33016 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
33017 * cgraph.c (cgraph_get_create_node): Update.
33018 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
33019 and comdat_group_.
33020 (symtab_get_node): Make inline.
33021 (symtab_insert_node_to_hashtable): Remove.
33022 (symtab_can_be_discarded): Update.
33023 (decl_comdat_group): New function.
33024 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
33025 Update.
33026 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
33027 comdat group name.
33028 (read_comdat_group): New function.
33029 (input_node, input_varpool_node): Use it.
33030 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
33031 comdat groups.
33032 * mips.c (mips_start_unique_function): Likewise.
33033 (ix86_code_end): Likewise.
33034 (rs6000_code_end): Likweise.
33035 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
33036
33037 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
33038
33039 * gengtype-state.c (fatal_reading_state): Bring offline.
33040 * optabs.c (widening_optab_handler): Bring offline.
33041 * optabs.h (widening_optab_handler): Likewise.
33042 * final.c (get_attr_length_1): Likewise.
33043
33044 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
33045
33046 * sched-int.h (sd_iterator_cond): Manually tail recurse.
33047
33048 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33049
33050 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
33051 (ppc440-compare): Include shift with dot.
33052 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
33053 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
33054 without dot.
33055 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
33056 without dot.
33057 (e6500_sfx2): Include it.
33058 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
33059 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
33060 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
33061 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
33062 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
33063 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
33064 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
33065 *lshiftrt_internal1le, *lshiftrt_internal1be,
33066 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
33067 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
33068 *rotldi3_internal10le, *rotldi3_internal10be,
33069 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
33070 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
33071 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
33072 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
33073 define_insns): Use type "shift" in the appropriate alternatives.
33074
33075 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33076
33077 * config/rs6000/rs6000.md (type): Add "logical". Delete
33078 "fast_compare".
33079 (dot): Adjust comment.
33080 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
33081 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
33082 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
33083 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
33084 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
33085 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
33086 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
33087 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
33088
33089 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
33090 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
33091 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
33092 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
33093 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
33094 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
33095 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
33096 * config/rs6000/8540.md (ppc8540_su): Adjust.
33097 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
33098 cell-cmp-microcoded): Adjust.
33099 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
33100 * config/rs6000/e500mc.md (e500mc_su): Adjust.
33101 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
33102 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
33103 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
33104 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
33105 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
33106 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
33107 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
33108 Adjust.
33109 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
33110 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
33111 Adjust. Adjust comment.
33112 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
33113 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
33114
33115 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33116
33117 * config/rs6000/rs6000.md (type): Add "add".
33118 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
33119 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
33120 define_insns): Use it.
33121 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
33122
33123 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
33124 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
33125 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
33126 * config/rs6000/601.md (ppc601-integer): Adjust.
33127 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
33128 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
33129 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
33130 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
33131 * config/rs6000/8540.md (ppc8540_su): Adjust.
33132 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
33133 cell-cmp-microcoded): Adjust.
33134 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
33135 * config/rs6000/e500mc.md (e500mc_su): Adjust.
33136 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
33137 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
33138 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
33139 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
33140 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
33141 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
33142 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
33143 Adjust.
33144 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
33145 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
33146 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
33147 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
33148
33149 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33150
33151 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
33152 "delayed_compare", "var_delayed_compare".
33153 (var_shift): New attribute.
33154 (cell_micro): Adjust.
33155 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
33156 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
33157 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
33158 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
33159 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
33160 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
33161 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
33162 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
33163 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
33164 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
33165 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
33166 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
33167 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
33168 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
33169 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
33170 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
33171 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
33172 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
33173 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
33174 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
33175 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
33176 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
33177 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
33178 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
33179 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
33180
33181 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
33182 * config/rs6000/440.md (ppc440-integer): Adjust.
33183 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
33184 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
33185 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
33186 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
33187 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
33188 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
33189 * config/rs6000/8540.md (ppc8540_su): Adjust.
33190 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
33191 cell-cmp-microcoded): Adjust.
33192 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
33193 * config/rs6000/e500mc.md (e500mc_su): Adjust.
33194 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
33195 e500mc64_delayed): Adjust.
33196 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
33197 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
33198 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
33199 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
33200 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
33201 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
33202 power6-delayed-compare, power6-var-delayed-compare): Adjust.
33203 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
33204 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
33205 Adjust comment.
33206 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
33207 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
33208
33209 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33210
33211 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
33212 (bits): New mode_attr.
33213 (idiv_ldiv): Delete mode_attr.
33214 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
33215 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
33216 rs6000_adjust_priority, is_nonpipeline_insn,
33217 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
33218
33219 * config/rs6000/40x.md (ppc403-idiv): Adjust.
33220 * config/rs6000/440.md (ppc440-idiv): Adjust.
33221 * config/rs6000/476.md (ppc476-idiv): Adjust.
33222 * config/rs6000/601.md (ppc601-idiv): Adjust.
33223 * config/rs6000/603.md (ppc603-idiv): Adjust.
33224 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
33225 ppc620-ldiv): Adjust.
33226 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
33227 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
33228 * config/rs6000/8540.md (ppc8540_divide): Adjust.
33229 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
33230 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
33231 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
33232 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
33233 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
33234 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
33235 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
33236 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
33237 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
33238 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
33239 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
33240 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
33241 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
33242 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
33243 * config/rs6000/titan.md (titan_fxu_div): Adjust.
33244
33245 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33246
33247 * config/rs6000/rs6000.md (type): Delete "insert_word",
33248 "insert_dword". Add "insert".
33249 (size): Update comment.
33250 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
33251 insn_must_be_first_in_group): Adjust.
33252 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
33253 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
33254 *insvsi_internal6, insvdi_internal): Adjust.
33255
33256 * config/rs6000/40x.md (ppc403-integer): Adjust.
33257 * config/rs6000/440.md (ppc440-integer): Adjust.
33258 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
33259 * config/rs6000/601.md (ppc601-integer): Adjust.
33260 * config/rs6000/603.md (ppc603-integer): Adjust.
33261 * config/rs6000/6xx.md (ppc604-integer): Adjust.
33262 * config/rs6000/7450.md (ppc7450-integer): Adjust.
33263 * config/rs6000/7xx.md (ppc750-integer): Adjust.
33264 * config/rs6000/8540.md (ppc8540_su): Adjust.
33265 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
33266 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
33267 * config/rs6000/e500mc.md (e500mc_su): Adjust.
33268 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
33269 * config/rs6000/e5500.md (e5500_sfx): Adjust.
33270 * config/rs6000/e6500.md (e6500_sfx): Adjust.
33271 * config/rs6000/mpc.md (mpccore-integer): Adjust.
33272 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
33273 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
33274 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
33275 * config/rs6000/power7.md (power7-integer): Adjust.
33276 * config/rs6000/power8.md (power8-1cyc): Adjust.
33277 * config/rs6000/rs64.md (rs64a-integer): Adjust.
33278 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
33279
33280 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33281
33282 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
33283 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
33284 (size): New attribute.
33285 (dot): New attribute.
33286 (cell_micro): Adjust.
33287 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
33288 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
33289 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
33290 umuldi3_highpart): Adjust.
33291 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
33292 rs6000_adjust_priority, is_nonpipeline_insn,
33293 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
33294
33295 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
33296 ppc405-imul3): Adjust.
33297 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
33298 * config/rs6000/476.md (ppc476-imul): Adjust.
33299 * config/rs6000/601.md (ppc601-imul): Adjust.
33300 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
33301 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
33302 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
33303 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
33304 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
33305 Adjust.
33306 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
33307 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
33308 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
33309 cell-imul): Adjust.
33310 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
33311 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
33312 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
33313 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
33314 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
33315 * config/rs6000/mpc.md (mpccore-imul): Adjust.
33316 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
33317 power4-lmul, power4-imul, power4-imul3): Adjust.
33318 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
33319 power5-lmul, power5-imul, power5-imul3): Adjust.
33320 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
33321 power6-lmul, power6-imul, power6-imul3): Adjust.
33322 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
33323 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
33324
33325 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
33326 rs64a-lmul): Adjust.
33327 * config/rs6000/titan.md (titan_imul): Adjust.
33328
33329 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33330
33331 * config/rs6000/rs6000.md (type): Add new value "halfmul".
33332 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
33333 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
33334 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
33335 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
33336 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
33337 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
33338 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
33339 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
33340 * config/rs6000/titan.md: Delete nonsensical comment.
33341 (titan_imul): Add type imul3.
33342 (titan_mulhw): Remove type imul3; add type halfmul.
33343
33344 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
33345
33346 * config/rs6000/rs6000.md (type): Reorder, reformat.
33347
33348 2014-05-23 Martin Jambor <mjambor@suse.cz>
33349
33350 PR tree-optimization/53787
33351 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
33352 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
33353 analysis_done, update all uses.
33354 * ipa-prop.c: Include domwalk.h
33355 (param_analysis_info): Removed.
33356 (param_aa_status): New type.
33357 (ipa_bb_info): Likewise.
33358 (func_body_info): Likewise.
33359 (ipa_get_bb_info): New function.
33360 (aa_overwalked): Likewise.
33361 (find_dominating_aa_status): Likewise.
33362 (parm_bb_aa_status_for_bb): Likewise.
33363 (parm_preserved_before_stmt_p): Changed to use new param AA info.
33364 (load_from_unmodified_param): Accept func_body_info as a parameter
33365 instead of parms_ainfo.
33366 (parm_ref_data_preserved_p): Changed to use new param AA info.
33367 (parm_ref_data_pass_through_p): Likewise.
33368 (ipa_load_from_parm_agg_1): Likewise. Update callers.
33369 (compute_complex_assign_jump_func): Changed to use new param AA info.
33370 (compute_complex_ancestor_jump_func): Likewise.
33371 (ipa_compute_jump_functions_for_edge): Likewise.
33372 (ipa_compute_jump_functions): Removed.
33373 (ipa_compute_jump_functions_for_bb): New function.
33374 (ipa_analyze_indirect_call_uses): Likewise, moved variable
33375 declarations down.
33376 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
33377 and info, moved variable declarations down.
33378 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
33379 node and info.
33380 (ipa_analyze_stmt_uses): Likewise.
33381 (ipa_analyze_params_uses): Removed.
33382 (ipa_analyze_params_uses_in_bb): New function.
33383 (ipa_analyze_controlled_uses): Likewise.
33384 (free_ipa_bb_info): Likewise.
33385 (analysis_dom_walker): New class.
33386 (ipa_analyze_node): Handle node-specific forbidden analysis,
33387 initialize and free func_body_info, use dominator walker.
33388 (ipcp_modif_dom_walker): New class.
33389 (ipcp_transform_function): Create and free func_body_info, use
33390 ipcp_modif_dom_walker, moved a lot of functionality there.
33391
33392 2014-05-23 Marek Polacek <polacek@redhat.com>
33393 Jakub Jelinek <jakub@redhat.com>
33394
33395 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
33396 * gcc.c (sanitize_spec_function): Likewise.
33397 * convert.c (convert_to_integer): Include "ubsan.h". Add
33398 floating-point to integer instrumentation.
33399 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
33400 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
33401 SANITIZE_NONDEFAULT.
33402 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
33403 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
33404 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
33405 * ubsan.c: Include "realmpfr.h" and "dfp.h".
33406 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
33407 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
33408 float/double/long double.
33409 (ubsan_instrument_float_cast): New function.
33410 * ubsan.h (ubsan_instrument_float_cast): Declare.
33411
33412 2014-05-23 Jiong Wang <jiong.wang@arm.com>
33413
33414 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
33415 predicate.
33416 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
33417 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
33418 Adjust for tailcalling through registers.
33419 * config/aarch64/aarch64.h (enum reg_class): New caller save
33420 register class.
33421 (REG_CLASS_NAMES): Likewise.
33422 (REG_CLASS_CONTENTS): Likewise.
33423 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
33424 Allow tailcalling without decls.
33425
33426 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
33427
33428 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
33429 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
33430
33431 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
33432 gsi, and variables v_* to v*.
33433
33434 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
33435
33436 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
33437
33438 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
33439
33440 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
33441 * omp-low.c: Update accordingly.
33442
33443 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
33444 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
33445 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
33446 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
33447 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
33448 GF_OMP_TARGET_KIND_UPDATE.
33449
33450 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
33451 Explicitly enumerate the expected region types.
33452
33453 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
33454
33455 PR other/56955
33456 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
33457 documentation; the old documentation didn't clearly state the
33458 constraints on the contents of the pointed-to storage.
33459
33460 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33461
33462 Fix bootstrap error on ia64
33463 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
33464 Return default value.
33465
33466 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
33467
33468 PR tree-optimization/54733
33469 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
33470 (CMPNOP): Define.
33471 (find_bswap_or_nop_load): New.
33472 (find_bswap_1): Renamed to ...
33473 (find_bswap_or_nop_1): This. Also add support for memory source.
33474 (find_bswap): Renamed to ...
33475 (find_bswap_or_nop): This. Also add support for memory source and
33476 detection of bitwise operations equivalent to load in target
33477 endianness.
33478 (execute_optimize_bswap): Likewise. Also move its leading comment back
33479 in place and split statement transformation into ...
33480 (bswap_replace): This.
33481
33482 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
33483
33484 PR rtl-optimization/61215
33485 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
33486 simplify_gen_subreg until final substitution.
33487
33488 2014-05-23 Alan Modra <amodra@gmail.com>
33489
33490 PR target/61231
33491 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
33492 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
33493 Use "Y" constraint rather than "m".
33494
33495 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
33496
33497 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
33498 define.
33499 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
33500 New function declaration.
33501 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
33502 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
33503 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
33504 (aarch64_init_builtins) : Initialize builtins
33505 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
33506 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
33507 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
33508 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
33509 and __builtins_aarch64_set_fpsr.
33510 (aarch64_atomic_assign_expand_fenv): New function.
33511 * config/aarch64/aarch64.md (set_fpcr): New pattern.
33512 (get_fpcr) : Likewise.
33513 (set_fpsr) : Likewise.
33514 (get_fpsr) : Likewise.
33515 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
33516 and UNSPECV_SET_FPSR.
33517 * doc/extend.texi (AARCH64 Built-in Functions) : Document
33518 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
33519 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
33520
33521 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
33522
33523 PR rtl-optimization/60969
33524 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
33525 constraints. Set up mem cost for NO_REGS case.
33526
33527 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
33528
33529 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
33530
33531 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
33532
33533 * config/darwin.c: Include "lto-section-names.h".
33534 (LTO_SEGMENT_NAME): Don't define.
33535 * config/i386/winnt.c: Include "lto-section-names.h".
33536 * lto-streamer.c: Include "lto-section-names.h".
33537 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
33538 * lto-wrapper.c: Include "lto-section-names.h".
33539 (LTO_SECTION_NAME_PREFIX): Don't define.
33540 * lto-section-names.h: New file.
33541 * cgraphunit.c: Include "lto-section-names.h".
33542
33543 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
33544
33545 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
33546
33547 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
33548
33549 PR target/61208
33550 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
33551
33552 2014-05-22 Nick Clifton <nickc@redhat.com>
33553
33554 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
33555
33556 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
33557
33558 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
33559 -> (T)A transformation to integer types.
33560
33561 2014-05-22 Teresa Johnson <tejohnson@google.com>
33562
33563 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
33564 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
33565 (gcov_rewrite): Use gcov_nonruntime_assert.
33566 (gcov_open): Ditto.
33567 (gcov_write_words): Ditto.
33568 (gcov_write_length): Ditto.
33569 (gcov_read_words): Use gcov_nonruntime_assert, and remove
33570 gcc_assert from IN_LIBGCOV code.
33571 (gcov_read_summary): Use gcov_error to flag profile corruption.
33572 (gcov_sync): Use gcov_nonruntime_assert.
33573 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
33574 (gcov_histo_index): Use gcov_nonruntime_assert.
33575 (static void gcov_histogram_merge): Ditto.
33576 (compute_working_sets): Ditto.
33577 * gcov-io.h (gcov_nonruntime_assert): Define.
33578 (gcov_error): Define for !IN_LIBGCOV
33579
33580 2014-05-22 Richard Biener <rguenther@suse.de>
33581
33582 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
33583 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
33584 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
33585 and deallocation site.
33586 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33587 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
33588 passing through the incoming points-to set.
33589 (handle_lhs_call): Use flags argument instead of recomputing it.
33590 (find_func_aliases_for_call): Call handle_lhs_call with proper
33591 call return flags.
33592
33593 2014-05-22 Jakub Jelinek <jakub@redhat.com>
33594
33595 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
33596 all padding bits in REAL_VALUE_TYPE are cleared.
33597
33598 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33599
33600 Cleanup and improve multipass_dfa_lookahead_guard
33601 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
33602 (core2i7_first_cycle_multipass_begin,)
33603 (core2i7_first_cycle_multipass_issue,)
33604 (core2i7_first_cycle_multipass_backtrack): Update signature.
33605 * config/ia64/ia64.c
33606 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
33607 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
33608 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
33609 hook definition.
33610 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
33611 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
33612 values.
33613 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
33614 return values.
33615 * doc/tm.texi: Regenerate.
33616 * doc/tm.texi.in
33617 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
33618 * haifa-sched.c (ready_try): Make signed to allow negative values.
33619 (rebug_ready_list_1): Update.
33620 (choose_ready): Simplify.
33621 (sched_extend_ready_list): Update.
33622
33623 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33624
33625 Remove IA64 speculation tweaking flags
33626 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
33627 speculation tuning flags.
33628 (msched-prefer-non-data-spec-insns,)
33629 (msched-prefer-non-control-spec-insns): Obsolete options.
33630 * haifa-sched.c (choose_ready): Remove handling of
33631 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
33632 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
33633 and PREFER_NON_DATA_SPEC.
33634 * sel-sched.c (process_spec_exprs): Remove handling of
33635 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
33636
33637 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33638
33639 Improve scheduling debug output
33640 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
33641 (advance_one_cycle): Update.
33642 (schedule_insn, queue_to_ready): Add debug printouts.
33643 (debug_ready_list_1): New static function.
33644 (debug_ready_list): Update.
33645 (max_issue): Add debug printouts.
33646 (dump_insn_stream): New static function.
33647 (schedule_block): Use it. Also better indent printouts.
33648
33649 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33650
33651 Fix sched_insn debug counter
33652 * haifa-sched.c (schedule_insn): Update.
33653 (struct haifa_saved_data): Add nonscheduled_insns_begin.
33654 (save_backtrack_point, restore_backtrack_point): Update.
33655 (first_nonscheduled_insn): New static function.
33656 (queue_to_ready, choose_ready): Use it.
33657 (schedule_block): Init nonscheduled_insns_begin.
33658 (sched_emit_insn): Update.
33659
33660
33661 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
33662
33663 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
33664 to GENERAL_REGS.
33665 (aarch64_secondary_reload) : LikeWise.
33666 (aarch64_class_max_nregs) : Remove CORE_REGS.
33667 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
33668 (REG_CLASS_NAMES) : Likewise.
33669 (REG_CLASS_CONTENTS) : LikeWise.
33670 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
33671
33672 2014-05-21 Guozhi Wei <carrot@google.com>
33673
33674 PR target/61202
33675 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
33676 constraint.
33677 (vqdmulhq_n_s16): Likewise.
33678
33679 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
33680
33681 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
33682
33683 2014-05-21 Marek Polacek <polacek@redhat.com>
33684
33685 PR sanitizer/61272
33686 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
33687
33688 2014-05-21 Martin Jambor <mjambor@suse.cz>
33689
33690 * doc/invoke.texi (Optimize Options): Document parameters
33691 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
33692 ipa-cp-array-index-hint-bonus.
33693
33694 2014-05-21 Mark Wielaard <mjw@redhat.com>
33695
33696 PR debug/16063
33697 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
33698 version >= 3 or not strict DWARF.
33699 * langhooks.h (struct lang_hooks_for_types): Add
33700 enum_underlying_base_type.
33701 * langhooks.c (lhd_enum_underlying_base_type): New function.
33702 * gcc/langhooks.h (struct lang_hooks_for_types): Add
33703 enum_underlying_base_type.
33704 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
33705 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
33706 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
33707
33708 2014-05-21 Richard Biener <rguenther@suse.de>
33709
33710 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
33711
33712 2014-05-21 John Marino <gnugcc@marino.st>
33713
33714 * config.gcc (*-*-dragonfly*): New target.
33715 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
33716 * configure: Regenerate.
33717 * config/dragonfly-stdint.h: New.
33718 * config/dragonfly.h: New.
33719 * config/dragonfly.opt: New.
33720 * config/i386/dragonfly.h: New.
33721 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
33722
33723 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33724
33725 * tree.def (VOID_CST): New.
33726 * tree-core.h (TI_VOID): New.
33727 * tree.h (void_node): New.
33728 * tree.c (tree_node_structure_for_code, tree_code_size)
33729 (iterative_hash_expr): Handle VOID_CST.
33730 (build_common_tree_nodes): Initialize void_node.
33731
33732 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
33733
33734 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
33735 functions.
33736 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
33737
33738 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
33739 more places.
33740
33741 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
33742 flag_reorder_blocks_and_partition.
33743 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
33744
33745 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
33746
33747 PR target/54236
33748 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
33749 constraints.
33750 (*addc_r_t): Add new insn_and_split.
33751
33752 2014-05-21 Jakub Jelinek <jakub@redhat.com>
33753
33754 PR middle-end/61252
33755 * omp-low.c (handle_simd_reference): New function.
33756 (lower_rec_input_clauses): Use it. Defer adding reference
33757 initialization even for reduction without placeholder if in simd,
33758 handle it properly later on.
33759
33760 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
33761
33762 PR tree-optimization/60899
33763 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
33764 assume all static symbols will have definition wile parsing and
33765 check the do have definition later in compilation; check that
33766 variable referring symbol will be output before concluding that
33767 reference is safe; be conservative for referring local statics;
33768 be more precise about when comdat is output in other partition.
33769
33770 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
33771
33772 PR bootstrap/60984
33773 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
33774 parameter.
33775 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
33776 (ipa_inline): Loop inline_to_all_callers until no more aliases
33777 are removed.
33778
33779 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
33780
33781 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
33782 set writeonly flag only for vars actually written to.
33783
33784 2014-05-20 Dehao Chen <dehao@google.com>
33785
33786 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
33787 and callee count to get clone count.
33788 * tree-inline.c (expand_call_inline): Use callee count instead of bb
33789 count in copy_body.
33790
33791 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
33792
33793 PR rtl-optimization/61243
33794 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
33795
33796 2014-05-20 Xinliang David Li <davidxl@google.com>
33797
33798 * cgraphunit.c (walk_polymorphic_call_targets): Add
33799 dbgcnt and fopt-info support.
33800 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
33801 * ipa-devirt.c (ipa_devirt): Ditto.
33802 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
33803 * ipa.c (walk_polymorphic_call_targets): Ditto.
33804 * gimple-fold.c (fold_gimple_assign): Ditto.
33805 (gimple_fold_call): Ditto.
33806 * dbgcnt.def: New counter.
33807
33808 2014-05-20 DJ Delorie <dj@redhat.com>
33809
33810 * config/msp430/msp430.md (split): Don't allow subregs when
33811 splitting SImode adds.
33812 (andneghi): Fix subtraction logic.
33813 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
33814
33815 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
33816
33817 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
33818 symbols.
33819 * except.c (switch_to_exception_section, resolve_unique_section,
33820 get_named_text_section, default_function_rodata_section,
33821 align_variable, get_block_for_decl, default_section_type_flags):
33822 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
33823 * symtab.c (symtab_add_to_same_comdat_group,
33824 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
33825 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
33826 Likewise.
33827 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
33828 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
33829 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
33830 (c6x_function_in_section_p): Likewise.
33831 * config/darwin.c (machopic_select_section): Likewise.
33832 * config/arm/arm.c (arm_function_in_section_p): Likewise.
33833 * config/mips/mips.c (mips_function_rodata_section): Likewise.
33834 * config/mep/mep.c (mep_select_section): LIkewise.
33835 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
33836
33837 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
33838
33839 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
33840 EH region of calls to pure functions that can throw an exception.
33841 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
33842 (copy_reference_ops_from_call): Also copy the EH region of the call if
33843 it can throw an exception.
33844
33845 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33846
33847 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
33848 nested VEC_SELECTs that are inverses of each other.
33849
33850 2014-05-20 Richard Biener <rguenther@suse.de>
33851
33852 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
33853 (extract_and_process_scc_for_name): not here.
33854 (cond_dom_walker::before_dom_children): Only process
33855 stmts that end the BB in interesting ways.
33856 (run_scc_vn): Mark param uses as visited.
33857
33858 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33859
33860 * config/arm/arm.md (arith_shiftsi): Do not predicate for
33861 arm_restrict_it.
33862
33863 2014-05-20 Nick Clifton <nickc@redhat.com>
33864
33865 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
33866 (msp430_gimplify_va_arg_expr): New function.
33867 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
33868
33869 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
33870 operand 0 in order to prevent confusion about the number of
33871 registers involved.
33872
33873 2014-05-20 Richard Biener <rguenther@suse.de>
33874
33875 PR tree-optimization/61221
33876 * tree-ssa-pre.c (el_to_update): Remove.
33877 (eliminate_dom_walker::before_dom_children): Handle released
33878 VDEFs by value-numbering them to the associated VUSE. Update
33879 stmt immediately for substituted call address.
33880 (eliminate): Remove delayed stmt updating code.
33881 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
33882 possibly late re-numbered vuses.
33883 (vn_reference_lookup_2): Adjust.
33884 (vn_reference_lookup_pieces): Likewise.
33885 (vn_reference_lookup): Likewise.
33886
33887 2014-05-20 Richard Biener <rguenther@suse.de>
33888
33889 * config.gcc: Remove need_64bit_hwint.
33890 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
33891 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
33892 it to be true.
33893 * config.in: Regenerate.
33894 * configure: Likewise.
33895
33896 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
33897
33898 * doc/extend.texi: Create Label Attributes section,
33899 move all label attributes into it and reference it.
33900
33901 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
33902
33903 * arm.c (thumb1_reorg): When scanning backwards skip anything
33904 that's not a proper insn.
33905
33906 2014-05-19 Richard Biener <rguenther@suse.de>
33907
33908 PR tree-optimization/61221
33909 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33910 Do nothing for unreachable blocks.
33911 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
33912 Improve unreachability detection.
33913
33914 2014-05-19 Richard Biener <rguenther@suse.de>
33915
33916 PR tree-optimization/61209
33917 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
33918
33919 2014-05-19 Nick Clifton <nickc@redhat.com>
33920
33921 * except.c (init_eh): Fix computation of builtin setjmp buffer
33922 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
33923
33924 2014-05-19 Richard Biener <rguenther@suse.de>
33925
33926 PR tree-optimization/61184
33927 * tree-vrp.c (is_negative_overflow_infinity): Use
33928 TREE_OVERFLOW_P and do that check first.
33929 (is_positive_overflow_infinity): Likewise.
33930 (is_overflow_infinity): Likewise.
33931 (vrp_operand_equal_p): Properly treat operands with
33932 differing overflow as not equal.
33933
33934 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
33935
33936 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
33937 shift simplification where it was intended.
33938
33939 2014-05-19 Christian Bruel <christian.bruel@st.com>
33940
33941 PR target/61195
33942 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
33943
33944 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
33945
33946 PR target/61084
33947 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
33948 than wide_int.
33949
33950 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
33951
33952 * reg-notes.def (CROSSING_JUMP): Likewise.
33953 * rtl.h (rtx_def): Update comment for jump flag.
33954 (CROSSING_JUMP_P): Define.
33955 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
33956 of a REG_CROSSING_JUMP note.
33957 * cfghooks.c (tidy_fallthru_edges): Likewise.
33958 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
33959 * emit-rtl.c (try_split): Likewise.
33960 * haifa-sched.c (sched_create_recovery_edges): Likewise.
33961 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
33962 * jump.c (redirect_jump_2): Likewise.
33963 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
33964 (relax_delay_slots): Likewise.
33965 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
33966 (bbit_di): Likewise.
33967 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
33968 * config/sh/sh.md (jump_compact): Likewise.
33969 * bb-reorder.c (rotate_loop): Likewise.
33970 (pass_duplicate_computed_gotos::execute): Likewise.
33971 (add_reg_crossing_jump_notes): Rename to...
33972 (update_crossing_jump_flags): ...this.
33973 (pass_partition_blocks::execute): Update accordingly.
33974
33975 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
33976
33977 * tree.h: Remove extraneous template <>.
33978
33979 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
33980
33981 * ipa.c (symtab_remove_unreachable_nodes): Remove
33982 symbol from comdat group if its body was eliminated.
33983 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
33984 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
33985 (symtab_unregister_node): ... this one.
33986 (verify_symtab_base): More strict checking of comdats.
33987 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
33988
33989 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
33990
33991 * tree-pass.h (make_pass_ipa_comdats): New pass.
33992 * timevar.def (TV_IPA_COMDATS): New timevar.
33993 * passes.def (pass_ipa_comdats): Add.
33994 * Makefile.in (OBJS): Add ipa-comdats.o
33995 * ipa-comdats.c: New file.
33996
33997 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
33998
33999 * ipa.c (update_visibility_by_resolution_info): New function.
34000 (function_and_variable_visibility): Use it.
34001
34002 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
34003
34004 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
34005 New functions.
34006 (FOR_EACH_DEFINED_SYMBOL): New macro.
34007 (varpool_first_static_initializer, varpool_next_static_initializer,
34008 varpool_first_defined_variable, varpool_next_defined_variable):
34009 Fix comments.
34010 (symtab_in_same_comdat_p): Correctly deal with inline functions.
34011
34012 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
34013
34014 * ggc-page.c (ggc_handle_finalizers): Add comment.
34015
34016 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
34017
34018 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
34019 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
34020 (ggc_internal_cleared_alloc): Likewise.
34021 * ggc-page.c (finalizer): New class.
34022 (vec_finalizer): Likewise.
34023 (globals::finalizers): New member.
34024 (globals::vec_finalizers): Likewise.
34025 (ggc_internal_alloc): Record the finalizer if any for the block being
34026 allocated.
34027 (ggc_handle_finalizers): New function.
34028 (ggc_collect): Call ggc_handle_finalizers.
34029 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
34030 finalizer.
34031 (ggc_internal_cleared_alloc): Likewise.
34032 (finalize): New function.
34033 (need_finalization_p): Likewise.
34034 (ggc_alloc): Install the type's destructor as the finalizer if it
34035 might do something.
34036 (ggc_cleared_alloc): Likewise.
34037 (ggc_vec_alloc): Likewise.
34038 (ggc_cleared_vec_alloc): Likewise.
34039
34040 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
34041
34042 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
34043
34044 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
34045
34046 * alias.c (record_alias_subset): Adjust.
34047 * bitmap.c (bitmap_element_allocate): Likewise.
34048 (bitmap_gc_alloc_stat): Likewise.
34049 * cfg.c (init_flow): Likewise.
34050 (alloc_block): Likewise.
34051 (unchecked_make_edge): Likewise.
34052 * cfgloop.c (alloc_loop): Likewise.
34053 (flow_loops_find): Likewise.
34054 (rescan_loop_exit): Likewise.
34055 * cfgrtl.c (init_rtl_bb_info): Likewise.
34056 * cgraph.c (insert_new_cgraph_node_version): Likewise.
34057 (cgraph_allocate_node): Likewise.
34058 (cgraph_create_edge_1): Likewise.
34059 (cgraph_allocate_init_indirect_info): Likewise.
34060 * cgraphclones.c (cgraph_clone_edge): Likewise.
34061 * cgraphunit.c (add_asm_node): Likewise.
34062 (init_lowered_empty_function): Likewise.
34063 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
34064 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
34065 (alpha_use_linkage): Likewise.
34066 * config/arc/arc.c (arc_init_machine_status): Likewise.
34067 * config/arm/arm.c (arm_init_machine_status): Likewise.
34068 * config/avr/avr.c (avr_init_machine_status): Likewise.
34069 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
34070 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
34071 * config/cris/cris.c (cris_init_machine_status): Likewise.
34072 * config/darwin.c (machopic_indirection_name): Likewise.
34073 (darwin_build_constant_cfstring): Likewise.
34074 (darwin_enter_string_into_cfstring_table): Likewise.
34075 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
34076 * config/frv/frv.c (frv_init_machine_status): Likewise.
34077 * config/i386/i386.c (get_dllimport_decl): Likewise.
34078 (ix86_init_machine_status): Likewise.
34079 (assign_386_stack_local): Likewise.
34080 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
34081 (i386_pe_maybe_record_exported_symbol): Likewise.
34082 (i386_pe_record_stub): Likewise.
34083 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
34084 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
34085 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
34086 (m32c_note_pragma_address): Likewise.
34087 * config/mep/mep.c (mep_init_machine_status): Likewise.
34088 (mep_note_pragma_flag): Likewise.
34089 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
34090 (mips16_local_alias): Likewise.
34091 (mips_init_machine_status): Likewise.
34092 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
34093 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
34094 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
34095 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
34096 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
34097 * config/pa/pa.c (pa_init_machine_status): Likewise.
34098 (pa_get_deferred_plabel): Likewise.
34099 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
34100 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
34101 (rs6000_init_machine_status): Likewise.
34102 (output_toc): Likewise.
34103 * config/s390/s390.c (s390_init_machine_status): Likewise.
34104 * config/score/score.c (score_output_external): Likewise.
34105 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
34106 * config/spu/spu.c (spu_init_machine_status): Likewise.
34107 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
34108 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
34109 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
34110 * coverage.c (coverage_end_function): Likewise.
34111 * dbxout.c (dbxout_init): Likewise.
34112 * doc/gty.texi: Don't mention variable_size attribute.
34113 * dwarf2cfi.c (new_cfi): Adjust.
34114 (new_cfi_row): Likewise.
34115 (copy_cfi_row): Likewise.
34116 (create_cie_data): Likewise.
34117 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
34118 (new_loc_descr): Likewise.
34119 (find_AT_string_in_table): Likewise.
34120 (add_addr_table_entry): Likewise.
34121 (new_die): Likewise.
34122 (add_var_loc_to_decl): Likewise.
34123 (clone_die): Likewise.
34124 (clone_as_declaration): Likewise.
34125 (break_out_comdat_types): Likewise.
34126 (new_loc_list): Likewise.
34127 (add_loc_descr_to_each): Likewise.
34128 (add_location_or_const_value_attribute): Likewise.
34129 (add_linkage_name): Likewise.
34130 (lookup_filename): Likewise.
34131 (dwarf2out_var_location): Likewise.
34132 (new_line_info_table): Likewise.
34133 (dwarf2out_init): Likewise.
34134 (mem_loc_descriptor): Likewise.
34135 (loc_descriptor): Likewise.
34136 (add_const_value_attribute): Likewise.
34137 (tree_add_const_value_attribute): Likewise.
34138 (comp_dir_string): Likewise.
34139 (dwarf2out_vms_debug_main_pointer): Likewise.
34140 (string_cst_pool_decl): Likewise.
34141 * emit-rtl.c (set_mem_attrs): Likewise.
34142 (get_reg_attrs): Likewise.
34143 (start_sequence): Likewise.
34144 (init_emit): Likewise.
34145 (init_emit_regs): Likewise.
34146 * except.c (init_eh_for_function): Likewise.
34147 (gen_eh_region): Likewise.
34148 (gen_eh_region_catch): Likewise.
34149 (gen_eh_landing_pad): Likewise.
34150 (add_call_site): Likewise.
34151 * function.c (add_frame_space): Likewise.
34152 (insert_temp_slot_address): Likewise.
34153 (assign_stack_temp_for_type): Likewise.
34154 (get_hard_reg_initial_val): Likewise.
34155 (allocate_struct_function): Likewise.
34156 (prepare_function_start): Likewise.
34157 (types_used_by_var_decl_insert): Likewise.
34158 * gengtype.c (variable_size_p): Remove function.
34159 (enum alloc_quantity): Remove enum.
34160 (write_typed_alloc_def): Remove function.
34161 (write_typed_struct_alloc_def): Likewise.
34162 (write_typed_typedef_alloc_def): Likewise.
34163 (write_typed_alloc_defns): Likewise.
34164 (main): Adjust.
34165 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
34166 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
34167 * ggc.h (ggc_alloc): new function.
34168 (ggc_cleared_alloc): Likewise.
34169 (ggc_vec_alloc): Template on type of vector element, and remove
34170 element size argument.
34171 (ggc_cleared_vec_alloc): Likewise.
34172 * gimple.c (gimple_build_omp_for): Adjust.
34173 (gimple_copy): Likewise.
34174 * ipa-cp.c (get_replacement_map): Likewise.
34175 (find_aggregate_values_for_callers_subset): Likewise.
34176 (known_aggs_to_agg_replacement_list): Likewise.
34177 * ipa-devirt.c (get_odr_type): Likewise.
34178 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
34179 (read_agg_replacement_chain): Likewise.
34180 * loop-iv.c (get_simple_loop_desc): Likewise.
34181 * lto-cgraph.c (input_node_opt_summary): Likewise.
34182 * lto-section-in.c (lto_new_in_decl_state): Likewise.
34183 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
34184 (input_eh_region): Likewise.
34185 (input_eh_lp): Likewise.
34186 (input_cfg): Likewise.
34187 * optabs.c (set_optab_libfunc): Likewise.
34188 (init_tree_optimization_optabs): Likewise.
34189 (set_conv_libfunc): Likewise.
34190 * passes.c (do_per_function_toporder): Likewise.
34191 * rtl.h: Don't use variable_size gty attribute.
34192 * sese.c (if_region_set_false_region): Adjust.
34193 * stringpool.c (gt_pch_save_stringpool): Likewise.
34194 * target-globals.c (save_target_globals): Likewise.
34195 * toplev.c (general_init): Likewise.
34196 * trans-mem.c (record_tm_replacement): Likewise.
34197 (split_bb_make_tm_edge): Likewise.
34198 * tree-cfg.c (move_sese_region_to_fn): Likewise.
34199 * tree-data-ref.h (lambda_vector_new): Likewise.
34200 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
34201 * tree-iterator.c (tsi_link_before): Likewise.
34202 (tsi_link_after): Likewise.
34203 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
34204 * tree-ssa-loop-niter.c (record_estimate): Likewise.
34205 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
34206 * tree-ssa-operands.h: Don't use variable_size gty attribute.
34207 * tree-ssa.c (init_tree_ssa): Adjust.
34208 * tree-ssanames.c (set_range_info): Likewise.
34209 (get_ptr_info): Likewise.
34210 (duplicate_ssa_name_ptr_info): Likewise.
34211 (duplicate_ssa_name_range_info): Likewise.
34212 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
34213 (unpack_ts_fixed_cst_value_fields): Likewise.
34214 * tree.c (build_fixed): Likewise.
34215 (build_real): Likewise.
34216 (build_string): Likewise.
34217 (decl_priority_info): Likewise.
34218 (decl_debug_expr_insert): Likewise.
34219 (decl_value_expr_insert): Likewise.
34220 (decl_debug_args_insert): Likewise.
34221 (type_hash_add): Likewise.
34222 (build_omp_clause): Likewise.
34223 * ubsan.c (decl_for_type_insert): Likewise.
34224 * varasm.c (get_unnamed_section): Likewise.
34225 (get_noswitch_section): Likewise.
34226 (get_section): Likewise.
34227 (get_block_for_section): Likewise.
34228 (create_block_symbol): Likewise.
34229 (build_constant_desc): Likewise.
34230 (create_constant_pool): Likewise.
34231 (force_const_mem): Likewise.
34232 (record_tm_clone_pair): Likewise.
34233 * varpool.c (varpool_create_empty_node): Likewise.
34234
34235 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
34236
34237 * dwarf2out.c (tree_add_const_value_attribute): Call
34238 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
34239 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
34240 instead of ggc_internal_<x>alloc_stat.
34241 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
34242 (ggc_realloc): Likewise.
34243 * ggc-none.c (ggc_internal_alloc): Likewise.
34244 (ggc_internal_cleared_alloc): Likewise.
34245 * ggc-page.c: Likewise.
34246 * ggc.h (ggc_internal_alloc_stat): Likewise.
34247 (ggc_internal_alloc): Remove macro.
34248 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
34249 (ggc_internal_cleared_alloc): Remove macro.
34250 (GGC_RESIZEVEC): Adjust.
34251 (ggc_resizevar): Remove macro.
34252 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
34253 (ggc_internal_cleared_vec_alloc_stat): Likewise.
34254 (ggc_internal_vec_cleared_alloc): Remove macro.
34255 (ggc_alloc_atomic_stat): Drop _stat suffix.
34256 (ggc_alloc_atomic): Remove macro.
34257 (ggc_alloc_cleared_atomic): Remove macro.
34258 (ggc_alloc_string_stat): Drop _stat suffix.
34259 (ggc_alloc_string): Remove macro.
34260 (ggc_alloc_rtx_def_stat): Adjust.
34261 (ggc_alloc_tree_node_stat): Likewise.
34262 (ggc_alloc_cleared_tree_node_stat): Likewise.
34263 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
34264 (ggc_alloc_cleared_simd_clone_stat): Likewise.
34265 * gimple.c (gimple_build_omp_for): Likewise.
34266 (gimple_copy): Likewise.
34267 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
34268 * toplev.c (realloc_for_line_map): Adjust.
34269 * tree-data-ref.h (lambda_vector_new): Likewise.
34270 * tree-phinodes.c (allocate_phi_node): Likewise.
34271 * tree.c (grow_tree_vec_stat): Likewise.
34272 * vec.h (va_gc::reserve): Adjust.
34273
34274 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
34275
34276 * config/microblaze/microblaze.c (break_handler): New Declaration.
34277 (microblaze_break_function_p,microblaze_is_break_handler): New.
34278 (compute_frame_size): Use microblaze_break_function_p.
34279 Add the test of break_handler.
34280 (microblaze_function_prologue) : Add the test of variable
34281 break_handler. Check the fnname by BREAK_HANDLER_NAME.
34282 (microblaze_function_epilogue) : Add the test of break_handler.
34283 (microblaze_globalize_label) : Add the test of break_handler.
34284 Check the name by BREAK_HANDLER_NAME.
34285
34286 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
34287
34288 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
34289 microblaze_is_break_handler test.
34290 (call_internal1,call_value_intern): Use microblaze_break_function_p.
34291 Use SYMBOL_REF_DECL.
34292
34293 * config/microblaze/microblaze-protos.h
34294 (microblaze_break_function_p,microblaze_is_break_handler):
34295 New Declaration.
34296
34297 * doc/extend.texi (MicroBlaze break_handler Functions): Document
34298 new MicroBlaze break_handler functions.
34299
34300 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
34301
34302 * doc/extend.texi (Size of an asm): Move node text according
34303 to its @menu entry position.
34304
34305 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
34306
34307 PR tree-optimization/61140
34308 PR tree-optimization/61150
34309 PR tree-optimization/61197
34310 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
34311
34312 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
34313
34314 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
34315
34316 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
34317
34318 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
34319 __SIZEOF_INT128__ is defined.
34320
34321 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
34322
34323 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
34324 (rs6000_delegitimize_address): Use it.
34325
34326 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
34327
34328 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
34329 inplace argument. Store the new address in the original MEM when true.
34330 * emit-rtl.c (change_address_1): Likewise.
34331 (adjust_address_1, adjust_automodify_address_1, offset_address):
34332 Update accordingly.
34333 * rtl.h (plus_constant): Add an inplace argument.
34334 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
34335 when true. Avoid generating (plus X (const_int 0)).
34336 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
34337 in-place. Pass true to plus_constant.
34338 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
34339
34340 2014-05-16 Dehao Chen <dehao@google.com>
34341
34342 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
34343
34344 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
34345
34346 PR target/54089
34347 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
34348 patterns.
34349 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
34350
34351 2014-05-16 Dehao Chen <dehao@google.com>
34352
34353 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
34354 optimize_function_for_size_p.
34355 * regs.h (REG_FREQ_FROM_BB): Likewise.
34356
34357 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
34358
34359 PR target/51244
34360 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
34361 negt_reg_operand cases.
34362 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
34363 predicate.
34364 * config/sh/predicates.md (cbranch_treg_value): Simplify.
34365
34366 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
34367
34368 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
34369 target variants.
34370
34371 2014-05-16 David Malcolm <dmalcolm@redhat.com>
34372
34373 Revert:
34374 2014-04-29 David Malcolm <dmalcolm@redhat.com>
34375
34376 * tree-cfg.c (dump_function_to_file): Dump the return type of
34377 functions, in a line to itself before the function body, mimicking
34378 the layout of a C function.
34379
34380 2014-05-16 Dehao Chen <dehao@google.com>
34381
34382 * cfghooks.c (make_forwarder_block): Use direct computation to
34383 get fall-through edge's count and frequency.
34384
34385 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
34386
34387 * config/arc/arc.c (arc_init): Fix typo in error message.
34388 * config/i386/i386.c (ix86_expand_builtin): Likewise.
34389 (split_stack_prologue_scratch_regno): Likewise.
34390 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
34391 word from error message.
34392
34393 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
34394
34395 * ira-costs.c: Fix typo in comment.
34396
34397 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
34398
34399 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
34400
34401 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
34402
34403 * varpool.c (dump_varpool_node): Dump write-only flag.
34404 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
34405 write-only flag.
34406 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
34407 write-only variables.
34408 * ipa.c (process_references): New function.
34409 (set_readonly_bit): New function.
34410 (set_writeonly_bit): New function.
34411 (clear_addressable_bit): New function.
34412 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
34413 fix handling of aliases.
34414 * cgraph.h (struct varpool_node): Add writeonly flag.
34415
34416 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
34417
34418 PR rtl-optimization/60969
34419 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
34420 Calculate costs for this case.
34421
34422 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
34423
34424 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
34425 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
34426
34427 2014-05-16 Richard Biener <rguenther@suse.de>
34428
34429 PR tree-optimization/61194
34430 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
34431 bool patterns ending in a COND_EXPR.
34432
34433 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34434
34435 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
34436
34437 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34438
34439 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
34440 where we were unable to cost an RTX.
34441
34442 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34443
34444 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
34445 HIGH, LO_SUM.
34446
34447 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34448 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34449
34450 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
34451
34452 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34453 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34454
34455 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
34456 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
34457
34458 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34459 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34460
34461 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
34462 operators.
34463
34464 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34465 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34466
34467 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
34468 DIV/MOD.
34469
34470 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34471 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34472
34473 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
34474 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
34475
34476 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34477 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34478
34479 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
34480 rotates and shifts.
34481
34482 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34483 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34484
34485 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
34486 ZERO_EXTEND and SIGN_EXTEND better.
34487
34488 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34489 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34490
34491 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
34492 logical operations.
34493
34494 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34495 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34496
34497 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
34498 costs when costing loads and stores to memory.
34499
34500 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34501 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
34502
34503 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
34504 for SET RTX.
34505
34506 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34507
34508 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
34509
34510 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34511 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34512
34513 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
34514 to...
34515 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
34516 well formed.
34517 (aarch64_rtx_mult_cost): New.
34518 (aarch64_rtx_costs): Use it, refactor as appropriate.
34519
34520 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34521 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34522
34523 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
34524 emit instructions, return number of instructions which would
34525 be emitted.
34526 (aarch64_add_constant): Update call to aarch64_build_constant.
34527 (aarch64_output_mi_thunk): Likewise.
34528 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
34529 a CONST_DOUBLE.
34530
34531 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34532
34533 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
34534 (TARGET_RTX_COSTS): Call it.
34535
34536 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34537
34538 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
34539 (cortexa57_vector_cost): Likewise.
34540 (cortexa57_tunings): Use them.
34541
34542 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
34543
34544 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
34545 (cpu_addrcost_table): Use it.
34546 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
34547 (aarch64_address_cost): Rewrite using aarch64_classify_address,
34548 move it.
34549
34550 2014-05-16 Richard Biener <rguenther@suse.de>
34551
34552 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
34553 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
34554 (visit_phi): Ignore edges marked as not executable.
34555 (class cond_dom_walker): New.
34556 (cond_dom_walker::before_dom_children): Value-number
34557 control statements and mark successor edges as not
34558 executable if possible.
34559 (run_scc_vn): First walk all control statements in
34560 dominator order, marking edges as not executable.
34561 * tree-inline.c (copy_edges_for_bb): Be not confused
34562 about random edge flags.
34563
34564 2014-05-16 Richard Biener <rguenther@suse.de>
34565
34566 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
34567
34568 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
34569
34570 PR target/61193
34571 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
34572 (__TM_simple_begin): Use it.
34573 (__TM_begin): Likewise.
34574
34575 2014-05-15 Martin Jambor <mjambor@suse.cz>
34576
34577 PR ipa/61085
34578 * ipa-prop.c (update_indirect_edges_after_inlining): Check
34579 type_preserved flag when the indirect edge is polymorphic.
34580
34581 2014-05-15 Martin Jambor <mjambor@suse.cz>
34582
34583 PR tree-optimization/61090
34584 * tree-sra.c (sra_modify_expr): Pass the current gsi to
34585 build_ref_for_model.
34586
34587 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34588
34589 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
34590 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
34591
34592 2014-05-15 Jakub Jelinek <jakub@redhat.com>
34593
34594 PR tree-optimization/61158
34595 * fold-const.c (fold_binary_loc): If X is zero-extended and
34596 shiftc >= prec, make sure zerobits is all ones instead of
34597 invoking undefined behavior.
34598
34599 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
34600
34601 * regcprop.h: New file.
34602 * regcprop.c (skip_debug_insn_p): New decl.
34603 (replace_oldest_value_reg): Check skip_debug_insn_p.
34604 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
34605 * shrink-wrap.c: Include regcprop.h.
34606 (prepare_shrink_wrap): Call
34607 copyprop_hardreg_forward_bb_without_debug_insn.
34608
34609 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
34610
34611 * shrink-wrap.h: Update comment.
34612 * shrink-wrap.c: Update comment.
34613 (next_block_for_reg): Rename to live_edge_for_reg.
34614 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
34615 (move_insn_for_shrink_wrap): Split live_edge.
34616 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
34617
34618 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
34619
34620 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
34621 Delete.
34622 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
34623 * config/sparc/sparc.md (fptype_ut699): New attribute.
34624 (in_branch_delay): Return false if -mfix-ut699 is specified and
34625 fptype_ut699 is set to single.
34626 (truncdfsf2): Add fptype_ut699 attribute.
34627 (fix_truncdfsi2): Likewise.
34628 (floatsisf2): Change fptype attribute.
34629 (fix_truncsfsi2): Likewise.
34630 (negtf2_notv9): Delete.
34631 (negtf2_v9): Likewise.
34632 (negtf2_hq): New instruction.
34633 (negtf2): New instruction and splitter.
34634 (negdf2_notv9): Rewrite.
34635 (abstf2_notv9): Delete.
34636 (abstf2_hq_v9): Likewise.
34637 (abstf2_v9): Likewise.
34638 (abstf2_hq): New instruction.
34639 (abstf2): New instruction and splitter.
34640 (absdf2_notv9): Rewrite.
34641
34642 2014-05-14 Cary Coutant <ccoutant@google.com>
34643
34644 PR debug/61013
34645 * opts.c (common_handle_option): Don't special-case "-g".
34646 (set_debug_level): Default to at least level 2 with "-g".
34647
34648 2014-05-14 DJ Delorie <dj@redhat.com>
34649
34650 * config/msp430/msp430.c (msp430_builtin): Add
34651 MSP430_BUILTIN_DELAY_CYCLES.
34652 (msp430_init_builtins): Register void __delay_cycles(long long).
34653 (msp430_builtin_decl): Add it.
34654 (cg_magic_constant): New.
34655 (msp430_expand_delay_cycles): New.
34656 (msp430_expand_builtin): Call it.
34657 (msp430_print_operand_raw): Change integer printing from "int" to
34658 HOST_WIDE_INT.
34659 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
34660 (delay_cycles_start): New.
34661 (delay_cycles_end): New.
34662 (delay_cycles_32): New.
34663 (delay_cycles_32x): New.
34664 (delay_cycles_16): New.
34665 (delay_cycles_16x): New.
34666 (delay_cycles_2): New.
34667 (delay_cycles_1): New.
34668 * doc/extend.texi: Document __delay_cycles().
34669
34670 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
34671
34672 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
34673 length attribute computation.
34674
34675 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
34676
34677 PR debug/61188
34678 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
34679
34680 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
34681
34682 PR target/61084
34683 * config/sparc/sparc.md: Fix types of low and high in DI constant
34684 splitter. Use gen_int_mode in some other splitters.
34685
34686 2014-05-14 Martin Jambor <mjambor@suse.cz>
34687
34688 PR ipa/60897
34689 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
34690
34691 2014-05-14 James Norris <jnorris@codesourcery.com>
34692
34693 * omp-low.c (expand_parallel_call): Remove shadow variable.
34694 (expand_omp_taskreg): Likewise.
34695
34696 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
34697
34698 * common/config/i386/i386-common.c
34699 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
34700 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
34701 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
34702 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
34703 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
34704 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
34705 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
34706 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
34707 xsavecintrin.h, xsavesintrin.h.
34708 (x86_64-*-*): Ditto.
34709 * config/i386/clflushoptintrin.h: New.
34710 * config/i386/xsavecintrin.h: Ditto.
34711 * config/i386/xsavesintrin.h: Ditto.
34712 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
34713 (bit_XSAVES): Ditto.
34714 (bit_XSAVES): Ditto.
34715 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
34716 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
34717 -mno-clflushopt.
34718 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
34719 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
34720 OPTION_MASK_ISA_XSAVES.
34721 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
34722 -mxsavec, -mxsaves.
34723 (PTA_CLFLUSHOPT) Define.
34724 (PTA_XSAVEC): Ditto.
34725 (PTA_XSAVES): Ditto.
34726 (ix86_option_override_internal): Handle new options.
34727 (ix86_valid_target_attribute_inner_p): Ditto.
34728 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
34729 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
34730 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
34731 (bdesc_special_args): Add __builtin_ia32_xsaves,
34732 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
34733 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
34734 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
34735 (ix86_expand_builtin): Handle new builtins.
34736 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
34737 (TARGET_CLFLUSHOPT_P): Ditto.
34738 (TARGET_XSAVEC): Ditto.
34739 (TARGET_XSAVEC_P): Ditto.
34740 (TARGET_XSAVES): Ditto.
34741 (TARGET_XSAVES_P): Ditto.
34742 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
34743 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
34744 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
34745 (ANY_XRSTOR): New.
34746 (ANY_XRSTOR64): Ditto.
34747 (xrstor): Ditto.
34748 (xrstor): Change into <xrstor>.
34749 (xrstor_rex64): Change into <xrstor>_rex64.
34750 (xrstor64): Change into <xrstor>64
34751 (clflushopt): New.
34752 * config/i386/i386.opt (mclflushopt): New.
34753 (mxsavec): Ditto.
34754 (mxsaves): Ditto.
34755 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
34756 xsavecintrin.h.
34757 * doc/invoke.texi: Document new options.
34758
34759 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
34760
34761 PR rtl-optimization/60866
34762 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
34763 Default it to -1. Pass it down to init_simplejump_data.
34764 (init_simplejump_data): New parameter old_seqno. Pass it down
34765 to get_seqno_for_a_jump.
34766 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
34767 initializing new jump seqno as a last resort. Add comment.
34768 (sel_redirect_edge_and_branch): Save old seqno of the conditional
34769 jump and pass it down to sel_init_new_insn.
34770 (sel_redirect_edge_and_branch_force): Likewise.
34771
34772 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
34773
34774 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
34775 shifted values to avoid build warning.
34776
34777 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
34778
34779 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
34780 * cfgrtl.c (rtl_merge_blocks): Fix comment.
34781 (cfg_layout_merge_blocks): Likewise.
34782 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
34783
34784 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
34785
34786 PR rtl-optimization/60901
34787 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
34788 bb predecessor belongs to the same scheduling region. Adjust comment.
34789
34790 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
34791
34792 * doc/sourcebuild.texi: (dfp_hw): Document.
34793 (p8vector_hw): Likewise.
34794 (powerpc_eabi_ok): Likewise.
34795 (powerpc_elfv2): Likewise.
34796 (powerpc_htm_ok): Likewise.
34797 (ppc_recip_hw): Likewise.
34798 (vsx_hw): Likewise.
34799
34800 2014-05-13 Cary Coutant <ccoutant@google.com>
34801
34802 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
34803
34804 2014-05-13 David Malcolm <dmalcolm@redhat.com>
34805
34806 * gengtype-parse.c (require3): Eliminate in favor of...
34807 (require4): New.
34808 (require_template_declaration): Update to support optional single *
34809 on a type.
34810
34811 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
34812 (create_user_defined_type): Handle a single level of explicit
34813 pointerness within template arguments.
34814 (struct write_types_data): Add field "kind".
34815 (filter_type_name): Handle "*" character.
34816 (write_user_func_for_structure_ptr): Require a write_types_data
34817 rather than just a prefix string, so that we can look up the kind
34818 of the wtd and use it as an index into wrote_user_func_for_ptr,
34819 ensuring that such functions are written at most once. Support
34820 subclasses by invoking the marking function of the ultimate base class.
34821 (write_user_func_for_structure_body): Require a write_types_data
34822 rather than just a prefix string, so that we can pass this to
34823 write_user_func_for_structure_ptr.
34824 (write_func_for_structure): Likewise.
34825 (ggc_wtd): Add initializer of new "kind" field.
34826 (pch_wtd): Likewise.
34827
34828 * gengtype.h (enum write_types_kinds): New.
34829 (struct type): Add field wrote_user_func_for_ptr to the "s"
34830 union member.
34831
34832 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
34833
34834 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
34835 instead of const_binop.
34836 (fold_binary_loc): Likewise.
34837
34838 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
34839
34840 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
34841 calculation to match get_ref_base_and_extent.
34842
34843 2014-05-13 Catherine Moore <clm@codesourcery.com>
34844 Sandra Loosemore <sandra@codesourcery.com>
34845
34846 * configure.ac: Fix assembly for explicit JALR relocation check.
34847 * configure: Regenerate.
34848
34849 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34850
34851 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
34852 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
34853 Remove associated type declarations and initialisations.
34854 (arm_expand_neon_builtin): Likewise.
34855 (neon_emit_pair_result_insn): Delete.
34856 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
34857 * config/arm/neon.md (neon_vtrn<mode>): Delete.
34858 (neon_vzip<mode>): Likewise.
34859 (neon_vuzp<mode>): Likewise.
34860
34861 2014-05-13 Richard Biener <rguenther@suse.de>
34862
34863 PR ipa/60973
34864 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
34865 it needs revisiting whether the call still may be tail-called.
34866
34867 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34868
34869 * rtl.def (SYMBOL_REF): Remove middle "0" field.
34870 * rtl.h (block_symbol): Reduce number of fields to 2.
34871 (rtx_def): Add u2.symbol_ref_flags.
34872 (SYMBOL_REF_FLAGS): Use it.
34873 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
34874 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
34875 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
34876 Lower index of SYMBOL_REF_DATA.
34877 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
34878 Print SYMBOL_REF_FLAGS at the same time.
34879 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
34880
34881 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34882
34883 * rtl.def (VAR_LOCATION): Remove "i" field.
34884 * rtl.h (rtx_def): Add u2.var_location_status.
34885 (PAT_VAR_LOCATION_STATUS): Use it.
34886 (gen_rtx_VAR_LOCATION): Declare.
34887 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
34888 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
34889 * var-tracking.c (emit_note_insn_var_location): Remove casts.
34890
34891 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34892
34893 * rtl.def (scratch): Fix outdated comment and remove "0" field.
34894 * gengtype.c (adjust_field_rtx_def): Update accordingly.
34895
34896 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34897
34898 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
34899 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
34900 * rtl.h (rtx_def): Add insn_uid to u2 field.
34901 (RTX_FLAG_CHECK8): Delete in favor of...
34902 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
34903 (INSN_DELETED_P): Update accordingly.
34904 (INSN_UID): Use u2.insn_uid.
34905 (INSN_CHAIN_CODE_P): Define.
34906 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
34907 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
34908 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
34909 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
34910 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
34911 indices accordingly.
34912 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
34913 Update indices for insn-chain rtxes.
34914 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
34915 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
34916 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
34917 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
34918 * combine.c (try_combine): Likewise.
34919 * ira.c (setup_prohibited_mode_move_regs): Likewise.
34920
34921 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34922
34923 * rtl.def (REG): Remove middle field.
34924 * rtl.h (rtx_def): Add orignal_regno to u2.
34925 (ORIGINAL_REGNO): Use it instead of field 1.
34926 (REG_ATTRS): Lower field index accordingly.
34927 * gengtype.c (adjust_field_rtx_def): Remove handling of
34928 ORIGINAL_REGNO. Move REG_ATTRS index down.
34929 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
34930 code that prints the REGNO.
34931
34932 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34933
34934 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
34935 GENERATOR_FILE.
34936
34937 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
34938
34939 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
34940
34941 2014-05-13 Bin Cheng <bin.cheng@arm.com>
34942
34943 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
34944 (alloc_iv): Lower base expressions containing ADDR_EXPR.
34945
34946 2014-05-13 Ian Bolton <ian.bolton@arm.com>
34947
34948 * config/aarch64/aarch64-protos.h
34949 (aarch64_hard_regno_caller_save_mode): New prototype.
34950 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
34951 New function.
34952 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
34953
34954 2014-05-13 Christian Bruel <christian.bruel@st.com>
34955
34956 * target.def (mode_switching): New hook vector.
34957 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
34958 (mode_exit, modepriority_to_mode): Likewise.
34959 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
34960 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
34961 * target.h: Include tm.h and hard-reg-set.h.
34962 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
34963 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
34964 * doc/tm.texi Regenerate.
34965 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
34966 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
34967 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
34968 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
34969 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
34970 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
34971 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
34972 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
34973 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
34974 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
34975 (ix86_emit_mode_set): Hookify.
34976 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
34977 Delete.
34978 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
34979 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
34980 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
34981 (epiphany_mode_priority_to_mode): Remove declaration.
34982 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
34983 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
34984 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
34985 Likewise.
34986 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
34987 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
34988 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
34989
34990 2014-05-13 Jakub Jelinek <jakub@redhat.com>
34991
34992 PR target/61060
34993 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
34994 is const0_rtx, return immediately. Don't test count == 0 when
34995 it is always true.
34996
34997 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
34998
34999 * Makefile.in: add shrink-wrap.o.
35000 * config/i386/i386.c: include "shrink-wrap.h"
35001 * function.c: Likewise.
35002 (requires_stack_frame_p, next_block_for_reg,
35003 move_insn_for_shrink_wrap, prepare_shrink_wrap,
35004 dup_block_and_redirect): Move to shrink-wrap.c
35005 (thread_prologue_and_epilogue_insns): Extract three code segments
35006 as functions in shrink-wrap.c
35007 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
35008 shrink-wrap.h
35009 * shrink-wrap.c: New file.
35010 * shrink-wrap.h: New file.
35011
35012 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
35013
35014 * doc/extend.texi: Reflect current numbers of pragmas. Remove
35015 reference to Solaris.
35016
35017 2014-05-12 Mike Stump <mikestump@comcast.net>
35018
35019 PR other/31778
35020 * genattrtab.c (filename): Add.
35021 (convert_set_attr_alternative): Improve error message.
35022 (check_defs): Restore read_md_filename for error messages.
35023 (gen_insn): Save filename.
35024
35025 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
35026
35027 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
35028 -fno-local-ivars and -fivar-visibility.
35029 * c-family/c.opt: Make -Wshadow also implicitly enable
35030 -Wshadow-ivar.
35031
35032 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
35033
35034 * doc/tm.texi: Remove reference to deleted macro.
35035 * doc/tm.texi.in: Likewise.
35036
35037 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
35038
35039 PR target/60991
35040 * config/avr/avr.c (avr_out_store_psi): Use correct constant
35041 to restore Y.
35042
35043 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
35044
35045 PR libgcc/61152
35046 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
35047 * config/arm/aout.h (License): Same.
35048 * config/arm/bpabi.h (License): Same.
35049 * config/arm/elf.h (License): Same.
35050 * config/arm/linux-elf.h (License): Same.
35051 * config/arm/linux-gas.h (License): Same.
35052 * config/arm/netbsd-elf.h (License): Same.
35053 * config/arm/uclinux-eabi.h (License): Same.
35054 * config/arm/uclinux-elf.h (License): Same.
35055 * config/arm/vxworks.h (License): Same.
35056
35057 2014-05-11 Jakub Jelinek <jakub@redhat.com>
35058
35059 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
35060 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
35061 number of operands to 3.
35062 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
35063 * tree-nested.c (convert_nonlocal_omp_clauses,
35064 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
35065 * gimplify.c (gimplify_scan_omp_clauses): Handle
35066 OMP_CLAUSE_LINEAR_STMT.
35067 * omp-low.c (lower_rec_input_clauses): Fix typo.
35068 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
35069 cast between Fortran boolean_type_node and C _Bool if
35070 needed.
35071
35072 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
35073
35074 PR tree-optimization/61136
35075 * wide-int.h (multiple_of_p): Define a version that doesn't return
35076 the quotient.
35077 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
35078 integer_zerop/const_binop pair.
35079 (multiple_of_p): Likewise, converting both operands to widest_int
35080 precision.
35081
35082 2014-05-09 Teresa Johnson <tejohnson@google.com>
35083
35084 * cgraphunit.c (analyze_functions): Use correct dump file.
35085
35086 2014-05-09 Florian Weimer <fweimer@redhat.com>
35087
35088 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
35089 expand_used_vars.
35090 (stack_protect_return_slot_p): New function.
35091 (expand_used_vars): Call stack_protect_decl_p and
35092 stack_protect_return_slot_p for -fstack-protector-strong.
35093
35094 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
35095 Andrew Haley <aph@redhat.com>
35096 Richard Sandiford <rdsandiford@googlemail.com>
35097
35098 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
35099 pages.
35100
35101 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
35102
35103 PR middle-end/61111
35104 * fold-const.c (fold_binary_loc): Changed width of mask.
35105
35106 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
35107
35108 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
35109 unsigned int initializers for regno_in, regno_out.
35110
35111 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
35112
35113 PR target/61055
35114 * config/avr/avr.md (cc): Add new attribute set_vzn.
35115 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
35116 Set cc insn attribute to set_vzn instead of set_zn for alternatives
35117 with INC, DEC or NEG.
35118 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
35119 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
35120 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
35121
35122 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35123
35124 Revert:
35125 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35126
35127 * wide-int.cc (UTItype): Define.
35128 (UDWtype): Define for appropriate W_TYPE_SIZE.
35129
35130 2014-05-09 Richard Biener <rguenther@suse.de>
35131
35132 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
35133 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
35134 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
35135 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
35136 ssa_propagate): Adjust.
35137
35138 2014-05-08 Jeff Law <law@redhat.com>
35139
35140 PR tree-optimization/61009
35141 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
35142 tri-state rather than a boolean. When a block is too big to
35143 thread through, inform caller via negative return value.
35144 (thread_across_edge): If a block was too big for normal threading,
35145 then it's too big for a joiner too, so remove temporary equivalences
35146 and return immediately.
35147
35148 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
35149 Matthias Klose <doko@ubuntu.com>
35150
35151 PR driver/61106
35152 * optc-gen.awk: Fix option handling for -Wunused-parameter.
35153
35154 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
35155
35156 PR target/59952
35157 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
35158
35159 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
35160
35161 PR target/61092
35162 * config/alpha/alpha.c: Include gimple-iterator.h.
35163 (alpha_gimple_fold_builtin): New function. Move
35164 ALPHA_BUILTIN_UMULH folding from ...
35165 (alpha_fold_builtin): ... here.
35166 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
35167
35168 2014-05-08 Wei Mi <wmi@google.com>
35169
35170 PR target/58066
35171 * config/i386/i386.c (ix86_compute_frame_layout): Update
35172 preferred_stack_boundary for call, expanded from tls descriptor.
35173 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
35174 to depend on SP register.
35175 (*tls_local_dynamic_base_32_gnu): Ditto.
35176 (*tls_local_dynamic_32_once): Ditto.
35177 (tls_global_dynamic_64_<mode>): Set
35178 ix86_tls_descriptor_calls_expanded_in_cfun.
35179 (tls_local_dynamic_base_64_<mode>): Ditto.
35180 (tls_global_dynamic_32): Set
35181 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
35182 to depend on SP register.
35183 (tls_local_dynamic_base_32): Ditto.
35184
35185 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35186
35187 * config/arm/arm_neon.h: Update comment.
35188 * config/arm/neon-docgen.ml: Delete.
35189 * config/arm/neon-gen.ml: Delete.
35190 * doc/arm-neon-intrinsics.texi: Update comment.
35191
35192 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35193
35194 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
35195 and v4sf versions.
35196 (vand, vorr, veor, vorn, vbic): Remove.
35197 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
35198 iterator.
35199 (neon_vsub_unspec): Likewise.
35200 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
35201
35202 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35203
35204 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
35205 (vadd_s16): Likewise.
35206 (vadd_s32): Likewise.
35207 (vadd_f32): Likewise.
35208 (vadd_u8): Likewise.
35209 (vadd_u16): Likewise.
35210 (vadd_u32): Likewise.
35211 (vadd_s64): Likewise.
35212 (vadd_u64): Likewise.
35213 (vaddq_s8): Likewise.
35214 (vaddq_s16): Likewise.
35215 (vaddq_s32): Likewise.
35216 (vaddq_s64): Likewise.
35217 (vaddq_f32): Likewise.
35218 (vaddq_u8): Likewise.
35219 (vaddq_u16): Likewise.
35220 (vaddq_u32): Likewise.
35221 (vaddq_u64): Likewise.
35222 (vmul_s8): Likewise.
35223 (vmul_s16): Likewise.
35224 (vmul_s32): Likewise.
35225 (vmul_f32): Likewise.
35226 (vmul_u8): Likewise.
35227 (vmul_u16): Likewise.
35228 (vmul_u32): Likewise.
35229 (vmul_p8): Likewise.
35230 (vmulq_s8): Likewise.
35231 (vmulq_s16): Likewise.
35232 (vmulq_s32): Likewise.
35233 (vmulq_f32): Likewise.
35234 (vmulq_u8): Likewise.
35235 (vmulq_u16): Likewise.
35236 (vmulq_u32): Likewise.
35237 (vsub_s8): Likewise.
35238 (vsub_s16): Likewise.
35239 (vsub_s32): Likewise.
35240 (vsub_f32): Likewise.
35241 (vsub_u8): Likewise.
35242 (vsub_u16): Likewise.
35243 (vsub_u32): Likewise.
35244 (vsub_s64): Likewise.
35245 (vsub_u64): Likewise.
35246 (vsubq_s8): Likewise.
35247 (vsubq_s16): Likewise.
35248 (vsubq_s32): Likewise.
35249 (vsubq_s64): Likewise.
35250 (vsubq_f32): Likewise.
35251 (vsubq_u8): Likewise.
35252 (vsubq_u16): Likewise.
35253 (vsubq_u32): Likewise.
35254 (vsubq_u64): Likewise.
35255 (vand_s8): Likewise.
35256 (vand_s16): Likewise.
35257 (vand_s32): Likewise.
35258 (vand_u8): Likewise.
35259 (vand_u16): Likewise.
35260 (vand_u32): Likewise.
35261 (vand_s64): Likewise.
35262 (vand_u64): Likewise.
35263 (vandq_s8): Likewise.
35264 (vandq_s16): Likewise.
35265 (vandq_s32): Likewise.
35266 (vandq_s64): Likewise.
35267 (vandq_u8): Likewise.
35268 (vandq_u16): Likewise.
35269 (vandq_u32): Likewise.
35270 (vandq_u64): Likewise.
35271 (vorr_s8): Likewise.
35272 (vorr_s16): Likewise.
35273 (vorr_s32): Likewise.
35274 (vorr_u8): Likewise.
35275 (vorr_u16): Likewise.
35276 (vorr_u32): Likewise.
35277 (vorr_s64): Likewise.
35278 (vorr_u64): Likewise.
35279 (vorrq_s8): Likewise.
35280 (vorrq_s16): Likewise.
35281 (vorrq_s32): Likewise.
35282 (vorrq_s64): Likewise.
35283 (vorrq_u8): Likewise.
35284 (vorrq_u16): Likewise.
35285 (vorrq_u32): Likewise.
35286 (vorrq_u64): Likewise.
35287 (veor_s8): Likewise.
35288 (veor_s16): Likewise.
35289 (veor_s32): Likewise.
35290 (veor_u8): Likewise.
35291 (veor_u16): Likewise.
35292 (veor_u32): Likewise.
35293 (veor_s64): Likewise.
35294 (veor_u64): Likewise.
35295 (veorq_s8): Likewise.
35296 (veorq_s16): Likewise.
35297 (veorq_s32): Likewise.
35298 (veorq_s64): Likewise.
35299 (veorq_u8): Likewise.
35300 (veorq_u16): Likewise.
35301 (veorq_u32): Likewise.
35302 (veorq_u64): Likewise.
35303 (vbic_s8): Likewise.
35304 (vbic_s16): Likewise.
35305 (vbic_s32): Likewise.
35306 (vbic_u8): Likewise.
35307 (vbic_u16): Likewise.
35308 (vbic_u32): Likewise.
35309 (vbic_s64): Likewise.
35310 (vbic_u64): Likewise.
35311 (vbicq_s8): Likewise.
35312 (vbicq_s16): Likewise.
35313 (vbicq_s32): Likewise.
35314 (vbicq_s64): Likewise.
35315 (vbicq_u8): Likewise.
35316 (vbicq_u16): Likewise.
35317 (vbicq_u32): Likewise.
35318 (vbicq_u64): Likewise.
35319 (vorn_s8): Likewise.
35320 (vorn_s16): Likewise.
35321 (vorn_s32): Likewise.
35322 (vorn_u8): Likewise.
35323 (vorn_u16): Likewise.
35324 (vorn_u32): Likewise.
35325 (vorn_s64): Likewise.
35326 (vorn_u64): Likewise.
35327 (vornq_s8): Likewise.
35328 (vornq_s16): Likewise.
35329 (vornq_s32): Likewise.
35330 (vornq_s64): Likewise.
35331 (vornq_u8): Likewise.
35332 (vornq_u16): Likewise.
35333 (vornq_u32): Likewise.
35334 (vornq_u64): Likewise.
35335
35336 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35337
35338 * wide-int.cc (UTItype): Define.
35339 (UDWtype): Define for appropriate W_TYPE_SIZE.
35340
35341 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
35342
35343 PR tree-optimization/59100
35344 * tree-ssa-phiopt.c: Include tree-inline.h.
35345 (neutral_element_p, absorbing_element_p): New functions.
35346 (value_replacement): Handle conditional binary operations with a
35347 neutral or absorbing element.
35348
35349 2014-05-08 Richard Biener <rguenther@suse.de>
35350
35351 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
35352 folding the expression.
35353 (valueize_expr): Remove.
35354 (visit_reference_op_load): Do not valueize the result of
35355 vn_get_expr_for.
35356 (simplify_binary_expression): Likewise.
35357 (simplify_unary_expression): Likewise.
35358
35359 2014-05-08 Richard Biener <rguenther@suse.de>
35360
35361 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
35362 looking at TYPE_ARG_TYPES.
35363
35364 2014-05-08 Richard Biener <rguenther@suse.de>
35365
35366 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
35367 pointer propagation special-case.
35368
35369 2014-05-08 Bin Cheng <bin.cheng@arm.com>
35370
35371 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
35372 core part of address expressions.
35373
35374 2014-05-08 Alan Modra <amodra@gmail.com>
35375
35376 PR target/60737
35377 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
35378 loads and stores when -mno-strict-align at any alignment.
35379 (expand_block_clear): Similarly. Also correct calculation of
35380 instruction count.
35381
35382 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
35383
35384 PR middle-end/39246
35385 * tree-complex.c (expand_complex_move): Keep line info when expanding
35386 complex move.
35387 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
35388 of complex expression. Use new argument to display correct location
35389 for values coming from phi statement.
35390 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
35391 (warn_uninitialized_phi): Pass location of phi argument to
35392 warn_uninit.
35393 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
35394 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
35395
35396 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
35397
35398 * config/rs6000/predicates.md (indexed_address_mem): New.
35399 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
35400 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
35401 fpstore_ux, fpstore_u.
35402 (sign_extend, indexed, update): New.
35403 (cell_micro): Adjust.
35404 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
35405 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
35406 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
35407 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
35408 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
35409 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
35410 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
35411 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
35412 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
35413 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
35414 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
35415 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
35416 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
35417 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
35418 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
35419
35420 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
35421 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
35422 *vsx_extract_<mode>_store): Adjust.
35423 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
35424 is_cracked_insn, insn_must_be_first_in_group,
35425 insn_must_be_last_in_group): Adjust.
35426
35427 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
35428 Adjust.
35429 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
35430 ppc440-fpstore): Adjust.
35431 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
35432 ppc476-fpstore): Adjust.
35433 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
35434 ppc601-fpstore): Adjust.
35435 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
35436 Adjust.
35437 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
35438 Adjust.
35439 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
35440 ppc7450-fpstore): Adjust.
35441 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
35442 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
35443 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
35444 Adjust.
35445 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
35446 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
35447 cell-fpstore, cell-fpstore-update): Adjust.
35448 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
35449 ppce300c3_store, ppce300c3_fpstore): Adjust.
35450 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
35451 e500mc_fpstore): Adjust.
35452 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
35453 e500mc64_store, e500mc64_fpstore): Adjust.
35454 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
35455 e5500_fpstore): Adjust.
35456 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
35457 e6500_fpstore): Adjust.
35458 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
35459 Adjust.
35460 * config/rs6000/power4.md (power4-load, power4-load-ext,
35461 power4-load-ext-update, power4-load-ext-update-indexed,
35462 power4-load-update-indexed, power4-load-update, power4-fpload,
35463 power4-fpload-update, power4-store, power4-store-update,
35464 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
35465 Adjust.
35466 * config/rs6000/power5.md (power5-load, power5-load-ext,
35467 power5-load-ext-update, power5-load-ext-update-indexed,
35468 power5-load-update-indexed, power5-load-update, power5-fpload,
35469 power5-fpload-update, power5-store, power5-store-update,
35470 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
35471 Adjust.
35472 * config/rs6000/power6.md (power6-load, power6-load-ext,
35473 power6-load-update, power6-load-update-indexed,
35474 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
35475 power6-fpload-update, power6-store, power6-store-update,
35476 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
35477 Adjust.
35478 * config/rs6000/power7.md (power7-load, power7-load-ext,
35479 power7-load-update, power7-load-update-indexed,
35480 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
35481 power7-fpload-update, power7-store, power7-store-update,
35482 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
35483 Adjust.
35484 * config/rs6000/power8.md (power8-load, power8-load-update,
35485 power8-load-ext, power8-load-ext-update, power8-fpload,
35486 power8-fpload-update, power8-store, power8-store-update-indexed,
35487 power8-fpstore, power8-fpstore-update): Adjust.
35488 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
35489 Adjust.
35490 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
35491 titan_lsu_store, titan_lsu_fpstore): Adjust.
35492 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
35493
35494 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
35495
35496 PR target/60884
35497 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
35498 unrolled byte insns. Emit address increments after move insns.
35499
35500 2014-05-07 David Malcolm <dmalcolm@redhat.com>
35501
35502 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
35503 const_gimple, rather than a gimple.
35504 (gimple_call_builtin_p): Likewise, for the three variants.
35505
35506 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
35507 (gimple_call_builtin_p): Likewise, for the three variants.
35508
35509 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35510
35511 PR tree-optimization/61095
35512 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
35513
35514 2014-05-07 Richard Biener <rguenther@suse.de>
35515
35516 PR tree-optimization/61034
35517 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
35518 (maybe_skip_until): Use translate to take into account
35519 lattices when trying to do disambiguations.
35520 (get_continuation_for_phi_1): Likewise.
35521 (get_continuation_for_phi): Adjust for added translate arguments.
35522 (walk_non_aliased_vuses): Likewise.
35523 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
35524 (walk_non_aliased_vuses): Likewise.
35525 (call_may_clobber_ref_p_1): Declare.
35526 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
35527 calls. Stop early if we are only supposed to disambiguate.
35528 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
35529
35530 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
35531
35532 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
35533 Emit an error when the function has arguments.
35534
35535 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
35536
35537 * cfgloop.h (unswitch_loops): Remove.
35538 * doc/passes.texi: Remove references to loop-unswitch.c
35539 * timevar.def (TV_LOOP_UNSWITCH): Remove.
35540
35541 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
35542
35543 * tree-vect-data-refs.c (vect_grouped_load_supported): New
35544 check for loads group of length 3.
35545 (vect_permute_load_chain): New permutations for loads group of
35546 length 3.
35547 * tree-vect-stmts.c (vect_model_load_cost): Change cost
35548 of vec_perm_shuffle for the new permutations.
35549
35550 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
35551
35552 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
35553 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
35554 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
35555 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
35556 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
35557 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
35558 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
35559 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
35560
35561 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
35562
35563 * loop-unswitch.c: Delete.
35564
35565 2014-05-07 Richard Biener <rguenther@suse.de>
35566
35567 * config.gcc: Always set need_64bit_hwint to yes.
35568
35569 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
35570
35571 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
35572 of using optimize_size.
35573
35574 2014-05-06 Mike Stump <mikestump@comcast.net>
35575
35576 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
35577
35578 2014-05-06 Joseph Myers <joseph@codesourcery.com>
35579
35580 * config/i386/sse.md (*mov<mode>_internal)
35581 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
35582 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
35583 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
35584 (*<code><mode>3, *andnot<mode>3<mask_name>)
35585 (<mask_codefor><code><mode>3<mask_name>): Only consider
35586 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
35587
35588 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
35589
35590 Revert:
35591 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
35592
35593 * lra-constraints.c (valid_address_p): Move earlier in file.
35594 Add a constraint argument to the address_info version.
35595 (satisfies_memory_constraint_p): New function.
35596 (satisfies_address_constraint_p): Likewise.
35597 (process_alt_operands, curr_insn_transform): Use them.
35598 (process_address): Pass the constraint to valid_address_p when
35599 checking address operands.
35600
35601 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
35602
35603 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
35604 to their respective blocks. Fix inadvertent use of "node".
35605
35606 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
35607
35608 * emit-rtl.c (init_derived_machine_modes): New functionm, split
35609 out from...
35610 (init_emit_once): ...here.
35611 * rtl.h (init_derived_machine_modes): Declare.
35612 * toplev.c (do_compile): Call it even if no_backend.
35613
35614 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
35615 Mike Stump <mikestump@comcast.net>
35616 Richard Sandiford <rdsandiford@googlemail.com>
35617 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35618
35619 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
35620 (rtx_equal_for_memref_p): Update comment.
35621 (adjust_offset_for_component_ref): Use wide-int interfaces.
35622 * builtins.c (get_object_alignment_2): Likewise.
35623 (c_readstr): Likewise.
35624 (target_char_cast): Add comment.
35625 (determine_block_size): Use wide-int interfaces.
35626 (expand_builtin_signbit): Likewise.
35627 (fold_builtin_int_roundingfn): Likewise.
35628 (fold_builtin_bitop): Likewise.
35629 (fold_builtin_bswap): Likewise.
35630 (fold_builtin_logarithm): Use signop.
35631 (fold_builtin_pow): Likewise.
35632 (fold_builtin_memory_op): Use wide-int interfaces.
35633 (fold_builtin_object_size): Likewise.
35634 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
35635 nb_iterations_estimate.
35636 (record_niter_bound): Use wide-int interfaces.
35637 (get_estimated_loop_iterations_int): Likewise.
35638 (get_estimated_loop_iterations): Likewise.
35639 (get_max_loop_iterations): Likewise.
35640 * cfgloop.h: Include wide-int.h.
35641 (struct nb_iter_bound): Change bound to widest_int.
35642 (struct loop): Change nb_iterations_upper_bound and
35643 nb_iterations_estimate to widest_int.
35644 (record_niter_bound): Switch to use widest_int.
35645 (get_estimated_loop_iterations): Likewise.
35646 (get_max_loop_iterations): Likewise.
35647 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
35648 update for wide-int.
35649 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
35650 * combine.c (try_combine): Likewise.
35651 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
35652 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
35653 interfaces.
35654 (aarch64_float_const_representable_p): Likewise.
35655 * config/arc/arc.c: Include wide-int.h.
35656 (arc_can_use_doloop_p): Use wide-int interfaces.
35657 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
35658 (vfp3_const_double_index): Likewise.
35659 * config/avr/avr.c (avr_out_round): Likewise.
35660 (avr_fold_builtin): Likewise.
35661 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
35662 (bfin_can_use_doloop_p): Likewise.
35663 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
35664 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
35665 * config/i386/i386.c: Include wide-int.h.
35666 (ix86_data_alignment): Use wide-int interfaces.
35667 (ix86_local_alignment): Likewise.
35668 (ix86_emit_swsqrtsf): Update real_from_integer.
35669 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
35670 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
35671 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
35672 (zero_constant): Likewise.
35673 (input_operand): Likewise.
35674 (splat_input_operand): Likewise.
35675 (non_logical_cint_operand): Change const_double to const_wide_int.
35676 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
35677 (easy_altivec_constant): Remove comment.
35678 (paired_expand_vector_init): Use CONSTANT_P.
35679 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
35680 (rs6000_emit_move): Update checks.
35681 (rs6000_aggregate_candidate): Use wide-int interfaces.
35682 (rs6000_expand_ternop_builtin): Likewise.
35683 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
35684 (rs6000_assemble_integer): Likewise.
35685 (rs6000_hash_constant): Likewise.
35686 (output_toc): Likewise.
35687 (rs6000_rtx_costs): Likewise.
35688 (rs6000_emit_swrsqrt); Update call to real_from_integer.
35689 * config/rs6000/rs6000-c.c: Include wide-int.h.
35690 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
35691 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
35692 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
35693 Handle CONST_WIDE_INT.
35694 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
35695 Use tree_fits_uhwi_p.
35696 * config/sparc/sparc.c: Include wide-int.h.
35697 (sparc_fold_builtin): Use wide-int interfaces.
35698 * config/vax/vax.c: Include wide-int.h.
35699 (vax_float_literal): Use real_from_integer.
35700 * coretypes.h (struct hwivec_def): New.
35701 (hwivec): New.
35702 (const_hwivec): New.
35703 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
35704 (equiv_constant): Handle CONST_WIDE_INT.
35705 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
35706 (cselib_hash_rtx): Handle CONST_WIDE_INT.
35707 * dbxout.c (stabstr_U): Use wide-int interfaces.
35708 (dbxout_type): Update to use cst_fits_shwi_p.
35709 * defaults.h (LOG2_BITS_PER_UNIT): Define.
35710 (TARGET_SUPPORTS_WIDE_INT): Add default.
35711 * dfp.c: Include wide-int.h.
35712 (decimal_real_to_integer2): Use wide-int interfaces and rename to
35713 decimal_real_to_integer.
35714 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
35715 decimal_real_to_integer.
35716 * doc/generic.texi (Constant expressions): Update for wide_int.
35717 * doc/rtl.texi (const_double): Likewise.
35718 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
35719 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
35720 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
35721 (REAL_VALUE_FROM_INT): Remove.
35722 (TARGET_SUPPORTS_WIDE_INT): New.
35723 * doc/tm.texi: Regenerate.
35724 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
35725 * double-int.h: Include wide-int.h.
35726 (struct wi::int_traits): New.
35727 * dwarf2out.c (get_full_len): New.
35728 (dw_val_equal_p): Add case dw_val_class_wide_int.
35729 (size_of_loc_descr): Likewise.
35730 (output_loc_operands): Likewise.
35731 (insert_double): Remove.
35732 (insert_wide_int): New.
35733 (add_AT_wide): New.
35734 (print_die): Add case dw_val_class_wide_int.
35735 (attr_checksum): Likewise.
35736 (attr_checksum_ordered): Likewise.
35737 (same_dw_val_p): Likewise.
35738 (size_of_die): Likewise.
35739 (value_format): Likewise.
35740 (output_die): Likewise.
35741 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
35742 Use wide-int.
35743 (clz_loc_descriptor): Use wide-int interfaces.
35744 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
35745 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
35746 (round_up_to_align): Use wide-int interfaces.
35747 (field_byte_offset): Likewise.
35748 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
35749 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
35750 CONST_DOUBLE handling. Use wide-int interfaces.
35751 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
35752 (gen_enumeration_type_die): Use add_AT_wide.
35753 (hash_loc_operands): Add case dw_val_class_wide_int.
35754 (compare_loc_operands): Likewise.
35755 * dwarf2out.h: Include wide-int.h.
35756 (wide_int_ptr): New.
35757 (enum dw_val_class): Add dw_val_class_wide_int.
35758 (struct dw_val_struct): Add val_wide.
35759 * emit-rtl.c (const_wide_int_htab): New.
35760 (const_wide_int_htab_hash): New.
35761 (const_wide_int_htab_eq): New.
35762 (lookup_const_wide_int): New.
35763 (const_double_htab_hash): Use wide-int interfaces.
35764 (const_double_htab_eq): Likewise.
35765 (rtx_to_double_int): Conditionally compile for wide-int.
35766 (immed_double_int_const): Rename to immed_wide_int_const and
35767 update for wide-int.
35768 (immed_double_const): Conditionally compile for wide-int.
35769 (init_emit_once): Use wide-int interfaces.
35770 * explow.c (plus_constant): Likewise.
35771 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
35772 (lshift_value): Use wide-int interfaces.
35773 (expand_mult): Likewise.
35774 (choose_multiplier): Likewise.
35775 (expand_smod_pow2): Likewise.
35776 (make_tree): Likewise.
35777 * expr.c (convert_modes): Consolidate handling of constants.
35778 Use wide-int interfaces.
35779 (emit_group_load_1): Add note.
35780 (store_expr): Update comment.
35781 (get_inner_reference): Use wide-int interfaces.
35782 (expand_constructor): Update comment.
35783 (expand_expr_real_2): Use wide-int interfaces.
35784 (expand_expr_real_1): Likewise.
35785 (reduce_to_bit_field_precision): Likewise.
35786 (const_vector_from_tree): Likewise.
35787 * final.c: Include wide-int-print.h.
35788 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
35789 * fixed-value.c: Include wide-int.h.
35790 (fixed_from_string): Use wide-int interfaces.
35791 (fixed_to_decimal): Likewise.
35792 (fixed_convert_from_real): Likewise.
35793 (real_convert_from_fixed): Likewise.
35794 * fold-const.h (mem_ref_offset): Return an offset_int.
35795 (div_if_zero_remainder): Remove code parameter.
35796 * fold-const.c (div_if_zero_remainder): Remove code parameter.
35797 Use wide-int interfaces.
35798 (may_negate_without_overflow_p): Use wide-int interfaces.
35799 (negate_expr_p): Likewise.
35800 (fold_negate_expr): Likewise.
35801 (int_const_binop_1): Likewise.
35802 (const_binop): Likewise.
35803 (fold_convert_const_int_from_int): Likewise.
35804 (fold_convert_const_int_from_real): Likewise.
35805 (fold_convert_const_int_from_fixed): Likewise.
35806 (fold_convert_const_fixed_from_int): Likewise.
35807 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
35808 (sign_bit_p): Use wide-int interfaces.
35809 (make_range_step): Likewise.
35810 (build_range_check): Likewise. Pass an integer of the correct type
35811 instead of using integer_one_node.
35812 (range_predecessor): Pass an integer of the correct type instead
35813 of using integer_one_node.
35814 (range_successor): Likewise.
35815 (merge_ranges): Likewise.
35816 (unextend): Use wide-int interfaces.
35817 (extract_muldiv_1): Likewise.
35818 (fold_div_compare): Likewise.
35819 (fold_single_bit_test): Likewise.
35820 (fold_sign_changed_comparison): Likewise.
35821 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
35822 (fold_plusminus_mult_expr): Use wide-int interfaces.
35823 (native_encode_int): Likewise.
35824 (native_interpret_int): Likewise.
35825 (fold_unary_loc): Likewise.
35826 (pointer_may_wrap_p): Likewise.
35827 (size_low_cst): Likewise.
35828 (mask_with_tz): Likewise.
35829 (fold_binary_loc): Likewise.
35830 (fold_ternary_loc): Likewise.
35831 (multiple_of_p): Likewise.
35832 (tree_call_nonnegative_warnv_p): Update calls to
35833 tree_int_cst_min_precision and real_from_integer.
35834 (fold_negate_const): Use wide-int interfaces.
35835 (fold_abs_const): Likewise.
35836 (fold_relational_const): Use tree_int_cst_lt.
35837 (round_up_loc): Use wide-int interfaces.
35838 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
35839 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
35840 * gengtype.c: Remove include of double-int.h.
35841 (do_typedef): Use wide-int interfaces.
35842 (open_base_files): Add wide-int.h.
35843 (main): Add offset_int and widest_int typedefs.
35844 * gengtype-lex.l: Handle "^".
35845 (CXX_KEYWORD): Add "static".
35846 * gengtype-parse.c (require3): New.
35847 (require_template_declaration): Handle constant template arguments
35848 and nested templates.
35849 * gengtype-state.c: Don't include "double-int.h".
35850 * genpreds.c (write_one_predicate_function): Update comment.
35851 (write_tm_constrs_h): Add check for hval and lval use in
35852 CONST_WIDE_INT.
35853 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
35854 (add_to_sequence): Likewise.
35855 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
35856 and const_double_operand.
35857 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
35858 interfaces.
35859 * gimple-fold.c (get_base_constructor): Likewise.
35860 (fold_array_ctor_reference): Likewise.
35861 (fold_nonarray_ctor_reference): Likewise.
35862 (fold_const_aggregate_ref_1): Likewise.
35863 (gimple_val_nonnegative_real_p): Likewise.
35864 (gimple_fold_indirect_ref): Likewise.
35865 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
35866 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
35867 (struct slsr_cand_d): Change index to be widest_int.
35868 (struct incr_info_d): Change incr to be widest_int.
35869 (alloc_cand_and_find_basis): Use wide-int interfaces.
35870 (slsr_process_phi): Likewise.
35871 (backtrace_base_for_ref): Likewise. Return a widest_int.
35872 (restructure_reference): Take a widest_int instead of a double_int.
35873 (slsr_process_ref): Use wide-int interfaces.
35874 (create_mul_ssa_cand): Likewise.
35875 (create_mul_imm_cand): Likewise.
35876 (create_add_ssa_cand): Likewise.
35877 (create_add_imm_cand): Take a widest_int instead of a double_int.
35878 (slsr_process_add): Use wide-int interfaces.
35879 (slsr_process_cast): Likewise.
35880 (slsr_process_copy): Likewise.
35881 (dump_candidate): Likewise.
35882 (dump_incr_vec): Likewise.
35883 (replace_ref): Likewise.
35884 (cand_increment): Likewise. Return a widest_int.
35885 (cand_abs_increment): Likewise.
35886 (replace_mult_candidate): Take a widest_int instead of a double_int.
35887 (replace_unconditional_candidate): Use wide-int interfaces.
35888 (incr_vec_index): Take a widest_int instead of a double_int.
35889 (create_add_on_incoming_edge): Likewise.
35890 (create_phi_basis): Use wide-int interfaces.
35891 (replace_conditional_candidate): Likewise.
35892 (record_increment): Take a widest_int instead of a double_int.
35893 (record_phi_increments): Use wide-int interfaces.
35894 (phi_incr_cost): Take a widest_int instead of a double_int.
35895 (lowest_cost_path): Likewise.
35896 (total_savings): Likewise.
35897 (analyze_increments): Use wide-int interfaces.
35898 (ncd_with_phi): Take a widest_int instead of a double_int.
35899 (ncd_of_cand_and_phis): Likewise.
35900 (nearest_common_dominator_for_cands): Likewise.
35901 (insert_initializers): Use wide-int interfaces.
35902 (all_phi_incrs_profitable): Likewise.
35903 (replace_one_candidate): Likewise.
35904 (replace_profitable_candidates): Likewise.
35905 * godump.c: Include wide-int-print.h.
35906 (go_output_typedef): Use wide-int interfaces.
35907 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
35908 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
35909 (build_loop_iteration_domains): Likewise.
35910 * hooks.h: Include wide-int.h rather than double-int.h.
35911 (hook_bool_dint_dint_uint_bool_true): Delete.
35912 (hook_bool_wint_wint_uint_bool_true): Declare.
35913 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
35914 (hook_bool_wint_wint_uint_bool_true): New.
35915 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
35916 interfaces.
35917 (ubsan_expand_si_overflow_mul_check): Likewise.
35918 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
35919 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
35920 (get_ancestor_addr_info): Likewise.
35921 (ipa_modify_call_arguments): Likewise.
35922 * loop-doloop.c (doloop_modify): Likewise.
35923 (doloop_optimize): Likewise.
35924 * loop-iv.c (iv_number_of_iterations): Likewise.
35925 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
35926 (unroll_loop_constant_iterations): Likewise.
35927 (decide_unroll_runtime_iterations): Likewise.
35928 (unroll_loop_runtime_iterations): Likewise.
35929 (decide_peel_simple): Likewise.
35930 (decide_unroll_stupid): Likewise.
35931 * lto-streamer-in.c (streamer_read_wi): Add.
35932 (input_cfg): Use wide-int interfaces.
35933 (lto_input_tree_1): Likewise.
35934 * lto-streamer-out.c (streamer_write_wi): Add.
35935 (hash_tree): Use wide-int interfaces.
35936 (output_cfg): Likewise.
35937 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
35938 (GTFILES): Add wide-int.h and signop.h.
35939 (TAGS): Look for .cc files too.
35940 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
35941 * optabs.c (expand_subword_shift): Likewise.
35942 (expand_doubleword_shift): Likewise.
35943 (expand_absneg_bit): Likewise.
35944 (expand_copysign_absneg): Likewise.
35945 (expand_copysign_bit): Likewise.
35946 * postreload.c (reload_cse_simplify_set): Likewise.
35947 * predict.c (predict_iv_comparison): Likewise.
35948 * pretty-print.h: Include wide-int-print.h.
35949 (pp_wide_int) New.
35950 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
35951 * print-tree.c: Include wide-int-print.h.
35952 (print_node_brief): Use wide-int interfaces.
35953 (print_node): Likewise.
35954 * read-rtl.c (validate_const_wide_int): New.
35955 (read_rtx_code): Add CONST_WIDE_INT case.
35956 * real.c: Include wide-int.h.
35957 (real_to_integer2): Delete.
35958 (real_to_integer): New function, returning a wide_int.
35959 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
35960 (ten_to_ptwo): Update call to real_from_integer.
35961 (real_digit): Likewise.
35962 * real.h: Include signop.h, wide-int.h and insn-modes.h.
35963 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
35964 (REAL_VALUE_TO_INT): Delete.
35965 (real_to_integer): Declare a wide-int form.
35966 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
35967 * recog.c (const_int_operand): Improve comment.
35968 (const_scalar_int_operand): New.
35969 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
35970 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
35971 (split_double): Likewise.
35972 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
35973 (rtx_size): Likewise.
35974 (rtx_alloc_stat_v): New.
35975 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
35976 (cwi_output_hex): New.
35977 (iterative_hash_rtx): Handle CONST_WIDE_INT.
35978 (cwi_check_failed_bounds): New.
35979 * rtl.def (CONST_WIDE_INT): New.
35980 * rtl.h: Include <utility> and wide-int.h.
35981 (struct hwivec_def): New.
35982 (CWI_GET_NUM_ELEM): New.
35983 (CWI_PUT_NUM_ELEM): New.
35984 (struct rtx_def): Add num_elem and hwiv.
35985 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
35986 (CASE_CONST_UNIQUE): Likewise.
35987 (CASE_CONST_ANY): Likewise.
35988 (CONST_SCALAR_INT_P): Likewise.
35989 (CONST_WIDE_INT_P): New.
35990 (CWI_ELT): New.
35991 (HWIVEC_CHECK): New.
35992 (cwi_check_failed_bounds): New.
35993 (CWI_ELT): New.
35994 (HWIVEC_CHECK): New.
35995 (CONST_WIDE_INT_VEC) New.
35996 (CONST_WIDE_INT_NUNITS) New.
35997 (CONST_WIDE_INT_ELT) New.
35998 (rtx_mode_t): New type.
35999 (wi::int_traits <rtx_mode_t>): New.
36000 (wi::shwi): New.
36001 (wi::min_value): New.
36002 (wi::max_value): New.
36003 (rtx_alloc_v) New.
36004 (const_wide_int_alloc): New.
36005 (immed_wide_int_const): New.
36006 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
36007 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
36008 * signop.h: New file.
36009 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
36010 (simplify_const_unary_operation): Use wide-int interfaces.
36011 (simplify_binary_operation_1): Likewise.
36012 (simplify_const_binary_operation): Likewise.
36013 (simplify_const_relational_operation): Likewise.
36014 (simplify_immed_subreg): Likewise.
36015 * stmt.c (expand_case): Likewise.
36016 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
36017 signop rather than a bool.
36018 * stor-layout.c (layout_type): Use wide-int interfaces.
36019 (initialize_sizetypes): Update calls to
36020 set_min_and_max_values_for_integral_type.
36021 (set_min_and_max_values_for_integral_type): Take a signop rather
36022 than a bool. Use wide-int interfaces.
36023 (fixup_signed_type): Update accordingly. Remove
36024 HOST_BITS_PER_DOUBLE_INT limit.
36025 (fixup_unsigned_type): Likewise.
36026 * system.h (STATIC_CONSTANT_P): New.
36027 (STATIC_ASSERT): New.
36028 * target.def (can_use_doloop_p): Take widest_ints rather than
36029 double_ints.
36030 * target.h: Include wide-int.h rather than double-int.h.
36031 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
36032 than double_ints.
36033 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
36034 rather than INT_CST_LT_UNSIGNED.
36035 (can_use_doloop_if_innermost): Take widest_ints rather than
36036 double_ints.
36037 * tree-affine.c: Include wide-int-print.h.
36038 (double_int_ext_for_comb): Delete.
36039 (wide_int_ext_for_comb): New.
36040 (aff_combination_zero): Use wide-int interfaces.
36041 (aff_combination_const): Take a widest_int instead of a double_int.
36042 (aff_combination_elt): Use wide-int interfaces.
36043 (aff_combination_scale): Take a widest_int instead of a double_int.
36044 (aff_combination_add_elt): Likewise.
36045 (aff_combination_add_cst): Likewise.
36046 (aff_combination_add): Use wide-int interfaces.
36047 (aff_combination_convert): Likewise.
36048 (tree_to_aff_combination): Likewise.
36049 (add_elt_to_tree): Take a widest_int instead of a double_int.
36050 (aff_combination_to_tree): Use wide-int interfaces.
36051 (aff_combination_remove_elt): Likewise.
36052 (aff_combination_add_product): Take a widest_int instead of
36053 a double_int.
36054 (aff_combination_mult): Use wide-int interfaces.
36055 (aff_combination_expand): Likewise.
36056 (double_int_constant_multiple_p): Delete.
36057 (wide_int_constant_multiple_p): New.
36058 (aff_combination_constant_multiple_p): Take a widest_int pointer
36059 instead of a double_int pointer.
36060 (print_aff): Use wide-int interfaces.
36061 (get_inner_reference_aff): Take a widest_int pointer
36062 instead of a double_int pointer.
36063 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
36064 * tree-affine.h: Include wide-int.h.
36065 (struct aff_comb_elt): Change type of coef to widest_int.
36066 (struct affine_tree_combination): Change type of offset to widest_int.
36067 (double_int_ext_for_comb): Delete.
36068 (wide_int_ext_for_comb): New.
36069 (aff_combination_const): Use widest_int instead of double_int.
36070 (aff_combination_scale): Likewise.
36071 (aff_combination_add_elt): Likewise.
36072 (aff_combination_constant_multiple_p): Likewise.
36073 (get_inner_reference_aff): Likewise.
36074 (aff_comb_cannot_overlap_p): Likewise.
36075 (aff_combination_zero_p): Use wide-int interfaces.
36076 * tree.c: Include tree.h.
36077 (init_ttree): Use make_int_cst.
36078 (tree_code_size): Removed code for INTEGER_CST case.
36079 (tree_size): Add INTEGER_CST case.
36080 (make_node_stat): Update comment.
36081 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
36082 (build_int_cst_type): Use wide-int interfaces.
36083 (double_int_to_tree): Likewise.
36084 (double_int_fits_to_tree_p): Delete.
36085 (force_fit_type_double): Delete.
36086 (force_fit_type): New.
36087 (int_cst_hash_hash): Use wide-int interfaces.
36088 (int_cst_hash_eq): Likewise.
36089 (build_int_cst_wide): Delete.
36090 (wide_int_to_tree): New.
36091 (cache_integer_cst): Use wide-int interfaces.
36092 (build_low_bits_mask): Likewise.
36093 (cst_and_fits_in_hwi): Likewise.
36094 (real_value_from_int_cst): Likewise.
36095 (make_int_cst_stat): New.
36096 (integer_zerop): Use wide_int interfaces.
36097 (integer_onep): Likewise.
36098 (integer_all_onesp): Likewise.
36099 (integer_pow2p): Likewise.
36100 (integer_nonzerop): Likewise.
36101 (tree_log2): Likewise.
36102 (tree_floor_log2): Likewise.
36103 (tree_ctz): Likewise.
36104 (int_size_in_bytes): Likewise.
36105 (mem_ref_offset): Return an offset_int rather than a double_int.
36106 (build_type_attribute_qual_variant): Use wide_int interfaces.
36107 (type_hash_eq): Likewise
36108 (tree_int_cst_equal): Likewise.
36109 (tree_int_cst_lt): Delete.
36110 (tree_int_cst_compare): Likewise.
36111 (tree_fits_shwi_p): Use wide_int interfaces.
36112 (tree_fits_uhwi_p): Likewise.
36113 (tree_int_cst_sign_bit): Likewise.
36114 (tree_int_cst_sgn): Likewise.
36115 (tree_int_cst_min_precision): Take a signop rather than a bool.
36116 (simple_cst_equal): Use wide_int interfaces.
36117 (compare_tree_int): Likewise.
36118 (iterative_hash_expr): Likewise.
36119 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
36120 INT_CST_LT.
36121 (get_type_static_bounds): Use wide_int interfaces.
36122 (tree_int_cst_elt_check_failed): New.
36123 (build_common_tree_nodes): Reordered to set prec before filling in
36124 value.
36125 (int_cst_value): Check cst_and_fits_in_hwi.
36126 (widest_int_cst_value): Use wide_int interfaces.
36127 (upper_bound_in_type): Likewise.
36128 (lower_bound_in_type): Likewise.
36129 (num_ending_zeros): Likewise.
36130 (drop_tree_overflow): Likewise.
36131 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
36132 (gen_conditions_for_pow_cst_base): Likewise.
36133 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
36134 (group_case_labels_stmt): Use wide-int interfaces.
36135 (verify_gimple_assign_binary): Likewise.
36136 (print_loop): Likewise.
36137 * tree-chrec.c (tree_fold_binomial): Likewise.
36138 * tree-core.h (struct tree_base): Add int_length.
36139 (struct tree_int_cst): Change rep of value.
36140 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
36141 (dr_may_alias_p): Likewise.
36142 (max_stmt_executions_tree): Likewise.
36143 * tree.def (INTEGER_CST): Update comment.
36144 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
36145 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
36146 * tree-dump.c: Include wide-int.h and wide-int-print.h.
36147 (dequeue_and_dump): Use wide-int interfaces.
36148 * tree.h: Include wide-int.h.
36149 (NULL_TREE): Moved to earlier loc in file.
36150 (TREE_INT_CST_ELT_CHECK): New.
36151 (tree_int_cst_elt_check_failed): New.
36152 (TYPE_SIGN): New.
36153 (TREE_INT_CST): Delete.
36154 (TREE_INT_CST_LOW): Use wide-int interfaces.
36155 (TREE_INT_CST_HIGH): Delete.
36156 (TREE_INT_CST_NUNITS): New.
36157 (TREE_INT_CST_EXT_NUNITS): Likewise.
36158 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
36159 (TREE_INT_CST_ELT): Likewise.
36160 (INT_CST_LT): Delete.
36161 (tree_int_cst_elt_check): New (two forms).
36162 (type_code_size): Update comment.
36163 (make_int_cst_stat, make_int_cst): New.
36164 (tree_to_double_int): Delete.
36165 (double_int_fits_to_tree_p): Delete.
36166 (force_fit_type_double): Delete.
36167 (build_int_cstu): Replace with out-of-line function.
36168 (build_int_cst_wide): Delete.
36169 (tree_int_cst_lt): Define inline.
36170 (tree_int_cst_le): New.
36171 (tree_int_cst_compare): Define inline.
36172 (tree_int_cst_min_precision): Take a signop rather than a bool.
36173 (wi::int_traits <const_tree>): New.
36174 (wi::int_traits <tree>): New.
36175 (wi::extended_tree): New.
36176 (wi::int_traits <wi::extended_tree>): New.
36177 (wi::to_widest): New.
36178 (wi::to_offset): New.
36179 (wi::fits_to_tree_p): New.
36180 (wi::min_value): New.
36181 (wi::max_value): New.
36182 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
36183 (copy_tree_body_r): Likewise.
36184 * tree-object-size.c (compute_object_offset): Likewise.
36185 (addr_object_size): Likewise.
36186 * tree-predcom.c: Include wide-int-print.h.
36187 (struct dref_d): Change type of offset to widest_int.
36188 (dump_dref): Call wide-int printer.
36189 (aff_combination_dr_offset): Use wide-int interfaces.
36190 (determine_offset): Take a widest_int pointer rather than a
36191 double_int pointer.
36192 (split_data_refs_to_components): Use wide-int interfaces.
36193 (suitable_component_p): Likewise.
36194 (order_drefs): Likewise.
36195 (add_ref_to_chain): Likewise.
36196 (valid_initializer_p): Likewise.
36197 (determine_roots_comp): Likewise.
36198 * tree-pretty-print.c: Include wide-int-print.h.
36199 (dump_generic_node): Use wide-int interfaces.
36200 * tree-sra.c (sra_ipa_modify_expr): Likewise.
36201 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
36202 (move_fixed_address_to_symbol): Likewise.
36203 (move_hint_to_base): Likewise.
36204 (move_pointer_to_base): Likewise.
36205 (move_variant_to_index): Likewise.
36206 (most_expensive_mult_to_index): Likewise.
36207 (addr_to_parts): Likewise.
36208 (copy_ref_info): Likewise.
36209 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
36210 (indirect_refs_may_alias_p): Likewise.
36211 (stmt_kills_ref_p_1): Likewise.
36212 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
36213 * tree-ssa-ccp.c: Update comment at top of file. Include
36214 wide-int-print.h.
36215 (struct prop_value_d): Change type of mask to widest_int.
36216 (extend_mask): New function.
36217 (dump_lattice_value): Use wide-int interfaces.
36218 (get_default_value): Likewise.
36219 (set_constant_value): Likewise.
36220 (set_value_varying): Likewise.
36221 (valid_lattice_transition): Likewise.
36222 (set_lattice_value): Likewise.
36223 (value_to_double_int): Delete.
36224 (value_to_wide_int): New.
36225 (get_value_from_alignment): Use wide-int interfaces.
36226 (get_value_for_expr): Likewise.
36227 (do_dbg_cnt): Likewise.
36228 (ccp_finalize): Likewise.
36229 (ccp_lattice_meet): Likewise.
36230 (bit_value_unop_1): Use widest_ints rather than double_ints.
36231 (bit_value_binop_1): Likewise.
36232 (bit_value_unop): Use wide-int interfaces.
36233 (bit_value_binop): Likewise.
36234 (bit_value_assume_aligned): Likewise.
36235 (evaluate_stmt): Likewise.
36236 (ccp_fold_stmt): Likewise.
36237 (visit_cond_stmt): Likewise.
36238 (ccp_visit_stmt): Likewise.
36239 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
36240 (constant_pointer_difference): Likewise.
36241 (associate_pointerplus): Likewise.
36242 (combine_conversions): Likewise.
36243 * tree-ssa-loop.h: Include wide-int.h.
36244 (struct tree_niter_desc): Change type of max to widest_int.
36245 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
36246 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
36247 (remove_redundant_iv_tests): Likewise.
36248 (canonicalize_loop_induction_variables): Likewise.
36249 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
36250 (constant_multiple_of): Take a widest_int pointer instead of
36251 a double_int pointer.
36252 (get_computation_aff): Use wide-int interfaces.
36253 (ptr_difference_cost): Likewise.
36254 (difference_cost): Likewise.
36255 (get_loop_invariant_expr_id): Likewise.
36256 (get_computation_cost_at): Likewise.
36257 (iv_elimination_compare_lt): Likewise.
36258 (may_eliminate_iv): Likewise.
36259 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
36260 instead of double_int.
36261 (max_loop_iterations): Likewise.
36262 (max_stmt_executions): Likewise.
36263 (estimated_stmt_executions): Likewise.
36264 * tree-ssa-loop-niter.c: Include wide-int-print.h.
36265 (split_to_var_and_offset): Use wide-int interfaces.
36266 (determine_value_range): Likewise.
36267 (bound_difference_of_offsetted_base): Likewise.
36268 (bounds_add): Take a widest_int instead of a double_int.
36269 (number_of_iterations_ne_max): Use wide-int interfaces.
36270 (number_of_iterations_ne): Likewise.
36271 (number_of_iterations_lt_to_ne): Likewise.
36272 (assert_loop_rolls_lt): Likewise.
36273 (number_of_iterations_lt): Likewise.
36274 (number_of_iterations_le): Likewise.
36275 (number_of_iterations_cond): Likewise.
36276 (number_of_iterations_exit): Likewise.
36277 (finite_loop_p): Likewise.
36278 (derive_constant_upper_bound_assign): Likewise.
36279 (derive_constant_upper_bound): Return a widest_int.
36280 (derive_constant_upper_bound_ops): Likewise.
36281 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
36282 (record_estimate): Take a widest_int rather than a double_int.
36283 (record_nonwrapping_iv): Use wide-int interfaces.
36284 (double_int_cmp): Delete.
36285 (wide_int_cmp): New.
36286 (bound_index): Take a widest_int rather than a double_int.
36287 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
36288 (maybe_lower_iteration_bound): Likewise.
36289 (estimate_numbers_of_iterations_loop): Likewise.
36290 (estimated_loop_iterations): Take a widest_int pointer than than
36291 a double_int pointer.
36292 (estimated_loop_iterations_int): Use wide-int interfaces.
36293 (max_loop_iterations): Take a widest_int pointer than than
36294 a double_int pointer.
36295 (max_loop_iterations_int): Use wide-int interfaces.
36296 (max_stmt_executions): Take a widest_int pointer than than
36297 a double_int pointer.
36298 (estimated_stmt_executions): Likewise.
36299 (n_of_executions_at_most): Use wide-int interfaces.
36300 (scev_probably_wraps_p): Likewise.
36301 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
36302 to real_to_integer.
36303 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
36304 interfaces.
36305 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
36306 double_ints. Adjust for trailing_wide_ints <3> representation.
36307 (set_nonzero_bits): Likewise.
36308 (get_range_info): Return wide_ints rather than double_ints.
36309 Adjust for trailing_wide_ints <3> representation.
36310 (get_nonzero_bits): Likewise.
36311 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
36312 representation.
36313 * tree-ssanames.h (struct range_info_def): Replace min, max and
36314 nonzero_bits with a trailing_wide_ints <3>.
36315 (set_range_info): Use wide_int_refs rather than double_ints.
36316 (set_nonzero_bits): Likewise.
36317 (get_range_info): Return wide_ints rather than double_ints.
36318 (get_nonzero_bits): Likewise.
36319 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
36320 * tree-ssa-pre.c (phi_translate_1): Likewise.
36321 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
36322 (acceptable_pow_call): Likewise.
36323 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
36324 interfaces.
36325 (vn_reference_fold_indirect): Likewise.
36326 (vn_reference_maybe_forwprop_address): Likewise.
36327 (valueize_refs_1): Likewise.
36328 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
36329 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
36330 tree_int_cst_lt and tree_int_cst_le.
36331 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
36332 interfaces.
36333 (streamer_alloc_tree): Likewise.
36334 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
36335 (streamer_write_tree_header): Likewise.
36336 (streamer_write_integer_cst): Likewise.
36337 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
36338 (build_constructors): Likewise.
36339 (array_value_type): Likewise.
36340 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
36341 (vect_check_gather): Likewise.
36342 * tree-vect-generic.c (build_replicated_const): Likewise.
36343 (expand_vector_divmod): Likewise.
36344 * tree-vect-loop.c (vect_transform_loop): Likewise.
36345 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
36346 (vect_do_peeling_for_alignment): Likewise.
36347 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
36348 * tree-vrp.c: Include wide-int.h.
36349 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
36350 (extract_range_from_assert): Use wide-int interfaces.
36351 (vrp_int_const_binop): Likewise.
36352 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
36353 double_int pointers.
36354 (ranges_from_anti_range): Use wide-int interfaces.
36355 (quad_int_cmp): Delete.
36356 (quad_int_pair_sort): Likewise.
36357 (extract_range_from_binary_expr_1): Use wide-int interfaces.
36358 (extract_range_from_unary_expr_1): Likewise.
36359 (adjust_range_with_scev): Likewise.
36360 (masked_increment): Take and return wide_ints rather than double_ints.
36361 (register_edge_assert_for_2): Use wide-int interfaces.
36362 (check_array_ref): Likewise.
36363 (search_for_addr_array): Likewise.
36364 (maybe_set_nonzero_bits): Likewise.
36365 (union_ranges): Pass an integer of the correct type instead of
36366 using integer_one_node.
36367 (intersect_ranges): Likewise.
36368 (simplify_truth_ops_using_ranges): Likewise.
36369 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
36370 (range_fits_type_p): Likewise.
36371 (simplify_cond_using_ranges): Likewise. Take a signop rather than
36372 a bool.
36373 (simplify_conversion_using_ranges): Use wide-int interfaces.
36374 (simplify_float_conversion_using_ranges): Likewise.
36375 (vrp_finalize): Likewise.
36376 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
36377 (gimple_stringops_transform): Likewise.
36378 * varasm.c (decode_addr_const): Likewise.
36379 (const_hash_1): Likewise.
36380 (const_rtx_hash_1): Likewise
36381 (output_constant): Likewise.
36382 (array_size_for_constructor): Likewise.
36383 (output_constructor_regular_field): Likewise.
36384 (output_constructor_bitfield): Likewise.
36385 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
36386 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
36387 GENERATOR_FILEs.
36388 * gencheck.c: Define BITS_PER_UNIT.
36389 * wide-int.cc: New.
36390 * wide-int.h: New.
36391 * wide-int-print.cc: New.
36392 * wide-int-print.h: New.
36393
36394 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36395
36396 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
36397
36398 2014-05-06 Richard Biener <rguenther@suse.de>
36399
36400 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
36401 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
36402 (TODO_verify_all): Adjust.
36403 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
36404 TODO_verify_stmts and TODO_verify_rtl_sharing.
36405 * bb-reorder.c: Likewise.
36406 * cfgexpand.c: Likewise.
36407 * cprop.c: Likewise.
36408 * cse.c: Likewise.
36409 * function.c: Likewise.
36410 * fwprop.c: Likewise.
36411 * gcse.c: Likewise.
36412 * gimple-ssa-isolate-paths.c: Likewise.
36413 * gimple-ssa-strength-reduction.c: Likewise.
36414 * ipa-split.c: Likewise.
36415 * loop-init.c: Likewise.
36416 * loop-unroll.c: Likewise.
36417 * lower-subreg.c: Likewise.
36418 * modulo-sched.c: Likewise.
36419 * postreload-gcse.c: Likewise.
36420 * predict.c: Likewise.
36421 * recog.c: Likewise.
36422 * sched-rgn.c: Likewise.
36423 * store-motion.c: Likewise.
36424 * tracer.c: Likewise.
36425 * trans-mem.c: Likewise.
36426 * tree-call-cdce.c: Likewise.
36427 * tree-cfg.c: Likewise.
36428 * tree-cfgcleanup.c: Likewise.
36429 * tree-complex.c: Likewise.
36430 * tree-eh.c: Likewise.
36431 * tree-emutls.c: Likewise.
36432 * tree-if-conv.c: Likewise.
36433 * tree-into-ssa.c: Likewise.
36434 * tree-loop-distribution.c: Likewise.
36435 * tree-object-size.c: Likewise.
36436 * tree-parloops.c: Likewise.
36437 * tree-pass.h: Likewise.
36438 * tree-sra.c: Likewise.
36439 * tree-ssa-ccp.c: Likewise.
36440 * tree-ssa-copy.c: Likewise.
36441 * tree-ssa-copyrename.c: Likewise.
36442 * tree-ssa-dce.c: Likewise.
36443 * tree-ssa-dom.c: Likewise.
36444 * tree-ssa-dse.c: Likewise.
36445 * tree-ssa-forwprop.c: Likewise.
36446 * tree-ssa-ifcombine.c: Likewise.
36447 * tree-ssa-loop-ch.c: Likewise.
36448 * tree-ssa-loop-ivcanon.c: Likewise.
36449 * tree-ssa-loop.c: Likewise.
36450 * tree-ssa-math-opts.c: Likewise.
36451 * tree-ssa-phiopt.c: Likewise.
36452 * tree-ssa-phiprop.c: Likewise.
36453 * tree-ssa-pre.c: Likewise.
36454 * tree-ssa-reassoc.c: Likewise.
36455 * tree-ssa-sink.c: Likewise.
36456 * tree-ssa-strlen.c: Likewise.
36457 * tree-ssa-tail-merge.c: Likewise.
36458 * tree-ssa-uncprop.c: Likewise.
36459 * tree-switch-conversion.c: Likewise.
36460 * tree-tailcall.c: Likewise.
36461 * tree-vect-generic.c: Likewise.
36462 * tree-vectorizer.c: Likewise.
36463 * tree-vrp.c: Likewise.
36464 * tsan.c: Likewise.
36465 * var-tracking.c: Likewise.
36466 * bt-load.c: Likewise.
36467 * cfgcleanup.c: Likewise.
36468 * combine-stack-adj.c: Likewise.
36469 * combine.c: Likewise.
36470 * compare-elim.c: Likewise.
36471 * config/epiphany/resolve-sw-modes.c: Likewise.
36472 * config/i386/i386.c: Likewise.
36473 * config/mips/mips.c: Likewise.
36474 * config/s390/s390.c: Likewise.
36475 * config/sh/sh_treg_combine.cc: Likewise.
36476 * config/sparc/sparc.c: Likewise.
36477 * dce.c: Likewise.
36478 * dse.c: Likewise.
36479 * final.c: Likewise.
36480 * ifcvt.c: Likewise.
36481 * mode-switching.c: Likewise.
36482 * passes.c: Likewise.
36483 * postreload.c: Likewise.
36484 * ree.c: Likewise.
36485 * reg-stack.c: Likewise.
36486 * regcprop.c: Likewise.
36487 * regrename.c: Likewise.
36488 * web.c: Likewise.
36489
36490 2014-05-06 Richard Biener <rguenther@suse.de>
36491
36492 PR middle-end/61070
36493 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
36494 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
36495
36496 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
36497
36498 PR ipa/60965
36499 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
36500
36501 2014-05-05 Radovan Obradovic <robradovic@mips.com>
36502 Tom de Vries <tom@codesourcery.com>
36503
36504 * target.def (call_fusage_contains_non_callee_clobbers): New
36505 DEFHOOKPOD.
36506 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
36507 Hooks to @menu.
36508 (@node Miscellaneous Register Hooks): New node.
36509 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
36510 * doc/tm.texi: Regenerate.
36511
36512 2014-05-05 Marek Polacek <polacek@redhat.com>
36513
36514 PR driver/61065
36515 * opts.c (common_handle_option): Call error_at instead of warning_at.
36516
36517 2014-05-05 Richard Biener <rguenther@suse.de>
36518
36519 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
36520 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
36521 under the TODO_verify_il umbrella.
36522
36523 2014-05-05 Richard Biener <rguenther@suse.de>
36524
36525 * passes.c (execute_function_todo): Move TODO_verify_flow under
36526 the TODO_verify_ul umbrella.
36527
36528 2014-05-05 Richard Biener <rguenther@suse.de>
36529
36530 PR middle-end/61010
36531 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
36532 X & CST away from a CST that is the mask of a mode.
36533
36534 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36535
36536 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
36537 int argument to enum machine_mode.
36538 (picochip_class_max_nregs): Ditto.
36539 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
36540 (picochip_class_max_nregs): Ditto.
36541
36542 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36543
36544 * target.def: Add new target hook.
36545 * doc/tm.texi: Regenerate.
36546 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
36547 * targhooks.c (default_keep_leaf_when_profiled): New function.
36548
36549 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
36550 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
36551
36552 2014-05-05 Bin Cheng <bin.cheng@arm.com>
36553
36554 PR tree-optimization/60363
36555 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
36556 (copy_phi_args): New parameters. Call get_value_locus_in_path.
36557 (update_destination_phis): New parameter.
36558 (create_edge_and_update_destination_phis): Ditto.
36559 (ssa_fix_duplicate_block_edges): Pass new arguments.
36560 (thread_single_edge): Ditto.
36561
36562 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
36563
36564 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
36565 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
36566 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
36567 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
36568 Use RS6000_BTM_HARD_FLOAT.
36569 (BU_MISC_2): Likewise.
36570 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
36571 RS6000_BTM_HARD_FLOAT.
36572 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
36573 is explicitly used.
36574 (rs6000_invalid_builtin): Add hard floating builtin support.
36575 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
36576 hard float builtins.
36577 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
36578
36579 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
36580
36581 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
36582 Add missing function* argument.
36583
36584 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
36585
36586 * lra-constraints.c (valid_address_p): Move earlier in file.
36587 Add a constraint argument to the address_info version.
36588 (satisfies_memory_constraint_p): New function.
36589 (satisfies_address_constraint_p): Likewise.
36590 (process_alt_operands, curr_insn_transform): Use them.
36591 (process_address): Pass the constraint to valid_address_p when
36592 checking address operands.
36593
36594 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
36595
36596 * config/mips/mips.c (mips_isa_rev): New variable.
36597 (mips_set_architecture): Set it.
36598 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
36599 from mips_isa_rev.
36600 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
36601 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
36602 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
36603 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
36604 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
36605 conditions in terms of mips_isa_rev.
36606 (mips_isa_rev): Declare.
36607
36608 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
36609
36610 * config/sh/sh-mem.cc: Use tabs instead of spaces.
36611 (prob_unlikely, prob_likely): Make variables const.
36612
36613 2014-05-03 Denis Chertykov <chertykov@gmail.com>
36614
36615 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
36616
36617 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
36618
36619 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
36620
36621 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
36622
36623 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
36624 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
36625 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
36626 functions.
36627 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
36628 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
36629 sh_pass_in_reg_p.
36630 Replace usage of ROUND_REG with sh_round_reg.
36631 Use CEIL instead of ROUND_ADVANCE.
36632
36633 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
36634
36635 PR target/61026
36636 * config/sh/sh.c: Include stdlib headers before everything else.
36637
36638 2014-05-02 Jakub Jelinek <jakub@redhat.com>
36639
36640 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
36641 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
36642 (gimplify_adjust_omp_clauses): Simd region is never
36643 directly nested in combined parallel. Instead, for linear
36644 with copyin/copyout, if in combined for simd loop, make decl
36645 firstprivate/lastprivate on OMP_FOR.
36646 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
36647 expand_omp_for_static_chunk): When setting endvar, also set
36648 fd->loop.v to the same value.
36649
36650 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
36651
36652 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
36653
36654 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
36655
36656 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
36657 expression.
36658
36659 2014-05-02 Marek Polacek <polacek@redhat.com>
36660
36661 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
36662
36663 2014-05-02 Kito Cheng <kito@0xlab.org>
36664
36665 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
36666 to a C expression marco.
36667 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
36668 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
36669 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
36670 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
36671 HONOR_REG_ALLOC_ORDER.
36672 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
36673
36674 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36675
36676 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
36677
36678 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36679
36680 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
36681
36682 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
36683
36684 * tree-if-conv.c (is_cond_scalar_reduction): New function.
36685 (convert_scalar_cond_reduction): Likewise.
36686 (predicate_scalar_phi): Add recognition and transformation
36687 of simple conditioanl reduction to be vectorizable.
36688
36689 2014-05-01 Marek Polacek <polacek@redhat.com>
36690
36691 PR c/43245
36692 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
36693
36694 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
36695
36696 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
36697 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
36698 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
36699 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
36700 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
36701 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
36702 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
36703 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
36704
36705 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
36706
36707 * config/arc/arc.opt (mlra): Move comment above option name
36708 to avoid mis-parsing as language options.
36709
36710 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36711
36712 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
36713 * config/sol2.h: ... here.
36714 * config/sol2-10.h: Remove.
36715
36716 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
36717 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
36718 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
36719 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
36720 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
36721 * config/sol2.h: ... here.
36722 (SECTION_NAME_FORMAT): Don't redefine.
36723 (STARTFILE_ARCH32_SPEC): Rename to ...
36724 (STARTFILE_ARCH_SPEC): ... this.
36725 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36726 * config/sparc/sol2.h: ... here.
36727 (SECTION_NAME_FORMAT): Don't undef.
36728 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
36729 (SUBTARGET_EXTRA_SPECS): Remove.
36730 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
36731
36732 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
36733 (MD_STARTFILE_PREFIX): Remove.
36734 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
36735 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
36736 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
36737 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
36738 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
36739 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
36740 * config/i386/sol2.h: ... here.
36741 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
36742 * config/i386/sol2-bi.h: Remove.
36743 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
36744 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
36745
36746 * config/i386/t-sol2-64: Rename to ...
36747 * config/i386/t-sol2: ... this.
36748 * config/sparc/t-sol2-64: Rename to ...
36749 * config/sparc/t-sol2: ... this.
36750
36751 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
36752 sol2_tm_file_head, sol2_tm_file_tail.
36753 Include ${cpu_type}/sol2.h before sol2.h.
36754 Remove sol2-10.h.
36755 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
36756 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
36757 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
36758 Reflect i386/t-sol2-64 renaming.
36759 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
36760 Reflect sparc/t-sol2-64 renaming.
36761
36762 2014-04-30 Richard Biener <rguenther@suse.de>
36763
36764 * passes.c (execute_function_todo): Move TODO_verify_stmts
36765 and TODO_verify_ssa under the TODO_verify_il umbrella.
36766 * tree-ssa.h (verify_ssa): Adjust prototype.
36767 * tree-ssa.c (verify_ssa): Add parameter to tell whether
36768 we should verify SSA operands.
36769 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
36770 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
36771 whether we should verify whether not throwing stmts have EH info.
36772 * graphite-scop-detection.c (create_sese_edges): Adjust.
36773 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
36774 * tree-eh.c (lower_try_finally_switch): Do not add the
36775 default case label twice.
36776
36777 2014-04-30 Marek Polacek <polacek@redhat.com>
36778
36779 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
36780 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
36781 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
36782 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
36783
36784 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
36785
36786 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
36787 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
36788 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
36789 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
36790 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
36791 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
36792 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
36793 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
36794
36795 2014-04-29 David Malcolm <dmalcolm@redhat.com>
36796
36797 * tree-cfg.c (dump_function_to_file): Dump the return type of
36798 functions, in a line to itself before the function body, mimicking
36799 the layout of a C function.
36800
36801 2014-04-29 Jakub Jelinek <jakub@redhat.com>
36802
36803 PR tree-optimization/60971
36804 * tree-tailcall.c (process_assignment): Reject conversions which
36805 reduce precision.
36806
36807 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
36808
36809 * calls.c (initialize_argument_information): Always treat
36810 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
36811 (expand_call): Likewise.
36812 (emit_library_call_calue_1): Likewise.
36813 * expr.c (PUSH_ARGS_REVERSED): Do not define.
36814 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
36815 code accordingly.
36816
36817 2014-04-29 Nick Clifton <nickc@redhat.com>
36818
36819 * config/msp430/msp430.md (umulsidi): Fix typo.
36820 (mulhisi3): Enable even inside interrupt handlers.
36821 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
36822 bigger return address pushed in large mode.
36823
36824 2014-04-29 Nick Clifton <nickc@redhat.com>
36825
36826 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
36827 (arc_init_reg_tables): Use a machine_mode enum to iterate over
36828 available modes.
36829 * config/m32r/m32r.c (init_reg_tables): Likewise.
36830 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
36831 enum to hold the modes.
36832
36833 2014-04-29 Richard Biener <rguenther@suse.de>
36834
36835 * dominance.c (free_dominance_info): Add overload with
36836 function parameter.
36837 (dom_info_state): Likewise.
36838 (dom_info_available_p): Likewise.
36839 * basic-block.h (free_dominance_info, dom_info_state,
36840 dom_info_available_p): Declare overloads.
36841 * passes.c (execute_function_todo): Verify that verifiers
36842 don't change dominator info state. Drop dominator info
36843 for IPA pass invocations.
36844 * cgraph.c (release_function_body): Restore asserts that
36845 dominator information is released.
36846
36847 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
36848
36849 * doc/invoke.texi: Fix typo.
36850 * tree-vrp.c: Fix typos.
36851 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
36852
36853 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
36854
36855 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
36856
36857 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
36858
36859 * config/aarch64/aarch64-builtins.c
36860 (aarch64_types_storestruct_lane_qualifiers): New.
36861 (TYPES_STORESTRUCT_LANE): Likewise.
36862 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
36863 (st3_lane): Likewise.
36864 (st4_lane): Likewise.
36865 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
36866 (vec_store_lanesci_lane<mode>): Likewise.
36867 (vec_store_lanesxi_lane<mode>): Likewise.
36868 (aarch64_st2_lane<VQ:mode>): Likewise.
36869 (aarch64_st3_lane<VQ:mode>): Likewise.
36870 (aarch64_st4_lane<VQ:mode>): Likewise.
36871 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
36872 * config/aarch64/arm_neon.h
36873 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
36874 use new macro arguments.
36875 (__ST3_LANE_FUNC): Likewise.
36876 (__ST4_LANE_FUNC): Likewise.
36877 * config/aarch64/iterators.md (V_TWO_ELEM): New.
36878 (V_THREE_ELEM): Likewise.
36879 (V_FOUR_ELEM): Likewise.
36880
36881 2014-04-28 David Malcolm <dmalcolm@redhat.com>
36882
36883 * doc/gimple.texi: Replace the description of the now-defunct
36884 union gimple_statement_d with a diagram showing the
36885 gimple_statement_base class hierarchy and its relationships to
36886 the GSS_ and GIMPLE_ enums.
36887
36888 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
36889
36890 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
36891 * config/aarch64/aarch64.c
36892 (aarch64_cannot_change_mode_class): Weaken conditions.
36893 (aarch64_modes_tieable_p): New.
36894 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
36895
36896 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
36897
36898 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
36899 (loadsync_<mode>): Change mode.
36900 (load_quadpti, store_quadpti): New.
36901 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
36902 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
36903
36904 2014-04-28 Martin Jambor <mjambor@suse.cz>
36905
36906 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
36907 same alias type as the original statement.
36908 (subreplacement_assignment_data): New type.
36909 (handle_unscalarized_data_in_subtree): New type of parameter,
36910 generate new memory accesses with same alias type as the original
36911 statement.
36912 (load_assign_lhs_subreplacements): Likewise.
36913 (sra_modify_constructor_assign): Generate new memory accesses with
36914 same alias type as the original statement.
36915
36916 2014-04-28 Richard Biener <rguenther@suse.de>
36917
36918 * tree-pass.h (TODO_verify_il): Define.
36919 (TODO_verify_all): Complete properly.
36920 * passes.c (execute_function_todo): Move existing loop-closed
36921 SSA verification under TODO_verify_il.
36922 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
36923 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
36924 Fix tree sharing issue.
36925
36926 2014-04-28 Richard Biener <rguenther@suse.de>
36927
36928 PR middle-end/60092
36929 * builtins.def (DEF_C11_BUILTIN): Add.
36930 (BUILT_IN_ALIGNED_ALLOC): Likewise.
36931 * coretypes.h (enum function_class): Add function_c11_misc.
36932 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36933 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
36934 (call_may_clobber_ref_p_1): Likewise.
36935 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
36936 (mark_all_reaching_defs_necessary_1): Likewise.
36937 (propagate_necessity): Likewise.
36938 (eliminate_unnecessary_stmts): Likewise.
36939 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
36940
36941 2014-04-28 Richard Biener <rguenther@suse.de>
36942
36943 * tree-vrp.c (vrp_var_may_overflow): Remove.
36944 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
36945 with overflow immediately bump to one before that value and
36946 let iteration figure out overflow status.
36947
36948 2014-04-28 Richard Biener <rguenther@suse.de>
36949
36950 * configure.ac: Do valgrind header checks unconditionally.
36951 Add --enable-valgrind-annotations.
36952 * system.h: Guard valgrind header inclusion with
36953 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
36954 * alloc-pool.c (pool_alloc, pool_free): Use
36955 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
36956 to guard possibly dead code.
36957 * config.in: Regenerated.
36958 * configure: Likewise.
36959
36960 2014-04-28 Jeff Law <law@redhat.com>
36961
36962 PR tree-optimization/60902
36963 * tree-ssa-threadedge.c
36964 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
36965 over real defs when invalidating outputs from statements that do not
36966 produce useful outputs for threading.
36967
36968 2014-04-28 Richard Biener <rguenther@suse.de>
36969
36970 PR tree-optimization/60979
36971 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
36972 SCOPs that end in a block with a successor with abnormal
36973 predecessors.
36974
36975 2014-04-28 Richard Biener <rguenther@suse.de>
36976
36977 * tree-pass.h (execute_pass_list): Adjust prototype.
36978 * passes.c (pass_manager::execute_early_local_passes): Adjust.
36979 (do_per_function): Change callback signature, push all actual
36980 work to the callbals.
36981 (do_per_function_toporder): Likewise.
36982 (execute_function_dump): Adjust.
36983 (execute_function_todo): Likewise.
36984 (clear_last_verified): Likewise.
36985 (verify_curr_properties): Likewise.
36986 (update_properties_after_pass): Likewise.
36987 (execute_pass_list_1): Split out from ...
36988 (execute_pass_list): ... here. Adjust.
36989 (execute_ipa_pass_list): Likewise.
36990 * cgraphunit.c (cgraph_add_new_function): Adjust.
36991 (analyze_function): Likewise.
36992 (expand_function): Likewise.
36993 * cgraph.c (release_function_body): Free dominance info
36994 here instead of asserting it was magically freed elsewhere.
36995
36996 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
36997
36998 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
36999 * configure: Regenerate.
37000 * config/sparc/sparc.opt (muser-mode): New option.
37001 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
37002 for LEON3.
37003 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
37004 * doc/invoke.texi (SPARC options): Document -muser-mode.
37005
37006 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
37007
37008 * cselib.c (find_slot_memmode): Delete.
37009 (cselib_hasher): Change compare_type to a struct.
37010 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
37011 constants.
37012 (preserve_constants_and_equivs): Adjust for new compare_type.
37013 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
37014 (wrap_constant): Delete.
37015 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
37016
37017 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
37018
37019 * doc/install.texi (Building with profile feedback): Remove
37020 outdated sentence.
37021
37022 2014-04-26 Tom de Vries <tom@codesourcery.com>
37023
37024 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
37025 array accesses.
37026
37027 2014-04-25 Cary Coutant <ccoutant@google.com>
37028
37029 PR debug/60929
37030 * dwarf2out.c (should_move_die_to_comdat): A type definition
37031 can contain a subprogram definition, but don't move it to a
37032 comdat unit.
37033 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
37034 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
37035 from original DIE.
37036 (clone_tree_hash): Rename to...
37037 (clone_tree_partial): ...this; change callers. Copy
37038 DW_TAG_subprogram DIEs as declarations.
37039 (copy_decls_walk): Don't copy children of a declaration into a
37040 type unit.
37041
37042 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
37043
37044 PR target/60969
37045 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
37046 alternative 12.
37047
37048 2014-04-25 Jiong Wang <jiong.wang@arm.com>
37049
37050 * config/arm/predicates.md (call_insn_operand): Add long_call check.
37051 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
37052 reg for long_call.
37053 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
37054 restriction.
37055
37056 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37057
37058 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
37059
37060 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37061
37062 PR tree-optimization/60930
37063 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
37064 creating a multiply candidate by folding two constant
37065 multiplicands when the result overflows.
37066
37067 2014-04-25 Jakub Jelinek <jakub@redhat.com>
37068
37069 PR tree-optimization/60960
37070 * tree-vect-generic.c (expand_vector_operation): Only call
37071 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
37072
37073 2014-04-25 Tom de Vries <tom@codesourcery.com>
37074
37075 * expr.c (clobber_reg_mode): New function.
37076 * expr.h (clobber_reg): New function.
37077
37078 2014-04-25 Tom de Vries <tom@codesourcery.com>
37079
37080 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
37081 clobbers.
37082
37083 2014-04-25 Radovan Obradovic <robradovic@mips.com>
37084 Tom de Vries <tom@codesourcery.com>
37085
37086 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
37087 handle.
37088 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
37089 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
37090 new argument to find_all_hard_reg_sets call.
37091
37092 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37093
37094 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
37095 Use HOST_WIDE_INT_C for mask literal.
37096 (aarch_rev16_shleft_mask_imm_p): Likewise.
37097
37098 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
37099
37100 PR target/60941
37101 * config/sparc/sparc.md (ashlsi3_extend): Delete.
37102
37103 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
37104
37105 PR preprocessor/56540
37106 * config/i386/i386-c.c (ix86_target_macros): Define
37107 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
37108
37109 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37110
37111 * configure.ac (tga_func): Remove.
37112 (LIB_TLS_SPEC): Remove.
37113 * configure: Regenerate.
37114 * config.in: Regenerate.
37115 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
37116
37117 2014-04-25 Richard Biener <rguenther@suse.de>
37118
37119 PR ipa/60912
37120 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
37121 call stmt use/clobber sets during stmt walk instead of
37122 walking the possibly incomplete set of caller edges.
37123
37124 2014-04-25 Richard Biener <rguenther@suse.de>
37125
37126 PR ipa/60911
37127 * passes.c (apply_ipa_transforms): Inline into only caller ...
37128 (execute_one_pass): ... here. Properly bring in function
37129 bodies for nodes we want to apply IPA transforms to.
37130
37131 2014-04-24 Cong Hou <congh@google.com>
37132
37133 PR tree-optimization/60896
37134 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
37135 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
37136 (vect_mark_pattern_stmts): Set the def type of all statements in
37137 PATTERN_DEF_SEQ as vect_internal_def.
37138
37139 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
37140
37141 * doc/extend.texi (PowerPC Built-in Functions): Document new
37142 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
37143 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
37144
37145 * config/rs6000/predicates.md (const_0_to_3_operand): New
37146 predicate to match 0..3 integer constants.
37147
37148 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
37149 to support adding miscellaneous builtin functions.
37150 (BU_DFP_MISC_2): Likewise.
37151 (BU_P7_MISC_1): Likewise.
37152 (BU_P7_MISC_2): Likewise.
37153 (BU_P8V_MISC_3): Likewise.
37154 (BU_MISC_1): Likewise.
37155 (BU_MISC_2): Likewise.
37156 (DIVWE): Add extended divide builtin functions.
37157 (DIVWEO): Likewise.
37158 (DIVWEU): Likewise.
37159 (DIVWEUO): Likewise.
37160 (DIVDE): Likewise.
37161 (DIVDEO): Likewise.
37162 (DIVDEU): Likewise.
37163 (DIVDEUO): Likewise.
37164 (DXEX): Add decimal floating-point builtin functions.
37165 (DXEXQ): Likewise.
37166 (DDEDPD): Likewise.
37167 (DDEDPDQ): Likewise.
37168 (DENBCD): Likewise.
37169 (DENBCDQ): Likewise.
37170 (DIEX): Likewise.
37171 (DIEXQ): Likewise.
37172 (DSCLI): Likewise.
37173 (DSCLIQ): Likewise.
37174 (DSCRI): Likewise.
37175 (DSCRIQ): Likewise.
37176 (CDTBCD): Add new BCD builtin functions.
37177 (CBCDTD): Likewise.
37178 (ADDG6S): Likewise.
37179 (BCDADD): Likewise.
37180 (BCDADD_LT): Likewise.
37181 (BCDADD_EQ): Likewise.
37182 (BCDADD_GT): Likewise.
37183 (BCDADD_OV): Likewise.
37184 (BCDSUB): Likewise.
37185 (BCDSUB_LT): Likewise.
37186 (BCDSUB_EQ): Likewise.
37187 (BCDSUB_GT): Likewise.
37188 (BCDSUB_OV): Likewise.
37189 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
37190 (UNPACK_TD): Likewise.
37191 (PACK_TF): Likewise.
37192 (UNPACK_TF): Likewise.
37193 (UNPACK_TF_0): Likewise.
37194 (UNPACK_TF_1): Likewise.
37195 (PACK_V1TI): Likewise.
37196 (UNPACK_V1TI): Likewise.
37197
37198 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
37199 support for decimal floating point builtin functions.
37200 (rs6000_expand_ternop_builtin): Add checks for the new builtin
37201 functions that take constant arguments.
37202 (rs6000_invalid_builtin): Add decimal floating point builtin support.
37203 (rs6000_init_builtins): Setup long double, _Decimal64, and
37204 _Decimal128 types for new builtin functions.
37205 (builtin_function_type): Set the unsigned flags appropriately for
37206 the new builtin functions.
37207 (rs6000_opt_masks): Add support for decimal floating point builtin
37208 functions.
37209
37210 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
37211 floating point builtin functions.
37212 (RS6000_BTM_COMMON): Likewise.
37213 (RS6000_BTI_long_double): Likewise.
37214 (RS6000_BTI_dfloat64): Likewise.
37215 (RS6000_BTI_dfloat128): Likewise.
37216 (long_double_type_internal_node): Likewise.
37217 (dfloat64_type_internal_node): Likewise.
37218 (dfloat128_type_internal_node): Likewise.
37219
37220 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
37221 2.07 bcd arithmetic instructions.
37222 (UNSPEC_BCDSUB): Likewise.
37223 (UNSPEC_BCD_OVERFLOW): Likewise.
37224 (UNSPEC_BCD_ADD_SUB): Likewise.
37225 (bcd_add_sub): Likewise.
37226 (BCD_TEST): Likewise.
37227 (bcd<bcd_add_sub>): Likewise.
37228 (bcd<bcd_add_sub>_test): Likewise.
37229 (bcd<bcd_add_sub>_test2): Likewise.
37230 (bcd<bcd_add_sub>_<code>): Likewise.
37231 (peephole2 for combined bcd ops): Likewise.
37232
37233 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
37234 decimal floating point builtin functions.
37235 (UNSPEC_DENBCD): Likewise.
37236 (UNSPEC_DXEX): Likewise.
37237 (UNSPEC_DIEX): Likewise.
37238 (UNSPEC_DSCLI): Likewise.
37239 (UNSPEC_DSCRI): Likewise.
37240 (D64_D128): Likewise.
37241 (dfp_suffix): Likewise.
37242 (dfp_ddedpd_<mode>): Likewise.
37243 (dfp_denbcd_<mode>): Likewise.
37244 (dfp_dxex_<mode>): Likewise.
37245 (dfp_diex_<mode>): Likewise.
37246 (dfp_dscli_<mode>): Likewise.
37247 (dfp_dscri_<mode>): Likewise.
37248
37249 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
37250 builtin functions.
37251 (UNSPEC_CDTBCD): Likewise.
37252 (UNSPEC_CBCDTD): Likewise.
37253 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
37254 (UNSPEC_DIVEO): Likewise.
37255 (UNSPEC_DIVEU): Likewise.
37256 (UNSPEC_DIVEUO): Likewise.
37257 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
37258 pack/unpack 128-bit types.
37259 (UNSPEC_PACK_128BIT): Likewise.
37260 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
37261 (udiv<mode>3): Use idiv_ldiv mode attribute.
37262 (div<mode>3): Likewise.
37263 (addg6s): Add new BCD builtin functions.
37264 (cdtbcd): Likewise.
37265 (cbcdtd): Likewise.
37266 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
37267 (div_extend): Likewise.
37268 (div<div_extend>_<mode>"): Likewise.
37269 (FP128_64): Add support for new builtin functions to pack/unpack
37270 128-bit types.
37271 (unpack<mode>): Likewise.
37272 (unpacktf_0): Likewise.
37273 (unpacktf_1): Likewise.
37274 (unpack<mode>_dm): Likewise.
37275 (unpack<mode>_nodm): Likewise.
37276 (pack<mode>): Likewise.
37277 (unpackv1ti): Likewise.
37278 (packv1ti): Likewise.
37279
37280 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
37281
37282 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
37283 is disabled.
37284
37285 2014-04-24 Jakub Jelinek <jakub@redhat.com>
37286
37287 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
37288 * gimplify.c (omp_is_private): Change last argument's type to int.
37289 Only diagnose lastprivate if the simd argument is 1, only diagnose
37290 linear if the simd argument is 2.
37291 (gimplify_omp_for): Adjust omp_is_private callers. When adding
37292 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
37293 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
37294 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
37295 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
37296 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
37297 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
37298 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
37299 * tree-nested.c (convert_nonlocal_omp_clauses,
37300 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
37301
37302 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
37303
37304 PR target/60822
37305 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
37306 operand 1.
37307
37308 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
37309
37310 * flag-types.h (enum ivar_visibility): Add.
37311
37312 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
37313
37314 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
37315 function * argument.
37316
37317 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
37318
37319 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
37320
37321 2014-04-24 Radovan Obradovic <robradovic@mips.com>
37322 Tom de Vries <tom@codesourcery.com>
37323
37324 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
37325 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
37326 reg-note.
37327 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
37328 * emit-rtl.c (try_split): Same.
37329
37330 2014-04-24 Radovan Obradovic <robradovic@mips.com>
37331 Tom de Vries <tom@codesourcery.com>
37332
37333 * common.opt (fuse-caller-save): New option.
37334
37335 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
37336
37337 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
37338 elements for big-endian.
37339
37340 2014-04-24 Richard Biener <rguenther@suse.de>
37341
37342 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
37343 during TER and instead use the sepops interface for expanding
37344 non-GIMPLE_SINGLE_RHS.
37345
37346 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37347
37348 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
37349 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
37350
37351 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37352
37353 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
37354 assembler 64-bit option.
37355 * configure: Regenerate.
37356
37357 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37358
37359 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
37360 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
37361 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
37362 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
37363 (TARGET_CRYPTO): Take TARGET_SIMD into account.
37364
37365 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37366
37367 * config/aarch64/aarch64-builtins.c
37368 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
37369 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
37370 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
37371 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
37372 builtins.
37373 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
37374 (Vrevsuff): New mode attribute.
37375
37376 2014-04-24 Terry Guo <terry.guo@arm.com>
37377
37378 * config/arm/arm.h (machine_function): Define variable
37379 after_arm_reorg here.
37380 * config/arm/arm.c (after_arm_reorg): Remove the definition.
37381 (arm_split_constant): Update the way to access variable
37382 after_arm_reorg.
37383 (arm_reorg): Ditto.
37384 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
37385
37386 2014-04-23 Tom de Vries <tom@codesourcery.com>
37387
37388 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
37389
37390 2014-04-23 David Malcolm <dmalcolm@redhat.com>
37391
37392 * is-a.h: Update comments to reflect the following changes to the
37393 "pointerness" of the API, making the template parameter match the
37394 return type, allowing use of is-a.h with typedefs of pointers.
37395 (is_a_helper::cast): Return a T rather then a pointer to a T, so
37396 that the return type matches the parameter to the is_a_helper.
37397 (as_a): Likewise.
37398 (dyn_cast): Likewise.
37399
37400 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
37401 pointer from the is-a.h API.
37402
37403 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
37404 (is_a_helper <cgraph_node *>::test): ...this, matching change to
37405 is-a.h API.
37406 (is_a_helper <varpool_node>::test): Likewise, convert to...
37407 (is_a_helper <varpool_node *>::test): ...this.
37408
37409 (varpool_first_variable): Update for removal of implicit pointer
37410 from the is-a.h API.
37411 (varpool_next_variable): Likewise.
37412 (varpool_first_static_initializer): Likewise.
37413 (varpool_next_static_initializer): Likewise.
37414 (varpool_first_defined_variable): Likewise.
37415 (varpool_next_defined_variable): Likewise.
37416 (cgraph_first_defined_function): Likewise.
37417 (cgraph_next_defined_function): Likewise.
37418 (cgraph_first_function): Likewise.
37419 (cgraph_next_function): Likewise.
37420 (cgraph_first_function_with_gimple_body): Likewise.
37421 (cgraph_next_function_with_gimple_body): Likewise.
37422 (cgraph_alias_target): Likewise.
37423 (varpool_alias_target): Likewise.
37424 (cgraph_function_or_thunk_node): Likewise.
37425 (varpool_variable_node): Likewise.
37426 (symtab_real_symbol_p): Likewise.
37427 * cgraphunit.c (referred_to_p): Likewise.
37428 (analyze_functions): Likewise.
37429 (handle_alias_pairs): Likewise.
37430 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
37431 * gimple-ssa.h (gimple_vuse_op): Likewise.
37432 (gimple_vdef_op): Likewise.
37433 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
37434 * gimple.c (gimple_build_asm_1): Likewise.
37435 (gimple_build_try): Likewise.
37436 (gimple_build_resx): Likewise.
37437 (gimple_build_eh_dispatch): Likewise.
37438 (gimple_build_omp_for): Likewise.
37439 (gimple_omp_for_set_clauses): Likewise.
37440
37441 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
37442 (is_a_helper <gimple_statement_asm *>::test): ...this.
37443 (is_a_helper <gimple_statement_bind>::test): Convert to...
37444 (is_a_helper <gimple_statement_bind *>::test): ...this.
37445 (is_a_helper <gimple_statement_call>::test): Convert to...
37446 (is_a_helper <gimple_statement_call *>::test): ...this.
37447 (is_a_helper <gimple_statement_catch>::test): Convert to...
37448 (is_a_helper <gimple_statement_catch *>::test): ...this.
37449 (is_a_helper <gimple_statement_resx>::test): Convert to...
37450 (is_a_helper <gimple_statement_resx *>::test): ...this.
37451 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
37452 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
37453 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
37454 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
37455 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
37456 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
37457 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
37458 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
37459 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
37460 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
37461 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
37462 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
37463 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
37464 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
37465 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
37466 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
37467 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
37468 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
37469 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
37470 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
37471 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
37472 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
37473 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
37474 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
37475 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
37476 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
37477 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
37478 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
37479 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
37480 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
37481 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
37482 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
37483 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
37484 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
37485 (is_a_helper <gimple_statement_phi>::test): Convert to...
37486 (is_a_helper <gimple_statement_phi *>::test): ...this.
37487 (is_a_helper <gimple_statement_transaction>::test): Convert to...
37488 (is_a_helper <gimple_statement_transaction *>::test): ...this.
37489 (is_a_helper <gimple_statement_try>::test): Convert to...
37490 (is_a_helper <gimple_statement_try *>::test): ...this.
37491 (is_a_helper <gimple_statement_wce>::test): Convert to...
37492 (is_a_helper <gimple_statement_wce *>::test): ...this.
37493 (is_a_helper <const gimple_statement_asm>::test): Convert to...
37494 (is_a_helper <const gimple_statement_asm *>::test): ...this.
37495 (is_a_helper <const gimple_statement_bind>::test): Convert to...
37496 (is_a_helper <const gimple_statement_bind *>::test): ...this.
37497 (is_a_helper <const gimple_statement_call>::test): Convert to...
37498 (is_a_helper <const gimple_statement_call *>::test): ...this.
37499 (is_a_helper <const gimple_statement_catch>::test): Convert to...
37500 (is_a_helper <const gimple_statement_catch *>::test): ...this.
37501 (is_a_helper <const gimple_statement_resx>::test): Convert to...
37502 (is_a_helper <const gimple_statement_resx *>::test): ...this.
37503 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
37504 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
37505 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
37506 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
37507 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
37508 Convert to...
37509 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
37510 ...this.
37511 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
37512 Convert to...
37513 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
37514 ...this.
37515 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
37516 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
37517 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
37518 to...
37519 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
37520 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
37521 to...
37522 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
37523 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
37524 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
37525 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
37526 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
37527 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
37528 to...
37529 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
37530 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
37531 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
37532 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
37533 to...
37534 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
37535 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
37536 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
37537 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
37538 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
37539 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
37540 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
37541 (is_a_helper <const gimple_statement_phi>::test): Convert to...
37542 (is_a_helper <const gimple_statement_phi *>::test): ...this.
37543 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
37544 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
37545 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
37546 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
37547 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
37548 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
37549 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
37550 to...
37551 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
37552 ...this.
37553 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
37554 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
37555
37556 (gimple_use_ops): Update for removal of implicit pointer from the
37557 is-a.h API.
37558 (gimple_set_use_ops): Likewise.
37559 (gimple_vuse): Likewise.
37560 (gimple_vdef): Likewise.
37561 (gimple_vuse_ptr): Likewise.
37562 (gimple_vdef_ptr): Likewise.
37563 (gimple_set_vuse): Likewise.
37564 (gimple_set_vdef): Likewise.
37565 (gimple_omp_return_set_lhs): Likewise.
37566 (gimple_omp_return_lhs): Likewise.
37567 (gimple_omp_return_lhs_ptr): Likewise.
37568 (gimple_call_fntype): Likewise.
37569 (gimple_call_set_fntype): Likewise.
37570 (gimple_call_set_internal_fn): Likewise.
37571 (gimple_call_use_set): Likewise.
37572 (gimple_call_clobber_set): Likewise.
37573 (gimple_bind_vars): Likewise.
37574 (gimple_bind_set_vars): Likewise.
37575 (gimple_bind_body_ptr): Likewise.
37576 (gimple_bind_set_body): Likewise.
37577 (gimple_bind_add_stmt): Likewise.
37578 (gimple_bind_block): Likewise.
37579 (gimple_bind_set_block): Likewise.
37580 (gimple_asm_ninputs): Likewise.
37581 (gimple_asm_noutputs): Likewise.
37582 (gimple_asm_nclobbers): Likewise.
37583 (gimple_asm_nlabels): Likewise.
37584 (gimple_asm_input_op): Likewise.
37585 (gimple_asm_input_op_ptr): Likewise.
37586 (gimple_asm_output_op): Likewise.
37587 (gimple_asm_output_op_ptr): Likewise.
37588 (gimple_asm_set_output_op): Likewise.
37589 (gimple_asm_clobber_op): Likewise.
37590 (gimple_asm_set_clobber_op): Likewise.
37591 (gimple_asm_label_op): Likewise.
37592 (gimple_asm_set_label_op): Likewise.
37593 (gimple_asm_string): Likewise.
37594 (gimple_catch_types): Likewise.
37595 (gimple_catch_types_ptr): Likewise.
37596 (gimple_catch_handler_ptr): Likewise.
37597 (gimple_catch_set_types): Likewise.
37598 (gimple_catch_set_handler): Likewise.
37599 (gimple_eh_filter_types): Likewise.
37600 (gimple_eh_filter_types_ptr): Likewise.
37601 (gimple_eh_filter_failure_ptr): Likewise.
37602 (gimple_eh_filter_set_types): Likewise.
37603 (gimple_eh_filter_set_failure): Likewise.
37604 (gimple_eh_must_not_throw_fndecl): Likewise.
37605 (gimple_eh_must_not_throw_set_fndecl): Likewise.
37606 (gimple_eh_else_n_body_ptr): Likewise.
37607 (gimple_eh_else_e_body_ptr): Likewise.
37608 (gimple_eh_else_set_n_body): Likewise.
37609 (gimple_eh_else_set_e_body): Likewise.
37610 (gimple_try_eval_ptr): Likewise.
37611 (gimple_try_cleanup_ptr): Likewise.
37612 (gimple_try_set_eval): Likewise.
37613 (gimple_try_set_cleanup): Likewise.
37614 (gimple_wce_cleanup_ptr): Likewise.
37615 (gimple_wce_set_cleanup): Likewise.
37616 (gimple_phi_capacity): Likewise.
37617 (gimple_phi_num_args): Likewise.
37618 (gimple_phi_result): Likewise.
37619 (gimple_phi_result_ptr): Likewise.
37620 (gimple_phi_set_result): Likewise.
37621 (gimple_phi_arg): Likewise.
37622 (gimple_phi_set_arg): Likewise.
37623 (gimple_resx_region): Likewise.
37624 (gimple_resx_set_region): Likewise.
37625 (gimple_eh_dispatch_region): Likewise.
37626 (gimple_eh_dispatch_set_region): Likewise.
37627 (gimple_omp_critical_name): Likewise.
37628 (gimple_omp_critical_name_ptr): Likewise.
37629 (gimple_omp_critical_set_name): Likewise.
37630 (gimple_omp_for_clauses): Likewise.
37631 (gimple_omp_for_clauses_ptr): Likewise.
37632 (gimple_omp_for_set_clauses): Likewise.
37633 (gimple_omp_for_collapse): Likewise.
37634 (gimple_omp_for_index): Likewise.
37635 (gimple_omp_for_index_ptr): Likewise.
37636 (gimple_omp_for_set_index): Likewise.
37637 (gimple_omp_for_initial): Likewise.
37638 (gimple_omp_for_initial_ptr): Likewise.
37639 (gimple_omp_for_set_initial): Likewise.
37640 (gimple_omp_for_final): Likewise.
37641 (gimple_omp_for_final_ptr): Likewise.
37642 (gimple_omp_for_set_final): Likewise.
37643 (gimple_omp_for_incr): Likewise.
37644 (gimple_omp_for_incr_ptr): Likewise.
37645 (gimple_omp_for_set_incr): Likewise.
37646 (gimple_omp_for_pre_body_ptr): Likewise.
37647 (gimple_omp_for_set_pre_body): Likewise.
37648 (gimple_omp_parallel_clauses): Likewise.
37649 (gimple_omp_parallel_clauses_ptr): Likewise.
37650 (gimple_omp_parallel_set_clauses): Likewise.
37651 (gimple_omp_parallel_child_fn): Likewise.
37652 (gimple_omp_parallel_child_fn_ptr): Likewise.
37653 (gimple_omp_parallel_set_child_fn): Likewise.
37654 (gimple_omp_parallel_data_arg): Likewise.
37655 (gimple_omp_parallel_data_arg_ptr): Likewise.
37656 (gimple_omp_parallel_set_data_arg): Likewise.
37657 (gimple_omp_task_clauses): Likewise.
37658 (gimple_omp_task_clauses_ptr): Likewise.
37659 (gimple_omp_task_set_clauses): Likewise.
37660 (gimple_omp_task_child_fn): Likewise.
37661 (gimple_omp_task_child_fn_ptr): Likewise.
37662 (gimple_omp_task_set_child_fn): Likewise.
37663 (gimple_omp_task_data_arg): Likewise.
37664 (gimple_omp_task_data_arg_ptr): Likewise.
37665 (gimple_omp_task_set_data_arg): Likewise.
37666 (gimple_omp_taskreg_clauses): Likewise.
37667 (gimple_omp_taskreg_clauses_ptr): Likewise.
37668 (gimple_omp_taskreg_set_clauses): Likewise.
37669 (gimple_omp_taskreg_child_fn): Likewise.
37670 (gimple_omp_taskreg_child_fn_ptr): Likewise.
37671 (gimple_omp_taskreg_set_child_fn): Likewise.
37672 (gimple_omp_taskreg_data_arg): Likewise.
37673 (gimple_omp_taskreg_data_arg_ptr): Likewise.
37674 (gimple_omp_taskreg_set_data_arg): Likewise.
37675 (gimple_omp_task_copy_fn): Likewise.
37676 (gimple_omp_task_copy_fn_ptr): Likewise.
37677 (gimple_omp_task_set_copy_fn): Likewise.
37678 (gimple_omp_task_arg_size): Likewise.
37679 (gimple_omp_task_arg_size_ptr): Likewise.
37680 (gimple_omp_task_set_arg_size): Likewise.
37681 (gimple_omp_task_arg_align): Likewise.
37682 (gimple_omp_task_arg_align_ptr): Likewise.
37683 (gimple_omp_task_set_arg_align): Likewise.
37684 (gimple_omp_single_clauses): Likewise.
37685 (gimple_omp_single_clauses_ptr): Likewise.
37686 (gimple_omp_single_set_clauses): Likewise.
37687 (gimple_omp_target_clauses): Likewise.
37688 (gimple_omp_target_clauses_ptr): Likewise.
37689 (gimple_omp_target_set_clauses): Likewise.
37690 (gimple_omp_target_child_fn): Likewise.
37691 (gimple_omp_target_child_fn_ptr): Likewise.
37692 (gimple_omp_target_set_child_fn): Likewise.
37693 (gimple_omp_target_data_arg): Likewise.
37694 (gimple_omp_target_data_arg_ptr): Likewise.
37695 (gimple_omp_target_set_data_arg): Likewise.
37696 (gimple_omp_teams_clauses): Likewise.
37697 (gimple_omp_teams_clauses_ptr): Likewise.
37698 (gimple_omp_teams_set_clauses): Likewise.
37699 (gimple_omp_sections_clauses): Likewise.
37700 (gimple_omp_sections_clauses_ptr): Likewise.
37701 (gimple_omp_sections_set_clauses): Likewise.
37702 (gimple_omp_sections_control): Likewise.
37703 (gimple_omp_sections_control_ptr): Likewise.
37704 (gimple_omp_sections_set_control): Likewise.
37705 (gimple_omp_for_set_cond): Likewise.
37706 (gimple_omp_for_cond): Likewise.
37707 (gimple_omp_atomic_store_set_val): Likewise.
37708 (gimple_omp_atomic_store_val): Likewise.
37709 (gimple_omp_atomic_store_val_ptr): Likewise.
37710 (gimple_omp_atomic_load_set_lhs): Likewise.
37711 (gimple_omp_atomic_load_lhs): Likewise.
37712 (gimple_omp_atomic_load_lhs_ptr): Likewise.
37713 (gimple_omp_atomic_load_set_rhs): Likewise.
37714 (gimple_omp_atomic_load_rhs): Likewise.
37715 (gimple_omp_atomic_load_rhs_ptr): Likewise.
37716 (gimple_omp_continue_control_def): Likewise.
37717 (gimple_omp_continue_control_def_ptr): Likewise.
37718 (gimple_omp_continue_set_control_def): Likewise.
37719 (gimple_omp_continue_control_use): Likewise.
37720 (gimple_omp_continue_control_use_ptr): Likewise.
37721 (gimple_omp_continue_set_control_use): Likewise.
37722 (gimple_transaction_body_ptr): Likewise.
37723 (gimple_transaction_label): Likewise.
37724 (gimple_transaction_label_ptr): Likewise.
37725 (gimple_transaction_set_body): Likewise.
37726 (gimple_transaction_set_label): Likewise.
37727
37728 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
37729 * ipa-inline-analysis.c (inline_write_summary): Likewise.
37730 * ipa-ref.c (ipa_record_reference): Likewise.
37731 * ipa-reference.c (analyze_function): Likewise.
37732 (ipa_reference_write_optimization_summary): Likewise.
37733 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
37734 (address_taken_from_non_vtable_p): Likewise.
37735 (comdat_can_be_unshared_p_1): Likewise.
37736 * lto-cgraph.c (lto_output_ref): Likewise.
37737 (add_references): Likewise.
37738 (compute_ltrans_boundary): Likewise.
37739 (output_symtab): Likewise.
37740 (input_ref): Likewise.
37741 (input_cgraph_1): Likewise.
37742 (output_cgraph_opt_summary): Likewise.
37743 * lto-streamer-out.c (lto_output): Likewise.
37744 (output_symbol_p): Likewise.
37745 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
37746 (lsei_start_function_in_partition): Likewise.
37747 (lsei_next_variable_in_partition): Likewise.
37748 (lsei_start_variable_in_partition): Likewise.
37749 * symtab.c (insert_to_assembler_name_hash): Likewise.
37750 (unlink_from_assembler_name_hash): Likewise.
37751 (symtab_unregister_node): Likewise.
37752 (symtab_remove_node): Likewise.
37753 (dump_symtab_node): Likewise.
37754 (verify_symtab_base): Likewise.
37755 (verify_symtab_node): Likewise.
37756 (symtab_make_decl_local): Likewise.
37757 (symtab_alias_ultimate_target): Likewise.
37758 (symtab_resolve_alias): Likewise.
37759 (symtab_get_symbol_partitioning_class): Likewise.
37760 * tree-phinodes.c (allocate_phi_node): Likewise.
37761 (reserve_phi_args_for_new_edge): Likewise.
37762 (remove_phi_args): Likewise.
37763 * varpool.c (varpool_node_for_asm): Likewise.
37764 (varpool_remove_unreferenced_decls): Likewise.
37765
37766 2014-04-23 Jeff Law <law@redhat.com>
37767
37768 PR tree-optimization/60902
37769 * tree-ssa-threadedge.c
37770 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
37771 invalidate outputs from statements that do not produce useful
37772 outputs for threading.
37773
37774 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
37775
37776 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
37777 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
37778 machine descriptions for Stack Smashing Protector.
37779
37780 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
37781
37782 * aarch64.md (<optab>_rol<mode>3): New pattern.
37783 (<optab>_rolsi3_uxtw): Likewise.
37784 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
37785
37786 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
37787
37788 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
37789 (arm_cortex_a12_tune): Likewise.
37790
37791 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37792
37793 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
37794
37795 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37796
37797 * config/arm/arm.md (arm_rev16si2): New pattern.
37798 (arm_rev16si2_alt): Likewise.
37799 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
37800
37801 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37802
37803 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
37804 (rev16<mode>2_alt): Likewise.
37805 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
37806 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
37807 (aarch_rev16_shleft_mask_imm_p): Likewise.
37808 (aarch_rev16_p_1): Likewise.
37809 (aarch_rev16_p): Likewise.
37810 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
37811 (aarch_rev16_shright_mask_imm_p): Likewise.
37812 (aarch_rev16_shleft_mask_imm_p): Likewise.
37813
37814 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37815
37816 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
37817 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
37818 rev cost.
37819 (cortex_a53_extra_costs): Likewise.
37820 (cortex_a57_extra_costs): Likewise.
37821 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
37822 (cortexa7_extra_costs): Likewise.
37823 (cortexa8_extra_costs): Likewise.
37824 (cortexa12_extra_costs): Likewise.
37825 (cortexa15_extra_costs): Likewise.
37826 (v7m_extra_costs): Likewise.
37827 (arm_new_rtx_costs): Handle BSWAP.
37828
37829 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37830
37831 * config/arm/arm.c (cortexa8_extra_costs): New table.
37832 (arm_cortex_a8_tune): New tuning struct.
37833 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
37834
37835 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37836
37837 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
37838
37839 2014-04-23 Richard Biener <rguenther@suse.de>
37840
37841 * Makefile.in (OBJS): Remove loop-unswitch.o.
37842 * tree-pass.h (make_pass_rtl_unswitch): Remove.
37843 * passes.def (pass_rtl_unswitch): Likewise.
37844 * loop-init.c (gate_rtl_unswitch): Likewise.
37845 (rtl_unswitch): Likewise.
37846 (pass_data_rtl_unswitch): Likewise.
37847 (pass_rtl_unswitch): Likewise.
37848 (make_pass_rtl_unswitch): Likewise.
37849 * rtl.h (reversed_condition): Likewise.
37850 (compare_and_jump_seq): Likewise.
37851 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
37852 and make static.
37853 * loop-unroll.c (compare_and_jump_seq): Likewise.
37854
37855 2014-04-23 Richard Biener <rguenther@suse.de>
37856
37857 PR tree-optimization/60903
37858 * tree-ssa-loop-im.c (analyze_memory_references): Remove
37859 commented code block.
37860 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
37861 loop flags to newly created BBs and edges.
37862
37863 2014-04-23 Nick Clifton <nickc@redhat.com>
37864
37865 * config/msp430/msp430.c (msp430_handle_option): Move function
37866 to msp430-common.c
37867 (msp430_option_override): Simplify mcu and mcpu option handling.
37868 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
37869 support for -mhwmult command line option.
37870 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
37871 -mhwmult command line option.
37872 (msp430_hwmult_enabled): Delete.
37873 (msp43o_output_labelref): Add support for -mhwmult command line option.
37874 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
37875 (umulsidi3): Likewise.
37876 * config/msp430/msp430.opt (mmcu): Add Report attribute.
37877 (mcpu, mlarge, msmall): Likewise.
37878 (mhwmult): New option.
37879 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
37880 prototype.
37881 (msp430_is_f5_mcu): Remove prototype.
37882 (msp430_use_f5_series_hwmult): Add prototype.
37883 * config/msp430/msp430-opts.h: New file.
37884 * common/config/msp430: New directory.
37885 * common/config/msp430/msp430-common.c: New file.
37886 * config.gcc (msp430): Remove target_has_targetm_common.
37887 * doc/invoke.texi: Document -mhwmult command line option.
37888
37889 2014-04-23 Nick Clifton <nickc@redhat.com>
37890
37891 * config/i386/cygwin.h (ENDFILE_SPEC): Include
37892 default-manifest.o if it can be found in the search path.
37893 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
37894
37895 2014-04-23 Terry Guo <terry.guo@arm.com>
37896
37897 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
37898
37899 2014-04-23 Richard Biener <rguenther@suse.de>
37900
37901 PR middle-end/60895
37902 * tree-inline.c (declare_return_variable): Use mark_addressable.
37903
37904 2014-04-23 Richard Biener <rguenther@suse.de>
37905
37906 PR middle-end/60891
37907 * loop-init.c (loop_optimizer_init): Make sure to apply
37908 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
37909
37910 2014-04-22 Jakub Jelinek <jakub@redhat.com>
37911
37912 PR sanitizer/60275
37913 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
37914 New options.
37915 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
37916 if flag_sanitize_undefined_trap_on_error.
37917 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
37918 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
37919 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
37920 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
37921 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
37922 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
37923 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
37924 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
37925 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
37926 * ubsan.c (ubsan_instrument_unreachable): Return
37927 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
37928 (ubsan_expand_null_ifn): Emit __builtin_trap ()
37929 if flag_sanitize_undefined_trap_on_error and
37930 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
37931 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
37932 instrument_bool_enum_load): Emit __builtin_trap () if
37933 flag_sanitize_undefined_trap_on_error and
37934 __builtin_handle_*_abort () if !flag_sanitize_recover.
37935 * doc/invoke.texi (-fsanitize-recover,
37936 -fsanitize-undefined-trap-on-error): Document.
37937
37938 2014-04-22 Christian Bruel <christian.bruel@st.com>
37939
37940 * config/sh/sh.md (mov<mode>): Replace movQIHI.
37941 Force immediates to SImode.
37942
37943 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
37944
37945 * config/nios2/nios2.md (UNSPEC_ROUND): New.
37946 (lroundsfsi2): New.
37947 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
37948 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
37949 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
37950 (nios2_fpu_insn): Add entry for round.
37951 (N2FPU_NO_ERRNO_P): Define.
37952 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
37953 flag_errno_math.
37954 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
37955
37956 2014-04-22 Richard Henderson <rth@redhat.com>
37957
37958 * config/aarch64/aarch64 (addti3, subti3): New expanders.
37959 (add<GPI>3_compare0): Remove leading * from name.
37960 (add<GPI>3_carryin): Likewise.
37961 (sub<GPI>3_compare0): Likewise.
37962 (sub<GPI>3_carryin): Likewise.
37963 (<su_optab>mulditi3): New expander.
37964 (multi3): New expander.
37965 (madd<GPI>): Remove leading * from name.
37966
37967 2014-04-22 Martin Jambor <mjambor@suse.cz>
37968
37969 * cgraphclones.c (cgraph_function_versioning): Copy
37970 ipa_transforms_to_apply instead of asserting it is empty.
37971
37972 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
37973
37974 PR target/60868
37975 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
37976 on count_exp to get mode.
37977
37978 2014-04-22 Andrew Pinski <apinski@cavium.com>
37979
37980 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
37981 Handle TLS for ILP32.
37982 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
37983 (tlsie_small_<mode>): this and handle PTR.
37984 (tlsie_small_sidi): New pattern.
37985 (tlsle_small): Change to an expand to handle ILP32.
37986 (tlsle_small_<mode>): New pattern.
37987 (tlsdesc_small): Rename to ...
37988 (tlsdesc_small_<mode>): this and handle PTR.
37989
37990 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37991
37992 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
37993
37994 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
37995
37996 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
37997 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
37998 (aarch64_types_signed_poly_qualifiers): Likewise.
37999 (aarch64_types_unsigned_signed_qualifiers): Likewise.
38000 (aarch64_types_poly_signed_qualifiers): Likewise.
38001 (TYPES_REINTERP_SS): Type macro added.
38002 (TYPES_REINTERP_SU): Likewise.
38003 (TYPES_REINTERP_SP): Likewise.
38004 (TYPES_REINTERP_US): Likewise.
38005 (TYPES_REINTERP_PS): Likewise.
38006 (aarch64_fold_builtin): New expression folding added.
38007 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
38008 Declarations removed.
38009 (REINTERP_SS): Declarations added.
38010 (REINTERP_US): Likewise.
38011 (REINTERP_PS): Likewise.
38012 (REINTERP_SU): Likewise.
38013 (REINTERP_SP): Likewise.
38014 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
38015 (vreinterpretq_p8_f64): Likewise.
38016 (vreinterpret_p16_f64): Likewise.
38017 (vreinterpretq_p16_f64): Likewise.
38018 (vreinterpret_f32_f64): Likewise.
38019 (vreinterpretq_f32_f64): Likewise.
38020 (vreinterpret_f64_f32): Likewise.
38021 (vreinterpret_f64_p8): Likewise.
38022 (vreinterpret_f64_p16): Likewise.
38023 (vreinterpret_f64_s8): Likewise.
38024 (vreinterpret_f64_s16): Likewise.
38025 (vreinterpret_f64_s32): Likewise.
38026 (vreinterpret_f64_s64): Likewise.
38027 (vreinterpret_f64_u8): Likewise.
38028 (vreinterpret_f64_u16): Likewise.
38029 (vreinterpret_f64_u32): Likewise.
38030 (vreinterpret_f64_u64): Likewise.
38031 (vreinterpretq_f64_f32): Likewise.
38032 (vreinterpretq_f64_p8): Likewise.
38033 (vreinterpretq_f64_p16): Likewise.
38034 (vreinterpretq_f64_s8): Likewise.
38035 (vreinterpretq_f64_s16): Likewise.
38036 (vreinterpretq_f64_s32): Likewise.
38037 (vreinterpretq_f64_s64): Likewise.
38038 (vreinterpretq_f64_u8): Likewise.
38039 (vreinterpretq_f64_u16): Likewise.
38040 (vreinterpretq_f64_u32): Likewise.
38041 (vreinterpretq_f64_u64): Likewise.
38042 (vreinterpret_s64_f64): Likewise.
38043 (vreinterpretq_s64_f64): Likewise.
38044 (vreinterpret_u64_f64): Likewise.
38045 (vreinterpretq_u64_f64): Likewise.
38046 (vreinterpret_s8_f64): Likewise.
38047 (vreinterpretq_s8_f64): Likewise.
38048 (vreinterpret_s16_f64): Likewise.
38049 (vreinterpretq_s16_f64): Likewise.
38050 (vreinterpret_s32_f64): Likewise.
38051 (vreinterpretq_s32_f64): Likewise.
38052 (vreinterpret_u8_f64): Likewise.
38053 (vreinterpretq_u8_f64): Likewise.
38054 (vreinterpret_u16_f64): Likewise.
38055 (vreinterpretq_u16_f64): Likewise.
38056 (vreinterpret_u32_f64): Likewise.
38057 (vreinterpretq_u32_f64): Likewise.
38058
38059 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
38060
38061 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
38062 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
38063 (vreinterpret_p8_s8): Likewise.
38064 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
38065 (vreinterpret_p8_s16): Likewise.
38066 (vreinterpret_p8_s32): Likewise.
38067 (vreinterpret_p8_s64): Likewise.
38068 (vreinterpret_p8_f32): Likewise.
38069 (vreinterpret_p8_u8): Likewise.
38070 (vreinterpret_p8_u16): Likewise.
38071 (vreinterpret_p8_u32): Likewise.
38072 (vreinterpret_p8_u64): Likewise.
38073 (vreinterpret_p8_p16): Likewise.
38074 (vreinterpretq_p8_s8): Likewise.
38075 (vreinterpretq_p8_s16): Likewise.
38076 (vreinterpretq_p8_s32): Likewise.
38077 (vreinterpretq_p8_s64): Likewise.
38078 (vreinterpretq_p8_f32): Likewise.
38079 (vreinterpretq_p8_u8): Likewise.
38080 (vreinterpretq_p8_u16): Likewise.
38081 (vreinterpretq_p8_u32): Likewise.
38082 (vreinterpretq_p8_u64): Likewise.
38083 (vreinterpretq_p8_p16): Likewise.
38084 (vreinterpret_p16_s8): Likewise.
38085 (vreinterpret_p16_s16): Likewise.
38086 (vreinterpret_p16_s32): Likewise.
38087 (vreinterpret_p16_s64): Likewise.
38088 (vreinterpret_p16_f32): Likewise.
38089 (vreinterpret_p16_u8): Likewise.
38090 (vreinterpret_p16_u16): Likewise.
38091 (vreinterpret_p16_u32): Likewise.
38092 (vreinterpret_p16_u64): Likewise.
38093 (vreinterpret_p16_p8): Likewise.
38094 (vreinterpretq_p16_s8): Likewise.
38095 (vreinterpretq_p16_s16): Likewise.
38096 (vreinterpretq_p16_s32): Likewise.
38097 (vreinterpretq_p16_s64): Likewise.
38098 (vreinterpretq_p16_f32): Likewise.
38099 (vreinterpretq_p16_u8): Likewise.
38100 (vreinterpretq_p16_u16): Likewise.
38101 (vreinterpretq_p16_u32): Likewise.
38102 (vreinterpretq_p16_u64): Likewise.
38103 (vreinterpretq_p16_p8): Likewise.
38104 (vreinterpret_f32_s8): Likewise.
38105 (vreinterpret_f32_s16): Likewise.
38106 (vreinterpret_f32_s32): Likewise.
38107 (vreinterpret_f32_s64): Likewise.
38108 (vreinterpret_f32_u8): Likewise.
38109 (vreinterpret_f32_u16): Likewise.
38110 (vreinterpret_f32_u32): Likewise.
38111 (vreinterpret_f32_u64): Likewise.
38112 (vreinterpret_f32_p8): Likewise.
38113 (vreinterpret_f32_p16): Likewise.
38114 (vreinterpretq_f32_s8): Likewise.
38115 (vreinterpretq_f32_s16): Likewise.
38116 (vreinterpretq_f32_s32): Likewise.
38117 (vreinterpretq_f32_s64): Likewise.
38118 (vreinterpretq_f32_u8): Likewise.
38119 (vreinterpretq_f32_u16): Likewise.
38120 (vreinterpretq_f32_u32): Likewise.
38121 (vreinterpretq_f32_u64): Likewise.
38122 (vreinterpretq_f32_p8): Likewise.
38123 (vreinterpretq_f32_p16): Likewise.
38124 (vreinterpret_s64_s8): Likewise.
38125 (vreinterpret_s64_s16): Likewise.
38126 (vreinterpret_s64_s32): Likewise.
38127 (vreinterpret_s64_f32): Likewise.
38128 (vreinterpret_s64_u8): Likewise.
38129 (vreinterpret_s64_u16): Likewise.
38130 (vreinterpret_s64_u32): Likewise.
38131 (vreinterpret_s64_u64): Likewise.
38132 (vreinterpret_s64_p8): Likewise.
38133 (vreinterpret_s64_p16): Likewise.
38134 (vreinterpretq_s64_s8): Likewise.
38135 (vreinterpretq_s64_s16): Likewise.
38136 (vreinterpretq_s64_s32): Likewise.
38137 (vreinterpretq_s64_f32): Likewise.
38138 (vreinterpretq_s64_u8): Likewise.
38139 (vreinterpretq_s64_u16): Likewise.
38140 (vreinterpretq_s64_u32): Likewise.
38141 (vreinterpretq_s64_u64): Likewise.
38142 (vreinterpretq_s64_p8): Likewise.
38143 (vreinterpretq_s64_p16): Likewise.
38144 (vreinterpret_u64_s8): Likewise.
38145 (vreinterpret_u64_s16): Likewise.
38146 (vreinterpret_u64_s32): Likewise.
38147 (vreinterpret_u64_s64): Likewise.
38148 (vreinterpret_u64_f32): Likewise.
38149 (vreinterpret_u64_u8): Likewise.
38150 (vreinterpret_u64_u16): Likewise.
38151 (vreinterpret_u64_u32): Likewise.
38152 (vreinterpret_u64_p8): Likewise.
38153 (vreinterpret_u64_p16): Likewise.
38154 (vreinterpretq_u64_s8): Likewise.
38155 (vreinterpretq_u64_s16): Likewise.
38156 (vreinterpretq_u64_s32): Likewise.
38157 (vreinterpretq_u64_s64): Likewise.
38158 (vreinterpretq_u64_f32): Likewise.
38159 (vreinterpretq_u64_u8): Likewise.
38160 (vreinterpretq_u64_u16): Likewise.
38161 (vreinterpretq_u64_u32): Likewise.
38162 (vreinterpretq_u64_p8): Likewise.
38163 (vreinterpretq_u64_p16): Likewise.
38164 (vreinterpret_s8_s16): Likewise.
38165 (vreinterpret_s8_s32): Likewise.
38166 (vreinterpret_s8_s64): Likewise.
38167 (vreinterpret_s8_f32): Likewise.
38168 (vreinterpret_s8_u8): Likewise.
38169 (vreinterpret_s8_u16): Likewise.
38170 (vreinterpret_s8_u32): Likewise.
38171 (vreinterpret_s8_u64): Likewise.
38172 (vreinterpret_s8_p8): Likewise.
38173 (vreinterpret_s8_p16): Likewise.
38174 (vreinterpretq_s8_s16): Likewise.
38175 (vreinterpretq_s8_s32): Likewise.
38176 (vreinterpretq_s8_s64): Likewise.
38177 (vreinterpretq_s8_f32): Likewise.
38178 (vreinterpretq_s8_u8): Likewise.
38179 (vreinterpretq_s8_u16): Likewise.
38180 (vreinterpretq_s8_u32): Likewise.
38181 (vreinterpretq_s8_u64): Likewise.
38182 (vreinterpretq_s8_p8): Likewise.
38183 (vreinterpretq_s8_p16): Likewise.
38184 (vreinterpret_s16_s8): Likewise.
38185 (vreinterpret_s16_s32): Likewise.
38186 (vreinterpret_s16_s64): Likewise.
38187 (vreinterpret_s16_f32): Likewise.
38188 (vreinterpret_s16_u8): Likewise.
38189 (vreinterpret_s16_u16): Likewise.
38190 (vreinterpret_s16_u32): Likewise.
38191 (vreinterpret_s16_u64): Likewise.
38192 (vreinterpret_s16_p8): Likewise.
38193 (vreinterpret_s16_p16): Likewise.
38194 (vreinterpretq_s16_s8): Likewise.
38195 (vreinterpretq_s16_s32): Likewise.
38196 (vreinterpretq_s16_s64): Likewise.
38197 (vreinterpretq_s16_f32): Likewise.
38198 (vreinterpretq_s16_u8): Likewise.
38199 (vreinterpretq_s16_u16): Likewise.
38200 (vreinterpretq_s16_u32): Likewise.
38201 (vreinterpretq_s16_u64): Likewise.
38202 (vreinterpretq_s16_p8): Likewise.
38203 (vreinterpretq_s16_p16): Likewise.
38204 (vreinterpret_s32_s8): Likewise.
38205 (vreinterpret_s32_s16): Likewise.
38206 (vreinterpret_s32_s64): Likewise.
38207 (vreinterpret_s32_f32): Likewise.
38208 (vreinterpret_s32_u8): Likewise.
38209 (vreinterpret_s32_u16): Likewise.
38210 (vreinterpret_s32_u32): Likewise.
38211 (vreinterpret_s32_u64): Likewise.
38212 (vreinterpret_s32_p8): Likewise.
38213 (vreinterpret_s32_p16): Likewise.
38214 (vreinterpretq_s32_s8): Likewise.
38215 (vreinterpretq_s32_s16): Likewise.
38216 (vreinterpretq_s32_s64): Likewise.
38217 (vreinterpretq_s32_f32): Likewise.
38218 (vreinterpretq_s32_u8): Likewise.
38219 (vreinterpretq_s32_u16): Likewise.
38220 (vreinterpretq_s32_u32): Likewise.
38221 (vreinterpretq_s32_u64): Likewise.
38222 (vreinterpretq_s32_p8): Likewise.
38223 (vreinterpretq_s32_p16): Likewise.
38224 (vreinterpret_u8_s8): Likewise.
38225 (vreinterpret_u8_s16): Likewise.
38226 (vreinterpret_u8_s32): Likewise.
38227 (vreinterpret_u8_s64): Likewise.
38228 (vreinterpret_u8_f32): Likewise.
38229 (vreinterpret_u8_u16): Likewise.
38230 (vreinterpret_u8_u32): Likewise.
38231 (vreinterpret_u8_u64): Likewise.
38232 (vreinterpret_u8_p8): Likewise.
38233 (vreinterpret_u8_p16): Likewise.
38234 (vreinterpretq_u8_s8): Likewise.
38235 (vreinterpretq_u8_s16): Likewise.
38236 (vreinterpretq_u8_s32): Likewise.
38237 (vreinterpretq_u8_s64): Likewise.
38238 (vreinterpretq_u8_f32): Likewise.
38239 (vreinterpretq_u8_u16): Likewise.
38240 (vreinterpretq_u8_u32): Likewise.
38241 (vreinterpretq_u8_u64): Likewise.
38242 (vreinterpretq_u8_p8): Likewise.
38243 (vreinterpretq_u8_p16): Likewise.
38244 (vreinterpret_u16_s8): Likewise.
38245 (vreinterpret_u16_s16): Likewise.
38246 (vreinterpret_u16_s32): Likewise.
38247 (vreinterpret_u16_s64): Likewise.
38248 (vreinterpret_u16_f32): Likewise.
38249 (vreinterpret_u16_u8): Likewise.
38250 (vreinterpret_u16_u32): Likewise.
38251 (vreinterpret_u16_u64): Likewise.
38252 (vreinterpret_u16_p8): Likewise.
38253 (vreinterpret_u16_p16): Likewise.
38254 (vreinterpretq_u16_s8): Likewise.
38255 (vreinterpretq_u16_s16): Likewise.
38256 (vreinterpretq_u16_s32): Likewise.
38257 (vreinterpretq_u16_s64): Likewise.
38258 (vreinterpretq_u16_f32): Likewise.
38259 (vreinterpretq_u16_u8): Likewise.
38260 (vreinterpretq_u16_u32): Likewise.
38261 (vreinterpretq_u16_u64): Likewise.
38262 (vreinterpretq_u16_p8): Likewise.
38263 (vreinterpretq_u16_p16): Likewise.
38264 (vreinterpret_u32_s8): Likewise.
38265 (vreinterpret_u32_s16): Likewise.
38266 (vreinterpret_u32_s32): Likewise.
38267 (vreinterpret_u32_s64): Likewise.
38268 (vreinterpret_u32_f32): Likewise.
38269 (vreinterpret_u32_u8): Likewise.
38270 (vreinterpret_u32_u16): Likewise.
38271 (vreinterpret_u32_u64): Likewise.
38272 (vreinterpret_u32_p8): Likewise.
38273 (vreinterpret_u32_p16): Likewise.
38274 (vreinterpretq_u32_s8): Likewise.
38275 (vreinterpretq_u32_s16): Likewise.
38276 (vreinterpretq_u32_s32): Likewise.
38277 (vreinterpretq_u32_s64): Likewise.
38278 (vreinterpretq_u32_f32): Likewise.
38279 (vreinterpretq_u32_u8): Likewise.
38280 (vreinterpretq_u32_u16): Likewise.
38281 (vreinterpretq_u32_u64): Likewise.
38282 (vreinterpretq_u32_p8): Likewise.
38283 (vreinterpretq_u32_p16): Likewise.
38284
38285 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
38286
38287 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
38288 Pattern extended.
38289 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
38290 (sqabs): Likewise.
38291 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
38292 (vqnegd_s64): Likewise.
38293 (vqabs_s64): Likewise.
38294 (vqabsd_s64): Likewise.
38295
38296 2014-04-22 Richard Henderson <rth@redhat.com>
38297
38298 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
38299 computation to the top of the loop.
38300
38301 2014-04-22 Renlin <renlin.li@arm.com>
38302 Jiong Wang <jiong.wang@arm.com>
38303
38304 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
38305 * config/aarch64/aarch64.c (aarch64_layout_frame)
38306 (aarch64_initial_elimination_offset): Likewise.
38307
38308 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
38309
38310 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
38311 Fix indentation.
38312
38313 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
38314
38315 * machmode.h (bitwise_mode_for_mode): Declare.
38316 * stor-layout.h (bitwise_type_for_mode): Likewise.
38317 * stor-layout.c (bitwise_mode_for_mode): New function.
38318 (bitwise_type_for_mode): Likewise.
38319 * builtins.c (fold_builtin_memory_op): Use it instead of
38320 int_mode_for_mode and build_nonstandard_integer_type.
38321
38322 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38323
38324 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
38325 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
38326 (*-*-solaris2*): Simplify.
38327 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
38328 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
38329 *-*-solaris2.9* handling.
38330
38331 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
38332 as bug.
38333 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
38334 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
38335 handling, simplify.
38336 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
38337 * configure: Regenerate.
38338
38339 * config/i386/sol2-9.h: Remove.
38340
38341 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
38342 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
38343 Remove Solaris 9 references.
38344
38345 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
38346
38347 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
38348 (floatuns<GPI:mode><GPF:mode>2): Remove.
38349 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
38350 and floatuns conversions.
38351 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
38352 and floatuns conversions.
38353 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
38354 (w1,w2): New mode attributes for inequal width conversions.
38355
38356 2014-04-22 Renlin Li <Renlin.Li@arm.com>
38357
38358 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
38359 the output asm format.
38360
38361 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
38362
38363 * config/aarch64/aarch64-simd.md
38364 (aarch64_cm<optab>di): Always split.
38365 (*aarch64_cm<optab>di): New.
38366 (aarch64_cmtstdi): Always split.
38367 (*aarch64_cmtstdi): New.
38368
38369 2014-04-22 Jakub Jelinek <jakub@redhat.com>
38370
38371 PR tree-optimization/60823
38372 * omp-low.c (ipa_simd_modify_function_body): Go through
38373 all SSA_NAMEs and for those refering to vector arguments
38374 which are going to be replaced adjust SSA_NAME_VAR and,
38375 if it is a default definition, change it into a non-default
38376 definition assigned at the beginning of function from new_decl.
38377 (ipa_simd_modify_stmt_ops): Rewritten.
38378 * tree-dfa.c (set_ssa_default_def): When removing default def,
38379 check for NULL loc instead of NULL *loc.
38380
38381 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38382
38383 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
38384 restrictions on core registers for DImode values in Thumb2.
38385
38386 2014-04-22 Ian Bolton <ian.bolton@arm.com>
38387
38388 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
38389 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
38390
38391 2014-04-22 Ian Bolton <ian.bolton@arm.com>
38392
38393 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
38394 (*iordi_notzesidi_di): Likewise.
38395 (*iordi_notsesidi_di): Likewise.
38396
38397 2014-04-22 Ian Bolton <ian.bolton@arm.com>
38398
38399 * config/arm/arm-protos.h (tune_params): New struct members.
38400 * config/arm/arm.c: Initialise tune_params per processor.
38401 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
38402 for speed, based on new tune_params.
38403
38404 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
38405
38406 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
38407 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
38408 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
38409 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
38410 * config/aarch64/arm_neon.h (vrnd_f64): Added.
38411 (vrnda_f64): Likewise.
38412 (vrndi_f64): Likewise.
38413 (vrndm_f64): Likewise.
38414 (vrndn_f64): Likewise.
38415 (vrndp_f64): Likewise.
38416 (vrndx_f64): Likewise.
38417
38418 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
38419
38420 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
38421 GET_MODE_SIZE argument is enum machine_mode.
38422
38423 2014-04-22 Jakub Jelinek <jakub@redhat.com>
38424
38425 PR target/60910
38426 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
38427 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
38428
38429 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
38430
38431 PR middle-end/60281
38432 * asan.c (asan_emit_stack_protection): Force the base to align to
38433 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
38434 appropriate bits if STRICT_ALIGNMENT.
38435 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
38436 when asan is on.
38437 (expand_used_vars): Leave a space in the stack frame for alignment
38438 if STRICT_ALIGNMENT.
38439
38440 2014-04-21 David Malcolm <dmalcolm@redhat.com>
38441
38442 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
38443 than a gimple.
38444 (gimple_store_p): Likewise.
38445 (gimple_assign_load_p): Likewise.
38446 (gimple_assign_cast_p): Likewise.
38447 (gimple_clobber_p): Likewise.
38448
38449 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
38450 rather than a gimple.
38451 (gimple_assign_cast_p): Likewise.
38452
38453 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
38454
38455 PR target/60735
38456 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
38457 If mode is DDmode and TARGET_E500_DOUBLE allow move.
38458
38459 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
38460 more debug information for E500 if -mdebug=reg.
38461
38462 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
38463
38464 PR target/60909
38465 * config/i386/i386.c (ix86_expand_builtin)
38466 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
38467 register for target RTX.
38468 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
38469
38470 2014-04-18 Cong Hou <congh@google.com>
38471
38472 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
38473 the widen-mult pattern by handling two operands with different sizes,
38474 and operands whose size is smaller than half of the result type.
38475
38476 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
38477
38478 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
38479 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
38480 (do_estimate_edge_time): Compute it.
38481 * ipa-inline.c (want_inline_small_function_p): Bypass
38482 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
38483
38484 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
38485
38486 * ipa-inline.c (spec_rem): New static variable.
38487 (dump_overall_stats): New function.
38488 (dump_inline_stats): New function.
38489
38490 2014-04-18 Richard Henderson <rth@redhat.com>
38491
38492 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
38493 to GET_MODE_SIZE, not a reg_class_t.
38494
38495 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38496
38497 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
38498 (vsx_xxmrglw_<mode>): Likewise.
38499
38500 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
38501
38502 PR target/60876
38503 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
38504 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
38505 (rs6000_init_hard_regno_mode_ok): Likewise.
38506
38507 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
38508
38509 * ipa-inline.c (inline_small_functions): Account only non-cold
38510 functions.
38511 * doc/invoke.texi (inline-unit-growth): Update documentation.
38512
38513 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
38514
38515 * config/rs6000/rs6000.md (addti3, subti3): New.
38516
38517 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
38518
38519 PR target/60863
38520 * config/i386/i386.c (ix86_expand_clear): Remove outdated
38521 comment. Check optimize_insn_for_size_p instead of
38522 optimize_insn_for_speed_p.
38523
38524 2014-04-17 Martin Jambor <mjambor@suse.cz>
38525
38526 * gimple-iterator.c (gsi_start_edge): New function.
38527 * gimple-iterator.h (gsi_start_edge): Declare.
38528 * tree-sra.c (single_non_eh_succ): New function.
38529 (disqualify_ops_if_throwing_stmt): Renamed to
38530 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
38531 having one non-EH successor BB.
38532 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
38533 generate loads into replacements.
38534 (sra_modify_assign): Likewise and and also use the simple path for
38535 such statements.
38536 (sra_modify_function_body): Commit statements on edges.
38537
38538 2014-04-17 Richard Biener <rguenther@suse.de>
38539
38540 PR middle-end/60849
38541 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
38542 comparison results and add clarifying comment.
38543
38544 2014-04-17 Jakub Jelinek <jakub@redhat.com>
38545
38546 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
38547 (blank_mode): Initialize it.
38548 (emit_mode_size_inline, emit_mode_nunits_inline,
38549 emit_mode_inner_inline): New functions.
38550 (emit_insn_modes_h): Call them and surround their output with
38551 #if GCC_VERSION >= 4001 ... #endif.
38552 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
38553 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
38554 mode_* arrays if the argument is __builtin_constant_p.
38555 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
38556 is enum machine_mode.
38557
38558 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
38559
38560 * passes.c (opt_pass::execute): Adjust.
38561 (pass_manager::execute_pass_mode_switching): Likewise.
38562 (early_local_passes::execute): Likewise.
38563 (execute_one_pass): Pass cfun to the pass's execute method.
38564 * tree-pass.h (opt_pass::execute): Add function * argument.
38565 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
38566 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
38567 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
38568 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
38569 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
38570 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
38571 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
38572 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
38573 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
38574 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
38575 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
38576 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
38577 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
38578 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
38579 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
38580 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
38581 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
38582 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
38583 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
38584 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
38585 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
38586 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
38587 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
38588 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
38589 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
38590 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
38591 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
38592 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
38593 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
38594 Adjust.
38595
38596 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
38597
38598 * passes.c (opt_pass::gate): Take function * argument.
38599 (gate_all_early_local_passes): Merge into
38600 (early_local_passes::gate): this.
38601 (gate_all_early_optimizations): Merge into
38602 (all_early_optimizations::gate): this.
38603 (gate_all_optimizations): Mege into
38604 (all_optimizations::gate): this.
38605 (gate_all_optimizations_g): Merge into
38606 (all_optimizations_g::gate): this.
38607 (gate_rest_of_compilation): Mege into
38608 (rest_of_compilation::gate): this.
38609 (gate_postreload): Merge into
38610 (postreload::gate): this.
38611 (dump_one_pass): Pass cfun to the pass's gate method.
38612 (execute_ipa_summary_passes): Likewise.
38613 (execute_one_pass): Likewise.
38614 (ipa_write_summaries_2): Likewise.
38615 (ipa_write_optimization_summaries_1): Likewise.
38616 (ipa_read_summaries_1): Likewise.
38617 (ipa_read_optimization_summaries_1): Likewise.
38618 (execute_ipa_stmt_fixups): Likewise.
38619 * tree-pass.h (opt_pass::gate): Add function * argument.
38620 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
38621 combine-stack-adj.c, combine.c, compare-elim.c,
38622 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
38623 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
38624 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
38625 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
38626 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
38627 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
38628 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
38629 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
38630 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
38631 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
38632 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
38633 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
38634 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
38635 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
38636 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
38637 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
38638 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
38639 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
38640 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
38641 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
38642 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
38643 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
38644 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
38645 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
38646 var-tracking.c, vtable-verify.c, web.c: Adjust.
38647
38648 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
38649
38650 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
38651 * configure: Regenerate.
38652
38653 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
38654
38655 * passes.c (dump_one_pass): don't check pass->has_gate.
38656 (execute_ipa_summary_passes): Likewise.
38657 (execute_one_pass): Likewise.
38658 (ipa_write_summaries_2): Likewise.
38659 (ipa_write_optimization_summaries_1): Likewise.
38660 (ipa_read_optimization_summaries_1): Likewise.
38661 (execute_ipa_stmt_fixups): Likewise.
38662 * tree-pass.h (pass_data::has_gate): Remove.
38663 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
38664 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
38665 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
38666 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
38667 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
38668 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
38669 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
38670 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
38671 gimple-low.c, gimple-ssa-isolate-paths.c,
38672 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
38673 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
38674 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
38675 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
38676 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
38677 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
38678 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
38679 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
38680 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
38681 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
38682 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
38683 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
38684 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
38685 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
38686 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
38687 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
38688 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
38689 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
38690 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
38691 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
38692 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
38693 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
38694 Adjust.
38695
38696 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
38697
38698 * pass_manager.h (pass_manager::register_dump_files_1): Remove
38699 declaration.
38700 * passes.c (pass_manager::register_dump_files_1): Merge into
38701 (pass_manager::register_dump_files): this, and remove its handling of
38702 properties since the pass always has the properties anyway.
38703 (pass_manager::pass_manager): Adjust.
38704
38705 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
38706
38707 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
38708 * passes.c (pass_manager::register_dump_files_1): Remove dead code
38709 dealing with properties.
38710 (pass_manager::register_dump_files): Adjust.
38711
38712 2014-03-20 Mark Wielaard <mjw@redhat.com>
38713
38714 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
38715 then represent the bound as normal constant value.
38716
38717 2014-04-17 Jakub Jelinek <jakub@redhat.com>
38718
38719 PR target/60847
38720 Forward port from 4.8 branch
38721 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
38722
38723 * config/i386/bmiintrin.h (_blsi_u32): New.
38724 (_blsi_u64): Ditto.
38725 (_blsr_u32): Ditto.
38726 (_blsr_u64): Ditto.
38727 (_blsmsk_u32): Ditto.
38728 (_blsmsk_u64): Ditto.
38729 (_tzcnt_u32): Ditto.
38730 (_tzcnt_u64): Ditto.
38731
38732 2014-04-17 Kito Cheng <kito@0xlab.org>
38733
38734 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
38735
38736 2014-04-17 Richard Biener <rguenther@suse.de>
38737
38738 PR middle-end/60849
38739 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
38740 boolean results for comparisons.
38741
38742 2014-04-17 Richard Biener <rguenther@suse.de>
38743
38744 PR tree-optimization/60836
38745 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
38746 initial PHI args to be gimple values.
38747
38748 2014-04-17 Richard Biener <rguenther@suse.de>
38749
38750 PR tree-optimization/60841
38751 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
38752 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
38753 of stmts to SLP build.
38754 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
38755 (vect_analyze_slp): Likewise.
38756 (vect_analyze_slp_instance): Likewise.
38757 (vect_build_slp_tree): Limit overall SLP tree growth.
38758 * tree-vectorizer.h (vect_analyze_data_refs,
38759 vect_analyze_slp): Adjust prototypes.
38760
38761 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
38762
38763 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
38764 Silvermont.
38765
38766 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
38767
38768 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
38769 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
38770 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
38771 for TARGET_SLOW_PSHUFB
38772
38773 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
38774
38775 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
38776 * config/i386/i386.c (intel_cost): Ditto.
38777
38778 2014-04-17 Joey Ye <joey.ye@arm.com>
38779
38780 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
38781
38782 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
38783
38784 * opts.c (common_handle_option): Disable -fipa-reference coorectly
38785 with -fuse-profile.
38786
38787 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
38788
38789 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
38790 (type_all_derivations_known_p): New predicate.
38791 (type_all_ctors_visible_p): New predicate.
38792 (type_possibly_instantiated_p): New predicate.
38793 (get_odr_type): Compute all_derivations_known.
38794 (dump_odr_type): Dump the flag.
38795 (maybe_record_type): Cleanup.
38796 (record_target_from_binfo): Add bases_to_consider array;
38797 record bases for types w/o instances and skip CXX destructor.
38798 (possible_polymorphic_call_targets_1): Add bases_to_consider
38799 and consider_construction parameters; check if type may have instance.
38800 (get_polymorphic_call_info): Set maybe_in_construction to true
38801 when we know nothing.
38802 (record_targets_from_bases): Skip CXX destructors; they are
38803 never called for types in construction.
38804 (possible_polymorphic_call_targets): Do not record target when
38805 type may not have instance.
38806
38807 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
38808
38809 PR ipa/60854
38810 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
38811 external aliases alive, too.
38812
38813 2014-04-16 Andrew Pinski <apinski@cavium.com>
38814
38815 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
38816 definition.
38817
38818 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
38819
38820 * final.c (compute_alignments): Do not apply loop alignment to a block
38821 falling through to the exit.
38822
38823 2014-04-16 Catherine Moore <clm@codesourcery.com>
38824
38825 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
38826 Adjust constraints for microMIPS store patterns.
38827
38828 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
38829
38830 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
38831
38832 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
38833
38834 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
38835 (append_use): Run at -O0.
38836 (append_vdef): Likewise.
38837 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
38838 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
38839
38840 2014-04-16 Jakub Jelinek <jakub@redhat.com>
38841
38842 PR tree-optimization/60844
38843 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
38844 (propagate_op_to_single_use, remove_visited_stmt_chain,
38845 linearize_expr, repropagate_negates, reassociate_bb): Use it
38846 instead of gsi_remove.
38847
38848 2014-04-16 Martin Jambor <mjambor@suse.cz>
38849
38850 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
38851 ipa_transforms_to_apply.
38852 (cgraph_function_versioning): Assert that old_node has empty
38853 ipa_transforms_to_apply.
38854 * trans-mem.c (ipa_tm_create_version): Likewise.
38855 * tree-inline.c (tree_function_versioning): Do not duplicate
38856 ipa_transforms_to_apply.
38857
38858 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38859
38860 PR target/60817
38861 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
38862 x86_64-*-* cases.
38863 Pass necessary as flags on 64-bit Solaris/x86.
38864 Use lowercase relocs for x86_64-*-*.
38865 * configure: Regenerate.
38866
38867 2014-04-15 Jan Hubicka <jh@suse.cz>
38868
38869 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
38870 (maybe_record_node, likely_target_p): Use it.
38871
38872 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38873
38874 PR target/60839
38875 Revert following patch
38876
38877 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
38878
38879 PR target/60735
38880 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
38881 software floating point or no floating point registers, do not
38882 allow any type in the FPRs. Eliminate a test for SPE SIMD types
38883 in GPRs that occurs after we tested for GPRs that would never be
38884 true.
38885
38886 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
38887 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
38888 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
38889 specifically allow DDmode, since that does not use the SPE SIMD
38890 instructions.
38891
38892 2014-03-21 Mark Wielaard <mjw@redhat.com>
38893
38894 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
38895 as unsigned or int depending on type and value used.
38896
38897 2014-04-15 Richard Biener <rguenther@suse.de>
38898
38899 PR rtl-optimization/56965
38900 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
38901 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
38902 ... here.
38903 * alias.c (true_dependence_1): Do not call
38904 nonoverlapping_component_refs_p.
38905 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
38906 nonoverlapping_component_refs_p.
38907 (indirect_refs_may_alias_p): Likewise.
38908
38909 2014-04-15 Teresa Johnson <tejohnson@google.com>
38910
38911 * cfg.c (dump_bb_info): Fix flags check.
38912 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
38913
38914 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38915
38916 PR rtl-optimization/60663
38917 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
38918 avoid 0 cost.
38919
38920 2014-04-15 Richard Biener <rguenther@suse.de>
38921
38922 * lto-streamer.h (LTO_major_version): Bump to 4.
38923
38924 2014-04-15 Richard Biener <rguenther@suse.de>
38925
38926 * common.opt (lto_partition_model): New enum.
38927 (flto-partition=): Merge separate options with a single with argument,
38928 add -flto-partition=one support.
38929 * flag-types.h (enum lto_partition_model): Declare.
38930 * opts.c (finish_options): Remove duplicate -flto-partition=
38931 option check.
38932 * lto-wrapper.c (run_gcc): Adjust.
38933
38934 2014-04-15 Richard Biener <rguenther@suse.de>
38935
38936 * alias.c (ncr_compar): New function.
38937 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
38938
38939 2014-04-15 Richard Biener <rguenther@suse.de>
38940
38941 * alias.c (record_component_aliases): Do not walk BINFOs.
38942
38943 2014-04-15 Richard Biener <rguenther@suse.de>
38944
38945 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
38946 Add struct function argument and adjust.
38947 (find_func_aliases_for_call): Likewise.
38948 (find_func_aliases): Likewise.
38949 (find_func_clobbers): Likewise.
38950 (intra_create_variable_infos): Likewise.
38951 (compute_points_to_sets): Likewise.
38952 (ipa_pta_execute): Adjust. Do not push/pop cfun.
38953
38954 2014-04-15 Richard Biener <rguenther@suse.de>
38955
38956 * tree.c (iterative_hash_expr): Use enum tree_code_class
38957 to store TREE_CODE_CLASS.
38958 (tree_block): Likewise.
38959 (tree_set_block): Likewise.
38960 * tree.h (fold_build_pointer_plus_loc): Use
38961 convert_to_ptrofftype_loc.
38962
38963 2014-04-15 Jakub Jelinek <jakub@redhat.com>
38964
38965 PR plugins/59335
38966 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
38967 added in 4.9.
38968
38969 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
38970
38971 * cfgloop.h (struct loop): Move force_vectorize down.
38972 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
38973 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
38974 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
38975 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
38976 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
38977 * tree-core.h (enum annot_expr_kind): Add new kind values.
38978 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
38979 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
38980 kinds.
38981 * tree.def (ANNOTATE_EXPR): Tweak comment.
38982
38983 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
38984
38985 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
38986 cxa_pure_virtual).
38987
38988 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
38989
38990 * tree.h (TYPE_IDENTIFIER): Declare.
38991 * tree.c (subrange_type_for_debug_p): Use it.
38992 * godump.c (go_format_type): Likewise.
38993 * dwarf2out.c (is_cxx_auto, modified_type_die,
38994 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
38995 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
38996
38997 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
38998
38999 PR lto/60820
39000 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
39001
39002 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
39003
39004 * config/i386/i386.c (examine_argument): Return bool. Return true if
39005 parameter should be passed in memory.
39006 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
39007 (construct_container): Update calls to examine_argument.
39008 (function_arg_advance_64): Ditto.
39009 (return_in_memory_32): Merge with ix86_return_in_memory.
39010 (return_in_memory_64): Ditto.
39011 (return_in_memory_ms_64): Ditto.
39012
39013 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
39014
39015 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
39016 * coverage.c (coverage_compute_profile_id): Handle externally visible
39017 symbols.
39018
39019 2014-04-14 Martin Jambor <mjambor@suse.cz>
39020
39021 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
39022 DECL_DISREGARD_INLINE_LIMITS functions.
39023
39024 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
39025
39026 PR target/60827
39027 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
39028
39029 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
39030
39031 PR target/60827
39032 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
39033 optimize_insn_for_speed_p instead of
39034 optimize_function_for_speed_p.
39035
39036 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
39037
39038 * doc/invoke.texi (free): Document AArch64.
39039
39040 2014-04-14 Richard Biener <rguenther@suse.de>
39041
39042 PR tree-optimization/60042
39043 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
39044 (insert_into_preds_of_block): Do not prevent PHI insertion
39045 for REFERENCE exprs here ...
39046 (eliminate_dom_walker::before_dom_children): ... but prevent
39047 their use here under similar conditions when applied to the
39048 IL after PRE optimizations.
39049
39050 2014-04-14 Richard Biener <rguenther@suse.de>
39051
39052 * passes.def: Move early points-to after early SRA.
39053
39054 2014-04-14 Richard Biener <rguenther@suse.de>
39055
39056 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
39057 check for which sign-changes we allow when forwarding
39058 a converted value into a switch.
39059
39060 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
39061
39062 * stor-layout.c (place_field): Finalize non-constant offset for the
39063 field, if any.
39064
39065 2014-04-14 Richard Biener <rguenther@suse.de>
39066
39067 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
39068 as argument.
39069 (expand_switch_using_bit_tests_p): Likewise.
39070 (process_switch): Compute and pass on speed_p based on the
39071 switch stmt.
39072 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
39073 optimize_bb_for_speed_p.
39074
39075 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
39076
39077 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
39078 * function.h (struct function): Rename has_force_vect_loops into
39079 has_force_vectorize_loops.
39080 * lto-streamer-in.c (input_cfg): Adjust for renaming.
39081 (input_struct_function_base): Likewise.
39082 * lto-streamer-out.c (output_cfg): Likewise.
39083 (output_struct_function_base): Likewise.
39084 * omp-low.c (expand_omp_simd): Likewise.
39085 * tree-cfg.c (move_sese_region_to_fn): Likewise.
39086 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
39087 (version_loop_for_if_conversion): Likewise.
39088 (tree_if_conversion): Likewise.
39089 (main_tree_if_conversion): Likewise.
39090 (gate_tree_if_conversion): Likewise.
39091 * tree-inline.c (copy_loops): Likewise.
39092 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
39093 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
39094 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
39095 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
39096 * tree-vectorizer.c (vectorize_loops): Likewise.
39097 * tree-vectorizer.h (unlimited_cost_model): Likewise.
39098
39099 2014-04-14 Richard Biener <rguenther@suse.de>
39100
39101 PR lto/60720
39102 * lto-streamer-out.c (wrap_refs): New function.
39103 (lto_output): Wrap symbol references in global initializes in
39104 type-preserving MEM_REFs.
39105
39106 2014-04-14 Christian Bruel <christian.bruel@st.com>
39107
39108 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
39109
39110 2014-04-14 Christian Bruel <christian.bruel@st.com>
39111
39112 * config/sh/sh.md (setmemqi): New expand pattern.
39113 * config/sh/sh.h (CLEAR_RATIO): Define.
39114 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
39115 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
39116
39117 2014-04-14 Richard Biener <rguenther@suse.de>
39118
39119 PR middle-end/55022
39120 * fold-const.c (negate_expr_p): Don't negate directional rounding
39121 division.
39122 (fold_negate_expr): Likewise.
39123
39124 2014-04-14 Richard Biener <rguenther@suse.de>
39125
39126 PR tree-optimization/59817
39127 PR tree-optimization/60453
39128 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
39129 recursion to catch all CHRECs in the scalar evolution and restrict
39130 the predicate for the remains appropriately.
39131
39132 2014-04-12 Catherine Moore <clm@codesourcery.com>
39133
39134 * config/mips/constraints.md: Add new register constraint "kb".
39135 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
39136 (*movhi_internal): Likewise.
39137 (*movqi_internal): Likewise.
39138 * config/mips/mips.h (M16_STORE_REGS): New register class.
39139 (REG_CLASS_NAMES): Add M16_STORE_REGS.
39140 (REG_CLASS_CONTENTS): Likewise.
39141 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
39142
39143 2014-04-11 Tobias Burnus <burnus@net-b.de>
39144
39145 PR c/60194
39146 * doc/invoke.texi (-Wformat-signedness): Document it.
39147 (Wformat=2): Mention that this enables -Wformat-signedness.
39148
39149 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
39150
39151 * common/config/epiphany/epiphany-common.c
39152 (epiphany_option_optimization_table): Enable section anchors by
39153 default at -O1 or higher.
39154 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
39155 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
39156 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
39157 carries no extra cost.
39158 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
39159 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
39160 * config/epiphany/predicates.md (memclob_operand): New predicate.
39161 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
39162 Use memclob_operand predicate and X constraint for operand 3.
39163
39164 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
39165
39166 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
39167 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
39168 its operands.
39169
39170 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
39171
39172 PR rtl-optimization/60651
39173 * mode-switching.c (optimize_mode_switching): Make sure to emit
39174 sets of a lower numbered entity before sets of a higher numbered
39175 entity to a mode of the same or lower priority.
39176 When creating a seginfo for a basic block that starts with a code
39177 label, move the insertion point past the code label.
39178 (new_seginfo): Document and enforce requirement that
39179 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
39180 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
39181 * doc/tm.texi: Regenerate.
39182
39183 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
39184
39185 PR target/60811
39186 * config/arc/arc.c (arc_save_restore): Fix assert typo.
39187
39188 2013-04-11 Jakub Jelinek <jakub@redhat.com>
39189
39190 * BASE-VER: Set to 4.10.0.
39191
39192 2014-04-11 Tobias Burnus <burnus@net-b.de>
39193
39194 PR other/59055
39195 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
39196 * doc/gcc.texi (Service): Update description in the @menu
39197 * doc/invoke.texi (Option Summary): Remove misplaced and
39198 duplicated @menu.
39199
39200 2014-04-11 Steve Ellcey <sellcey@mips.com>
39201 Jakub Jelinek <jakub@redhat.com>
39202
39203 PR middle-end/60556
39204 * expr.c (convert_move): Use emit_store_flag_force instead of
39205 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
39206 argument to it.
39207
39208 2014-04-11 Richard Biener <rguenther@suse.de>
39209
39210 PR middle-end/60797
39211 * varasm.c (assemble_alias): Avoid endless error reporting
39212 recursion by setting TREE_ASM_WRITTEN.
39213
39214 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39215
39216 * config/s390/s390.md: Add a splitter for NOT rtx.
39217
39218 2014-04-11 Jakub Jelinek <jakub@redhat.com>
39219
39220 PR rtl-optimization/60663
39221 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
39222
39223 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
39224 Jakub Jelinek <jakub@redhat.com>
39225
39226 PR lto/60567
39227 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
39228 flag from decl_node to node.
39229
39230 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39231
39232 PR debug/60655
39233 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
39234 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
39235 ameliorating the cases where it can be.
39236
39237 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
39238
39239 Revert
39240 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
39241
39242 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39243 (loadsync_<mode>): Change mode.
39244 (load_quadpti, store_quadpti): New.
39245 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
39246 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
39247 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
39248
39249 2014-04-09 Cong Hou <congh@google.com>
39250
39251 PR testsuite/60773
39252 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
39253 documentation.
39254
39255 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
39256
39257 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
39258 instead of vnor to exploit possible fusion opportunity in the
39259 future.
39260 (altivec_expand_vec_perm_const_le): Likewise.
39261
39262 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
39263
39264 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39265 (loadsync_<mode>): Change mode.
39266 (load_quadpti, store_quadpti): New.
39267 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
39268 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
39269
39270 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
39271
39272 PR target/60763
39273 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
39274 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
39275 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
39276
39277 2014-04-08 Richard Biener <rguenther@suse.de>
39278
39279 PR middle-end/60706
39280 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
39281 a 64bit widest int print double-int similar to on HWI64 hosts.
39282
39283 2014-04-08 Richard Biener <rguenther@suse.de>
39284
39285 PR tree-optimization/60785
39286 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
39287 default defs properly.
39288
39289 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
39290
39291 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
39292 (Weffc++): Likewise.
39293
39294 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
39295
39296 * ipa-devirt.c (maybe_record_node): When node is not recorded,
39297 set completep to false rather than true.
39298
39299 2014-04-07 Douglas B Rupp <rupp@adacore.com>
39300
39301 PR target/60504
39302 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
39303 ARM_TARGET2_DWARF_FORMAT.
39304
39305 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
39306
39307 PR target/60609
39308 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
39309 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
39310 ADDR_DIFF_VEC.
39311
39312 2014-04-07 Richard Biener <rguenther@suse.de>
39313
39314 PR tree-optimization/60766
39315 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
39316 (may_eliminate_iv): Convert cand_value_at result to desired type.
39317
39318 2014-04-07 Jason Merrill <jason@redhat.com>
39319
39320 PR c++/60731
39321 * common.opt (-fno-gnu-unique): Add.
39322 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
39323
39324 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39325
39326 * haifa-sched.c: Fix outdated function reference and minor
39327 grammar errors in introductory comment.
39328
39329 2014-04-07 Richard Biener <rguenther@suse.de>
39330
39331 PR middle-end/60750
39332 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
39333 for noreturn calls.
39334 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
39335
39336 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
39337
39338 PR debug/55794
39339 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
39340 size accounting for thunks.
39341 (pa_asm_output_mi_thunk): Use final_start_function() and
39342 final_end_function() to output function start and end directives.
39343
39344 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
39345
39346 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
39347 device specific ISA/ feature information. Remove short_sp and
39348 errata_skip ds. Add avr_device_specific_features enum to have device
39349 specific info.
39350 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
39351 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
39352 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
39353 updated device specific info.
39354 * config/avr/avr-mcus.def: Merge device specific details to
39355 dev_attribute field.
39356 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
39357 errata_skip.
39358 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
39359 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
39360 assembler if RMW isa supported by current device.
39361 * config/avr/genmultilib.awk: Update as device info structure changed.
39362 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
39363
39364 2014-04-04 Cong Hou <congh@google.com>
39365
39366 PR tree-optimization/60656
39367 * tree-vect-stmts.c (supportable_widening_operation):
39368 Fix a bug that elements in a vector with vect_used_by_reduction
39369 property are incorrectly reordered when the operation on it is not
39370 consistant with the one in reduction operation.
39371
39372 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
39373
39374 PR rtl-optimization/60155
39375 * gcse.c (record_set_data): New function.
39376 (single_set_gcse): New function.
39377 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
39378 (hoist_code): Likewise.
39379 (get_pressure_class_and_nregs): Likewise.
39380
39381 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
39382
39383 * explow.c (probe_stack_range): Emit a final optimization blockage.
39384
39385 2014-04-04 Anthony Green <green@moxielogic.com>
39386
39387 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
39388 typos.
39389
39390 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
39391
39392 PR ipa/59626
39393 * lto-cgraph.c (input_overwrite_node): Check that partitioning
39394 flags are set only during streaming.
39395 * ipa.c (process_references, walk_polymorphic_call_targets,
39396 symtab_remove_unreachable_nodes): Drop bodies of always inline
39397 after early inlining.
39398 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
39399
39400 2014-04-04 Jakub Jelinek <jakub@redhat.com>
39401 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39402
39403 PR debug/60655
39404 * dwarf2out.c (const_ok_for_output_1): Reject expressions
39405 containing a NOT.
39406
39407 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39408
39409 PR bootstrap/60743
39410 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
39411 duration.
39412 (cortex_a53_fdivd): Likewise.
39413
39414 2014-04-04 Martin Jambor <mjambor@suse.cz>
39415
39416 PR ipa/60640
39417 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
39418 Adjust all callers.
39419 * cgraph.c (clone_of_p): Also return true if thunks match.
39420 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
39421 cgraph_function_or_thunk_node and an obsolete comment.
39422 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
39423 file.
39424 (build_function_decl_skip_args): Likewise.
39425 (set_new_clone_decl_and_node_flags): New function.
39426 (duplicate_thunk_for_node): Likewise.
39427 (redirect_edge_duplicating_thunks): Likewise.
39428 (cgraph_clone_node): New parameter args_to_skip, pass it to
39429 redirect_edge_duplicating_thunks which is called instead of
39430 cgraph_redirect_edge_callee.
39431 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
39432 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
39433
39434 2014-04-04 Jeff Law <law@redhat.com>
39435
39436 PR target/60657
39437 * config/arm/predicates.md (const_int_I_operand): New predicate.
39438 (const_int_M_operand): Similarly.
39439 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
39440 const_int_operand.
39441 (insv_t2, extv_reg, extzv_t2): Likewise.
39442 (load_multiple_with_writeback): Similarly for const_int_I_operand.
39443 (pop_multiple_with_writeback_and_return): Likewise.
39444 (vfp_pop_multiple_with_writeback): Likewise
39445
39446 2014-04-04 Richard Biener <rguenther@suse.de>
39447
39448 PR ipa/60746
39449 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
39450 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
39451 non-GIMPLE_LABELs.
39452 * gimplify.h (gimple_add_tmp_var_fn): Declare.
39453 * gimplify.c (gimple_add_tmp_var_fn): New function.
39454 * gimple-expr.h (create_tmp_reg_fn): Declare.
39455 * gimple-expr.c (create_tmp_reg_fn): New function.
39456 * gimple-low.c (record_vars_into): Don't change cfun.
39457 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
39458 code generation without cfun.
39459
39460 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
39461
39462 PR bootstrap/60719
39463 * Makefile.in (install-driver): Fix shell scripting.
39464
39465 2014-04-03 Cong Hou <congh@google.com>
39466
39467 PR tree-optimization/60505
39468 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
39469 threshold of number of iterations below which no vectorization
39470 will be done.
39471 * tree-vect-loop.c (new_loop_vec_info):
39472 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
39473 * tree-vect-loop.c (vect_analyze_loop_operations):
39474 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
39475 * tree-vect-loop.c (vect_transform_loop):
39476 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
39477 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
39478 of iterations of the loop and see if we should build the epilogue.
39479
39480 2014-04-03 Richard Biener <rguenther@suse.de>
39481
39482 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
39483 (streamer_tree_cache_create): Adjust.
39484 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
39485 to allow optional nodes array.
39486 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
39487 (streamer_tree_cache_append): Likewise.
39488 (streamer_tree_cache_create): Create nodes array optionally
39489 as specified by parameter.
39490 * lto-streamer-out.c (create_output_block): Avoid maintaining
39491 the node array in the writer cache.
39492 (DFS_write_tree): Remove assertion.
39493 (produce_asm_for_decls): Free the out decl state hash table early.
39494 * lto-streamer-in.c (lto_data_in_create): Adjust for
39495 streamer_tree_cache_create prototype change.
39496
39497 2014-04-03 Richard Biener <rguenther@suse.de>
39498
39499 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
39500 set TREE_CHAIN to NULL_TREE.
39501
39502 2014-04-03 Richard Biener <rguenther@suse.de>
39503
39504 PR tree-optimization/60740
39505 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
39506 over all GIMPLE_COND operands.
39507
39508 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
39509
39510 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
39511 (Weffc++): Remove Scott's numbering, merge lists and reference
39512 Wnon-virtual-dtor.
39513
39514 2014-04-03 Nick Clifton <nickc@redhat.com>
39515
39516 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
39517 properly.
39518
39519 2014-04-03 Martin Jambor <mjambor@suse.cz>
39520
39521 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
39522 mention gcc_unreachable before failing.
39523 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
39524 removed symbols.
39525
39526 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
39527
39528 PR ipa/60659
39529 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
39530 inconsistent code and instead mark the context inconsistent.
39531 (possible_polymorphic_call_targets): For inconsistent contexts
39532 return empty complete list.
39533
39534 2014-04-02 Anthony Green <green@moxielogic.com>
39535
39536 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
39537 (extendqisi2, extendhisi2): Define.
39538 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
39539 (WCHAR_TYPE): Change to unsigned int.
39540
39541 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
39542
39543 PR tree-optimization/60733
39544 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
39545 insertion point for PHI candidates to be the end of the feeding
39546 block for the PHI argument.
39547
39548 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
39549
39550 PR rtl-optimization/60650
39551 * lra-constraints.c (process_alt_operands): Decrease reject for
39552 earlyclobber matching.
39553
39554 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39555
39556 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
39557
39558 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
39559
39560 * config/spu/spu.c (pad_bb): Do not crash when the last
39561 insn is CODE_FOR_blockage.
39562
39563 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
39564
39565 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
39566 lies outside the target mode.
39567
39568 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
39569
39570 PR target/60735
39571 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
39572 software floating point or no floating point registers, do not
39573 allow any type in the FPRs. Eliminate a test for SPE SIMD types
39574 in GPRs that occurs after we tested for GPRs that would never be
39575 true.
39576
39577 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
39578 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
39579 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
39580 specifically allow DDmode, since that does not use the SPE SIMD
39581 instructions.
39582
39583 2014-04-02 Richard Biener <rguenther@suse.de>
39584
39585 PR middle-end/60729
39586 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
39587 MODE_INTs. Properly use negv_optab.
39588 (expand_abs): Likewise.
39589
39590 2014-04-02 Richard Biener <rguenther@suse.de>
39591
39592 PR bootstrap/60719
39593 * Makefile.in (install-driver): Guard extra installs with special
39594 names properly.
39595
39596 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
39597
39598 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
39599 Document vec_vgbbd.
39600
39601 2014-04-01 Richard Henderson <rth@redhat.com>
39602
39603 PR target/60704
39604 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
39605 alternative enabled before register allocation.
39606
39607 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
39608
39609 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
39610 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
39611 typo.
39612 (nios2_large_got_address): Remove unneeded 'sym' parameter.
39613 (nios2_got_address): Update nios2_large_got_address call site.
39614 (nios2_delegitimize_address): New function.
39615 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
39616 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
39617 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
39618
39619 2014-04-01 Martin Husemann <martin@duskware.de>
39620
39621 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
39622 for -mabi=32.
39623
39624 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
39625
39626 PR rtl-optimization/60604
39627 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
39628 check from register_operand.
39629 (register_operand): Redefine in terms of general_operand.
39630 (nonmemory_operand): Use register_operand for the non-constant cases.
39631
39632 2014-04-01 Richard Biener <rguenther@suse.de>
39633
39634 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
39635
39636 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
39637
39638 * doc/invoke.texi (mapp-regs): Clarify.
39639
39640 2014-03-31 Ulrich Drepper <drepper@gmail.com>
39641
39642 * config/i386/avx512fintrin.h (__v32hi): Define type.
39643 (__v64qi): Likewise.
39644 (_mm512_set1_epi8): Define.
39645 (_mm512_set1_epi16): Define.
39646 (_mm512_set4_epi32): Define.
39647 (_mm512_set4_epi64): Define.
39648 (_mm512_set4_pd): Define.
39649 (_mm512_set4_ps): Define.
39650 (_mm512_setr4_epi64): Define.
39651 (_mm512_setr4_epi32): Define.
39652 (_mm512_setr4_pd): Define.
39653 (_mm512_setr4_ps): Define.
39654 (_mm512_setzero_epi32): Define.
39655
39656 2014-03-31 Martin Jambor <mjambor@suse.cz>
39657
39658 PR middle-end/60647
39659 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
39660 callsite_arguments_match_p. Updated all callers. Also check types of
39661 corresponding formal parameters and actual arguments.
39662 (not_all_callers_have_enough_arguments_p) Renamed to
39663 some_callers_have_mismatched_arguments_p.
39664
39665 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
39666
39667 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
39668
39669 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
39670
39671 PR target/60034
39672 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
39673 section anchor.
39674
39675 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
39676
39677 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
39678 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
39679 Split out
39680 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
39681 Use FMAMODE_NOVF512 mode iterator.
39682 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
39683 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
39684 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
39685 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
39686 Split out
39687 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
39688 Use VF_128_256 mode iterator.
39689 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
39690 Ditto.
39691
39692 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
39693
39694 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
39695 static chain if needed.
39696
39697 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
39698
39699 PR target/60697
39700 * lra-constraints.c (index_part_to_reg): New.
39701 (process_address): Use it.
39702
39703 2014-03-27 Jeff Law <law@redhat.com>
39704 Jakub Jelinek <jakub@redhat.com>
39705
39706 PR target/60648
39707 * expr.c (do_tablejump): Use simplify_gen_binary rather than
39708 gen_rtx_{PLUS,MULT} to build up the address expression.
39709
39710 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
39711 creating non-canonical RTL.
39712
39713 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
39714
39715 PR ipa/60243
39716 * ipa-inline.c (want_inline_small_function_p): Short circuit large
39717 functions; reorganize to make cheap checks first.
39718 (inline_small_functions): Do not estimate growth when dumping;
39719 it is expensive.
39720 * ipa-inline.h (inline_summary): Add min_size.
39721 (growth_likely_positive): New function.
39722 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
39723 (set_cond_stmt_execution_predicate): Cleanup.
39724 (estimate_edge_size_and_time): Compute min_size.
39725 (estimate_calls_size_and_time): Likewise.
39726 (estimate_node_size_and_time): Likewise.
39727 (inline_update_overall_summary): Update min_size.
39728 (do_estimate_edge_time): Likewise.
39729 (do_estimate_edge_size): Update.
39730 (do_estimate_edge_hints): Update.
39731 (growth_likely_positive): New function.
39732
39733 2014-03-28 Jakub Jelinek <jakub@redhat.com>
39734
39735 PR target/60693
39736 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
39737 also if addr has VOIDmode.
39738
39739 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39740
39741 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
39742 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
39743 Declare extern.
39744 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
39745 instructions as well as AdvancedSIMD loads.
39746
39747 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39748
39749 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
39750 Use crypto_aese type.
39751 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
39752 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
39753 crypto_aese, crypto_aesmc. Move to types.md.
39754 * config/arm/types.md (crypto_aes): Split into crypto_aese,
39755 crypto_aesmc.
39756 * config/arm/iterators.md (crypto_type): Likewise.
39757
39758 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
39759
39760 * cgraph.c: Include expr.h and tree-dfa.h.
39761 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
39762 remove LHS.
39763
39764 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
39765
39766 PR target/60675
39767 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
39768 regs from checking multi-reg pseudos.
39769
39770 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39771
39772 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
39773
39774 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
39775
39776 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
39777 if it would clobber the stack pointer, even temporarily.
39778
39779 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
39780
39781 * mode-switching.c: Make small adjustments to the top comment.
39782
39783 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
39784
39785 * config/rs6000/constraints.md (wD constraint): New constraint to
39786 match the constant integer to get the top DImode/DFmode out of a
39787 vector in a VSX register.
39788
39789 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
39790 match the constant integer to get the top DImode/DFmode out of a
39791 vector in a VSX register.
39792
39793 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
39794 for ISA 2.07.
39795
39796 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
39797 vbpermq builtins.
39798
39799 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
39800 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
39801
39802 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
39803 Optimize vec_extract of 64-bit values, where the value being
39804 extracted is in the top word, where we can use scalar
39805 instructions. Add direct move and store support. Combine the big
39806 endian/little endian vector select load support into a single insn.
39807 (vsx_extract_<mode>_internal1): Likewise.
39808 (vsx_extract_<mode>_internal2): Likewise.
39809 (vsx_extract_<mode>_load): Likewise.
39810 (vsx_extract_<mode>_store): Likewise.
39811 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
39812 combined into vsx_extract_<mode>_load.
39813 (vsx_extract_<mode>_one_le): Likewise.
39814
39815 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
39816 define the top 64-bit vector element.
39817
39818 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
39819 constraint.
39820
39821 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
39822 Document vec_vbpermq builtin.
39823
39824 PR target/60672
39825 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
39826 enable use of xxsldwi and xxpermdi builtin functions.
39827 (vec_xxpermdi): Likewise.
39828
39829 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
39830 Document use of vec_xxsldwi and vec_xxpermdi builtins.
39831
39832 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
39833
39834 PR rtl-optimization/60650
39835 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
39836 first_p. Use it.
39837 (find_spills_for): New.
39838 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
39839 Spill all pseudos on the second iteration.
39840
39841 2014-03-27 Marek Polacek <polacek@redhat.com>
39842
39843 PR c/50347
39844 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
39845 types.
39846
39847 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39848
39849 * config/s390/s390.c (s390_can_use_return_insn): Check for
39850 call-saved FPRs on 31 bit.
39851
39852 2014-03-27 Jakub Jelinek <jakub@redhat.com>
39853
39854 PR middle-end/60682
39855 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
39856 if they need regimplification, just drop them instead of
39857 calling gimple_regimplify_operands on them.
39858
39859 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
39860
39861 PR target/60580
39862 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
39863 (aarch64_frame_pointer_required): Adjust logic.
39864 (aarch64_can_eliminate): Adjust logic.
39865 (aarch64_override_options_after_change): Adjust logic.
39866
39867 2014-03-27 Dehao Chen <dehao@google.com>
39868
39869 * ipa-inline.c (early_inliner): Update node's inline info.
39870
39871 2014-03-26 Dehao Chen <dehao@google.com>
39872
39873 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
39874 compiler inserted conditional jumps for NAN float check.
39875
39876 2014-03-26 Jakub Jelinek <jakub@redhat.com>
39877
39878 * ubsan.h (ubsan_create_data): Change second argument's type
39879 to const location_t *.
39880 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
39881 _("<unknown>").
39882 (ubsan_create_data): Change second argument to const location_t *PLOC.
39883 Create Loc field whenever PLOC is non-NULL.
39884 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
39885 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
39886 callers.
39887
39888 PR other/59545
39889 * real.c (real_to_integer2): Change type of low to UHWI.
39890
39891 2014-03-26 Tobias Burnus <burnus@net-b.de>
39892
39893 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
39894 (CILK_SELF_SPECS): New define.
39895 (driver_self_specs): Use it.
39896
39897 2014-03-26 Richard Biener <rguenther@suse.de>
39898
39899 * tree-pretty-print.c (percent_K_format): Implement special
39900 case for LTO and its stripped down BLOCK tree.
39901
39902 2014-03-26 Jakub Jelinek <jakub@redhat.com>
39903
39904 PR sanitizer/60636
39905 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
39906
39907 * tree-vrp.c (simplify_internal_call_using_ranges): If only
39908 one range is range_int_cst_p, but not both, at least optimize
39909 addition/subtraction of 0 and multiplication by 0 or 1.
39910 * gimple-fold.c (gimple_fold_call): Fold
39911 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
39912 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
39913 INTEGER_CSTs, try to fold at least x * 0 and y - y.
39914
39915 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
39916
39917 PR rtl-optimization/60452
39918 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
39919 <case REG>: Return 1 for invalid offsets from the frame pointer.
39920
39921 2014-03-26 Marek Polacek <polacek@redhat.com>
39922
39923 PR c/37428
39924 * doc/extend.texi (C Extensions): Mention variable-length arrays in
39925 a structure/union.
39926
39927 2014-03-26 Marek Polacek <polacek@redhat.com>
39928
39929 PR c/39525
39930 * doc/extend.texi (Designated Inits): Describe what happens to omitted
39931 field members.
39932
39933 2014-03-26 Marek Polacek <polacek@redhat.com>
39934
39935 PR other/59545
39936 * ira-color.c (update_conflict_hard_regno_costs): Perform the
39937 multiplication in unsigned type.
39938
39939 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
39940
39941 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
39942
39943 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
39944
39945 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
39946
39947 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
39948
39949 PR ipa/60315
39950 * cif-code.def (UNREACHABLE) New code.
39951 * ipa-inline.c (inline_small_functions): Skip edges to
39952 __builtlin_unreachable.
39953 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
39954 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
39955 predicate to __bulitin_unreachable.
39956 (set_cond_stmt_execution_predicate): Fix issue when
39957 invert_tree_comparison returns ERROR_MARK.
39958 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
39959 propagate to inline clones.
39960 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
39961 to unreachable.
39962 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
39963 * cgraphclones.c (cgraph_clone_node): If call destination is already
39964 ureachable, do not redirect it back.
39965 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
39966 unreachable.
39967
39968 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
39969
39970 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
39971 Do not modify inline clones.
39972
39973 2014-03-25 Jakub Jelinek <jakub@redhat.com>
39974
39975 * config/i386/i386.md (general_sext_operand): New mode attr.
39976 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
39977 don't generate (sign_extend (const_int)).
39978 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
39979 operands[2]. Use We constraint instead of <i> and
39980 <general_sext_operand> predicate instead of <general_operand>.
39981 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
39982 * config/i386/constraints.md (We): New constraint.
39983 * config/i386/predicates.md (x86_64_sext_operand,
39984 sext_operand): New predicates.
39985
39986 2014-03-25 Martin Jambor <mjambor@suse.cz>
39987
39988 PR ipa/60600
39989 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
39990 inconsistent devirtualizations to __builtin_unreachable.
39991
39992 2014-03-25 Marek Polacek <polacek@redhat.com>
39993
39994 PR c/35449
39995 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
39996
39997 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
39998
39999 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
40000 order of elements for big-endian.
40001
40002 2014-03-25 Richard Biener <rguenther@suse.de>
40003
40004 PR middle-end/60635
40005 * gimplify-me.c (gimple_regimplify_operands): Update the
40006 re-gimplifed stmt.
40007
40008 2014-03-25 Martin Jambor <mjambor@suse.cz>
40009
40010 PR ipa/59176
40011 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
40012 (lto_output_varpool_node): Likewise.
40013 (input_overwrite_node): Likewise.
40014 (input_varpool_node): Likewise.
40015
40016 2014-03-25 Richard Biener <rguenther@suse.de>
40017
40018 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
40019 (run_gcc): Likewise.
40020
40021 2014-03-25 Jakub Jelinek <jakub@redhat.com>
40022
40023 * combine.c (simplify_compare_const): Add MODE argument.
40024 Handle mode_width 0 as very large mode_width.
40025 (try_combine, simplify_comparison): Adjust callers.
40026
40027 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
40028 type to avoid signed integer overflow.
40029 * explow.c (plus_constant): Likewise.
40030
40031 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
40032
40033 * doc/generic.texi: Correct typos.
40034
40035 2014-03-24 Tobias Burnus <burnus@net-b.de>
40036
40037 * doc/invoke.texi (-flto): Expand section about
40038 using static libraries with LTO.
40039
40040 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
40041
40042 PR rtl-optimization/60501
40043 * optabs.def (addptr3_optab): New optab.
40044 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
40045 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
40046 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
40047
40048 * lra.c (emit_add3_insn): Use the addptr pattern if available.
40049
40050 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
40051
40052 2014-03-24 Ulrich Drepper <drepper@gmail.com>
40053
40054 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
40055 _mm512_set1_pd.
40056
40057 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
40058 (_mm256_undefined_ps): Define.
40059 (_mm256_undefined_pd): Define.
40060 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
40061 (_mm_undefined_pd): Define.
40062 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
40063 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
40064 (_mm512_undefined_ps): Define.
40065 (_mm512_undefined_pd): Define.
40066 Use _mm*_undefined_*.
40067 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
40068
40069 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
40070
40071 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
40072 (lshr_simd): DI mode added.
40073 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
40074 (aarch64_ushr_simddi): Likewise.
40075 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
40076 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
40077 (vshrd_n_u64): Likewise.
40078
40079 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40080
40081 * Makefile.in (s-macro_list): Depend on cc1.
40082
40083 2014-03-23 Teresa Johnson <tejohnson@google.com>
40084
40085 * ipa-utils.c (ipa_print_order): Use specified dump file.
40086
40087 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
40088
40089 PR rtl-optimization/60601
40090 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
40091
40092 * gcc.c (eval_spec_function): Initialize save_growing_value.
40093
40094 2014-03-22 Jakub Jelinek <jakub@redhat.com>
40095
40096 PR sanitizer/60613
40097 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
40098 code == MINUS_EXPR, never swap op0 with op1.
40099
40100 * toplev.c (init_local_tick): Avoid signed integer multiplication
40101 overflow.
40102 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
40103 shift by first operand's bitsize.
40104
40105 2014-03-21 Jakub Jelinek <jakub@redhat.com>
40106
40107 PR target/60610
40108 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
40109 redefine to 1 or 0.
40110 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
40111 TARGET_ISA_64BIT_P(x).
40112
40113 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40114
40115 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
40116 pattern for vector nor instead of subtract from splat(-1).
40117 (altivec_expand_vec_perm_const_le): Likewise.
40118
40119 2014-03-21 Richard Henderson <rth@twiddle.net>
40120
40121 PR target/60598
40122 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
40123 related insns after epilogue_completed.
40124
40125 2014-03-21 Martin Jambor <mjambor@suse.cz>
40126
40127 PR ipa/59176
40128 * cgraph.h (symtab_node): New flag body_removed.
40129 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
40130 when removing bodies.
40131 * symtab.c (dump_symtab_base): Dump body_removed flag.
40132 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
40133 had their bodies removed.
40134
40135 2014-03-21 Martin Jambor <mjambor@suse.cz>
40136
40137 PR ipa/60419
40138 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
40139 in the border.
40140
40141 2014-03-21 Richard Biener <rguenther@suse.de>
40142
40143 PR tree-optimization/60577
40144 * tree-core.h (struct tree_base): Document nothrow_flag use
40145 in DECL_NONALIASED.
40146 * tree.h (DECL_NONALIASED): New.
40147 (may_be_aliased): Adjust.
40148 * coverage.c (build_var): Set DECL_NONALIASED.
40149
40150 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
40151
40152 * expr.c (expand_expr_real_1): Remove outdated comment.
40153
40154 2014-03-20 Jakub Jelinek <jakub@redhat.com>
40155
40156 PR middle-end/60597
40157 * ira.c (adjust_cleared_regs): Call copy_rtx on
40158 *reg_equiv[REGNO (loc)].src_p before passing it to
40159 simplify_replace_fn_rtx.
40160
40161 PR target/60568
40162 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
40163 into CONST, put pic register as first operand of PLUS. Use
40164 gen_const_mem for both 32-bit and 64-bit PIC got loads.
40165
40166 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
40167
40168 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
40169
40170 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
40171
40172 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
40173 around for store forwarding issue in the FPU on the UT699.
40174 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
40175 loads and operations if -mfix-ut699 is specified.
40176 (divtf3_hq): Tweak attribute.
40177 (sqrttf2_hq): Likewise.
40178
40179 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
40180
40181 * calls.c (store_one_arg): Remove incorrect const qualification on the
40182 type of the temporary.
40183 * cfgexpand.c (expand_return): Likewise.
40184 * expr.c (expand_constructor): Likewise.
40185 (expand_expr_real_1): Likewise.
40186
40187 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
40188
40189 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
40190 of parts.
40191
40192 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
40193
40194 PR target/60039
40195 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
40196
40197 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
40198
40199 * config/arm/aarch-common-protos.h
40200 (alu_cost_table): Fix spelling of "extend".
40201 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
40202
40203 2014-03-19 Richard Biener <rguenther@suse.de>
40204
40205 PR middle-end/60553
40206 * tree-core.h (tree_type_common): Re-order pointer members
40207 to reduce recursion depth during GC walks.
40208
40209 2014-03-19 Marek Polacek <polacek@redhat.com>
40210
40211 PR sanitizer/60569
40212 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
40213 before accessing it.
40214
40215 2014-03-19 Richard Biener <rguenther@suse.de>
40216
40217 PR lto/59543
40218 * lto-streamer-in.c (input_function): In WPA stage do not drop
40219 debug stmts.
40220
40221 2014-03-19 Jakub Jelinek <jakub@redhat.com>
40222
40223 PR tree-optimization/60559
40224 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
40225 with build_zero_cst assignment.
40226
40227 2014-03-18 Kai Tietz <ktietz@redhat.com>
40228
40229 PR rtl-optimization/56356
40230 * sdbout.c (sdbout_parms): Verify that parms'
40231 incoming argument is valid.
40232 (sdbout_reg_parms): Likewise.
40233
40234 2014-03-18 Richard Henderson <rth@redhat.com>
40235
40236 PR target/60562
40237 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
40238 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
40239 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
40240
40241 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
40242
40243 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
40244 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
40245 Italicize plugin event names in description. Explain that
40246 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
40247 Remind that no GCC functions should be called after PLUGIN_FINISH.
40248 Explain what pragmas with expansion are.
40249
40250 2014-03-18 Martin Liska <mliska@suse.cz>
40251
40252 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
40253 gimple call statement is update.
40254 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
40255 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
40256
40257 2014-03-18 Jakub Jelinek <jakub@redhat.com>
40258
40259 PR sanitizer/60557
40260 * ubsan.c (ubsan_instrument_unreachable): Call
40261 initialize_sanitizer_builtins.
40262 (ubsan_pass): Likewise.
40263
40264 PR sanitizer/60535
40265 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
40266 varpool_finalize_decl instead of rest_of_decl_compilation.
40267
40268 2014-03-18 Richard Biener <rguenther@suse.de>
40269
40270 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
40271 by using bitmap_and_compl instead of bitmap_and_compl_into.
40272 (df_rd_transfer_function): Likewise.
40273
40274 2014-03-18 Richard Biener <rguenther@suse.de>
40275
40276 * doc/lto.texi (fresolution): Fix typo.
40277
40278 2014-03-18 Richard Biener <rguenther@suse.de>
40279
40280 * doc/invoke.texi (flto): Update for changes in 4.9.
40281
40282 2014-03-18 Richard Biener <rguenther@suse.de>
40283
40284 * doc/loop.texi: Remove section on the removed lambda framework.
40285 Update loop docs with recent changes in preserving loop structure.
40286
40287 2014-03-18 Richard Biener <rguenther@suse.de>
40288
40289 * doc/lto.texi (-fresolution): Document.
40290
40291 2014-03-18 Richard Biener <rguenther@suse.de>
40292
40293 * doc/contrib.texi: Adjust my name.
40294
40295 2014-03-18 Jakub Jelinek <jakub@redhat.com>
40296
40297 PR ipa/58721
40298 * internal-fn.c: Include diagnostic-core.h.
40299 (expand_BUILTIN_EXPECT): New function.
40300 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
40301 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
40302 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
40303 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
40304 IFN_BUILTIN_EXPECT.
40305 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
40306 Revert 3 argument __builtin_expect code.
40307 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
40308 * gimple-fold.c (gimple_fold_call): Likewise.
40309 * tree.h (fold_builtin_expect): New prototype.
40310 * builtins.c (build_builtin_expect_predicate): Add predictor
40311 argument, if non-NULL, create 3 argument __builtin_expect.
40312 (fold_builtin_expect): No longer static. Add ARG2 argument,
40313 pass it through to build_builtin_expect_predicate.
40314 (fold_builtin_2): Adjust caller.
40315 (fold_builtin_3): Handle BUILT_IN_EXPECT.
40316 * internal-fn.def (BUILTIN_EXPECT): New.
40317
40318 2014-03-18 Tobias Burnus <burnus@net-b.de>
40319
40320 PR ipa/58721
40321 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
40322 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
40323 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
40324
40325 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
40326
40327 PR ipa/58721
40328 * predict.c (combine_predictions_for_bb): Fix up formatting.
40329 (expr_expected_value_1, expr_expected_value): Add predictor argument,
40330 fill what it points to if non-NULL.
40331 (tree_predict_by_opcode): Adjust caller, use the predictor.
40332 * predict.def (PRED_COMPARE_AND_SWAP): Add.
40333
40334 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
40335
40336 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
40337 proper constant for the store mode.
40338
40339 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
40340
40341 * symtab.c (change_decl_assembler_name): Fix transparent alias
40342 chain construction.
40343
40344 2014-03-16 Renlin Li <Renlin.Li@arm.com>
40345
40346 * config/aarch64/aarch64.c: Correct the comments about the
40347 aarch64 stack layout.
40348
40349 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
40350
40351 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
40352 check for GF_OMP_FOR_KIND_FOR.
40353
40354 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
40355
40356 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
40357 ymm and zmm register names.
40358
40359 2014-03-17 Jakub Jelinek <jakub@redhat.com>
40360
40361 PR target/60516
40362 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
40363 note creation for the 2010-08-31 changes.
40364
40365 2014-03-17 Marek Polacek <polacek@redhat.com>
40366
40367 PR middle-end/60534
40368 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
40369 as -fno-tree-loop-vectorize.
40370 (expand_omp_simd): Likewise.
40371
40372 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
40373
40374 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
40375 (eligible_for_call_delay): New prototype.
40376 * config/sparc/sparc.c (tls_call_delay): Rename into...
40377 (eligible_for_call_delay): ...this. Return false if the instruction
40378 cannot be put in the delay slot of a branch.
40379 (eligible_for_restore_insn): Simplify.
40380 (eligible_for_return_delay): Return false if the instruction cannot be
40381 put in the delay slot of a branch and simplify.
40382 (eligible_for_sibcall_delay): Return false if the instruction cannot be
40383 put in the delay slot of a branch.
40384 * config/sparc/sparc.md (fix_ut699): New attribute.
40385 (tls_call_delay): Delete.
40386 (in_call_delay): Reimplement.
40387 (eligible_for_sibcall_delay): Rename into...
40388 (in_sibcall_delay): ...this.
40389 (eligible_for_return_delay): Rename into...
40390 (in_return_delay): ...this.
40391 (in_branch_delay): Reimplement.
40392 (in_uncond_branch_delay): Delete.
40393 (in_annul_branch_delay): Delete.
40394
40395 2014-03-14 Richard Henderson <rth@redhat.com>
40396
40397 PR target/60525
40398 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
40399 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
40400 (*floathi<X87MODEF>2_i387_with_temp): Remove.
40401 (floathi splitters): Remove.
40402 (float<SWI48x>xf2): New pattern.
40403 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
40404 code that tried to handle DImode for 32-bit, but which was excluded
40405 by the pattern's condition. Drop allocation of stack temporary.
40406 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
40407 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
40408 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
40409 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
40410 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
40411 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
40412 (*float<SWI48><MODEF>2_sse_interunit): Remove.
40413 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
40414 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
40415 (*float<SWI48x><X87MODEF>2_i387): Remove.
40416 (all float _with_temp splitters): Remove.
40417 (*float<SWI48x><MODEF>2_i387): New pattern.
40418 (*float<SWI48><MODEF>2_sse): New pattern.
40419 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
40420 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
40421
40422 2014-03-14 Jakub Jelinek <jakub@redhat.com>
40423 Marek Polacek <polacek@redhat.com>
40424
40425 PR middle-end/60484
40426 * common.opt (dump_base_name_prefixed): New Variable.
40427 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
40428 if x_dump_base_name_prefixed is already set, set it at the end.
40429
40430 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
40431
40432 PR rtl-optimization/60508
40433 * lra-constraints.c (get_reload_reg): Add new parameter
40434 in_subreg_p.
40435 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
40436 Pass the new parameter values.
40437
40438 2014-03-14 Richard Biener <rguenther@suse.de>
40439
40440 * common.opt: Revert unintented changes from r205065.
40441 * opts.c: Likewise.
40442
40443 2014-03-14 Richard Biener <rguenther@suse.de>
40444
40445 PR middle-end/60518
40446 * cfghooks.c (split_block): Properly adjust all loops the
40447 block was a latch of.
40448
40449 2014-03-14 Martin Jambor <mjambor@suse.cz>
40450
40451 PR lto/60461
40452 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
40453 and simplify it.
40454
40455 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
40456
40457 PR target/59396
40458 * config/avr/avr.c (avr_set_current_function): Pass function name
40459 through default_strip_name_encoding before sanity checking instead
40460 of skipping the first char of the assembler name.
40461
40462 2014-03-13 Richard Henderson <rth@redhat.com>
40463
40464 PR debug/60438
40465 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
40466 (ix86_force_to_memory, ix86_free_from_memory): Remove.
40467 * config/i386/i386-protos.h: Likewise.
40468 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
40469 in the expander instead of a splitter.
40470 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
40471 any possibility of requiring a memory.
40472 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
40473 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
40474 (fp branch splitters): Update for ix86_split_fp_branch.
40475 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
40476 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
40477 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
40478 (*fop_<MODEF>_2_i387): Remove f/r alternative.
40479 (*fop_<MODEF>_3_i387): Likewise.
40480 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
40481 (splitters for the fop_* register patterns): Remove.
40482 (fscalexf4_i387): Rename from *fscalexf4_i387.
40483 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
40484
40485 2014-03-13 Jakub Jelinek <jakub@redhat.com>
40486
40487 PR tree-optimization/59779
40488 * tree-dfa.c (get_ref_base_and_extent): Use double_int
40489 type for bitsize and maxsize instead of HOST_WIDE_INT.
40490
40491 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
40492
40493 PR rtl-optimization/57320
40494 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
40495 the CFG after thread_prologue_and_epilogue_insns.
40496
40497 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
40498
40499 PR rtl-optimization/57189
40500 * lra-constraints.c (process_alt_operands): Disfavor spilling
40501 vector pseudos.
40502
40503 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
40504
40505 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
40506
40507 2014-03-13 Jakub Jelinek <jakub@redhat.com>
40508
40509 PR tree-optimization/59025
40510 PR middle-end/60418
40511 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
40512 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
40513
40514 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
40515
40516 PR target/60486
40517 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
40518 calls of avr_out_plus_1.
40519
40520 2014-03-13 Bin Cheng <bin.cheng@arm.com>
40521
40522 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
40523 BB's single pred and update the father loop's latch info later.
40524
40525 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
40526
40527 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
40528 (VEC_M): Likewise.
40529 (VEC_N): Likewise.
40530 (VEC_R): Likewise.
40531 (VEC_base): Likewise.
40532 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
40533 registers, we need to swap double words in little endian mode.
40534
40535 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
40536 to be a container mode for 128-bit integer operations added in ISA
40537 2.07. Unlike TImode and PTImode, the preferred register set is
40538 the Altivec/VMX registers for the 128-bit operations.
40539
40540 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
40541 declarations.
40542 (rs6000_split_128bit_ok_p): Likewise.
40543
40544 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
40545 macros for creating ISA 2.07 normal and overloaded builtin
40546 functions with 3 arguments.
40547 (BU_P8V_OVERLOAD_3): Likewise.
40548 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
40549 for use as overloaded functions.
40550 (VPERM_1TI_UNS): Likewise.
40551 (VSEL_1TI): Likewise.
40552 (VSEL_1TI_UNS): Likewise.
40553 (ST_INTERNAL_1ti): Likewise.
40554 (LD_INTERNAL_1ti): Likewise.
40555 (XXSEL_1TI): Likewise.
40556 (XXSEL_1TI_UNS): Likewise.
40557 (VPERM_1TI): Likewise.
40558 (VPERM_1TI_UNS): Likewise.
40559 (XXPERMDI_1TI): Likewise.
40560 (SET_1TI): Likewise.
40561 (LXVD2X_V1TI): Likewise.
40562 (STXVD2X_V1TI): Likewise.
40563 (VEC_INIT_V1TI): Likewise.
40564 (VEC_SET_V1TI): Likewise.
40565 (VEC_EXT_V1TI): Likewise.
40566 (EQV_V1TI): Likewise.
40567 (NAND_V1TI): Likewise.
40568 (ORC_V1TI): Likewise.
40569 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
40570 added in ISA 2.07. Add both normal 'altivec' builtins, and the
40571 overloaded builtin.
40572 (VADDUQM): Likewise.
40573 (VSUBCUQ): Likewise.
40574 (VADDEUQM): Likewise.
40575 (VADDECUQ): Likewise.
40576 (VSUBEUQM): Likewise.
40577 (VSUBECUQ): Likewise.
40578
40579 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
40580 __int128_t and __uint128_t types.
40581 (__uint128_type): Likewise.
40582 (altivec_categorize_keyword): Add support for vector __int128_t,
40583 vector __uint128_t, vector __int128, and vector unsigned __int128
40584 as a container type for TImode operations that need to be done in
40585 VSX/Altivec registers.
40586 (rs6000_macro_to_expand): Likewise.
40587 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
40588 to support 128-bit integer instructions vaddcuq, vadduqm,
40589 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
40590 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
40591
40592 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
40593 for V1TImode, and set up preferences to use VSX/Altivec registers.
40594 Setup VSX reload handlers.
40595 (rs6000_debug_reg_global): Likewise.
40596 (rs6000_init_hard_regno_mode_ok): Likewise.
40597 (rs6000_preferred_simd_mode): Likewise.
40598 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
40599 (easy_altivec_constant): Likewise.
40600 (output_vec_const_move): Likewise.
40601 (rs6000_expand_vector_set): Convert V1TImode set and extract to
40602 simple move.
40603 (rs6000_expand_vector_extract): Likewise.
40604 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
40605 addressing.
40606 (rs6000_const_vec): Add support for V1TImode.
40607 (rs6000_emit_le_vsx_load): Swap double words when loading or
40608 storing TImode/V1TImode.
40609 (rs6000_emit_le_vsx_store): Likewise.
40610 (rs6000_emit_le_vsx_move): Likewise.
40611 (rs6000_emit_move): Add support for V1TImode.
40612 (altivec_expand_ld_builtin): Likewise.
40613 (altivec_expand_st_builtin): Likewise.
40614 (altivec_expand_vec_init_builtin): Likewise.
40615 (altivec_expand_builtin): Likewise.
40616 (rs6000_init_builtins): Add support for V1TImode type. Add
40617 support for ISA 2.07 128-bit integer builtins. Define type names
40618 for the VSX/Altivec vector types.
40619 (altivec_init_builtins): Add support for overloaded vector
40620 functions with V1TImode type.
40621 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
40622 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
40623 external function.
40624 (rs6000_split_128bit_ok_p): Likewise.
40625 (rs6000_handle_altivec_attribute): Create V1TImode from vector
40626 __int128_t and vector __uint128_t.
40627
40628 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
40629 and mode attributes.
40630 (VSX_M): Likewise.
40631 (VSX_M2): Likewise.
40632 (VSm): Likewise.
40633 (VSs): Likewise.
40634 (VSr): Likewise.
40635 (VSv): Likewise.
40636 (VS_scalar): Likewise.
40637 (VS_double): Likewise.
40638 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
40639
40640 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
40641 we support the ISA 2.07 128-bit integer arithmetic instructions.
40642 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
40643 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
40644 and TImode types for use with the builtin functions.
40645 (V1TI_type_node): Likewise.
40646 (unsigned_V1TI_type_node): Likewise.
40647 (intTI_type_internal_node): Likewise.
40648 (uintTI_type_internal_node): Likewise.
40649
40650 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
40651 128-bit builtin functions.
40652 (UNSPEC_VADDEUQM): Likewise.
40653 (UNSPEC_VADDECUQ): Likewise.
40654 (UNSPEC_VSUBCUQ): Likewise.
40655 (UNSPEC_VSUBEUQM): Likewise.
40656 (UNSPEC_VSUBECUQ): Likewise.
40657 (VM): Add V1TImode to vector mode iterators.
40658 (VM2): Likewise.
40659 (VI_unit): Likewise.
40660 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
40661 (altivec_vaddcuq): Likewise.
40662 (altivec_vsubuqm): Likewise.
40663 (altivec_vsubcuq): Likewise.
40664 (altivec_vaddeuqm): Likewise.
40665 (altivec_vaddecuq): Likewise.
40666 (altivec_vsubeuqm): Likewise.
40667 (altivec_vsubecuq): Likewise.
40668
40669 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
40670 mode iterators.
40671 (BOOL_128): Likewise.
40672 (BOOL_REGS_OUTPUT): Likewise.
40673 (BOOL_REGS_OP1): Likewise.
40674 (BOOL_REGS_OP2): Likewise.
40675 (BOOL_REGS_UNARY): Likewise.
40676 (BOOL_REGS_AND_CR0): Likewise.
40677
40678 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
40679 128-bit integer builtin support.
40680 (vec_vadduqm): Likewise.
40681 (vec_vaddecuq): Likewise.
40682 (vec_vaddeuqm): Likewise.
40683 (vec_vsubecuq): Likewise.
40684 (vec_vsubeuqm): Likewise.
40685 (vec_vsubcuq): Likewise.
40686 (vec_vsubuqm): Likewise.
40687
40688 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
40689 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
40690 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
40691 128-bit integer add/subtract to ISA 2.07.
40692
40693 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
40694
40695 * config/arc/arc.c (arc_predicate_delay_insns):
40696 Fix third argument passed to conditionalize_nonjump.
40697
40698 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
40699
40700 * config/aarch64/aarch64-builtins.c
40701 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
40702 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
40703 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
40704 instead of __builtin_lfloor.
40705 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
40706
40707 2014-03-12 Jakub Jelinek <jakub@redhat.com>
40708
40709 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
40710 (tree_ssa_ifcombine_bb_1): New function.
40711 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
40712 is an empty forwarder block to then_bb or vice versa and then_bb
40713 and else_bb are effectively swapped.
40714
40715 2014-03-12 Christian Bruel <christian.bruel@st.com>
40716
40717 PR target/60264
40718 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
40719 REG_CFA_DEF_CFA note.
40720 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
40721 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
40722
40723 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
40724
40725 PR tree-optimization/60454
40726 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
40727
40728 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40729
40730 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
40731 Do not define target_cpu_default2 to generic.
40732 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
40733 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
40734 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
40735
40736 2014-03-12 Jakub Jelinek <jakub@redhat.com>
40737 Marc Glisse <marc.glisse@inria.fr>
40738
40739 PR tree-optimization/60502
40740 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
40741 instead of build_low_bits_mask.
40742
40743 2014-03-12 Jakub Jelinek <jakub@redhat.com>
40744
40745 PR middle-end/60482
40746 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
40747 if there are multiple uses, but op doesn't live on E edge.
40748 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
40749 clobber stmts before __builtin_unreachable.
40750
40751 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
40752
40753 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
40754 hard_frame_pointer_rtx.
40755 * cse.c (cse_insn): Remove volatile check.
40756 * cselib.c (cselib_process_insn): Likewise.
40757 * dse.c (scan_insn): Likewise.
40758
40759 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
40760
40761 * config/arc/arc.c (conditionalize_nonjump): New function,
40762 broken out of ...
40763 (arc_ifcvt): ... this.
40764 (arc_predicate_delay_insns): Use it.
40765
40766 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
40767
40768 * config/arc/predicates.md (extend_operand): During/after reload,
40769 allow const_int_operand.
40770 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
40771 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
40772 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
40773 to "i".
40774 (umulsi3_highpart_i): Likewise.
40775
40776 2014-03-11 Richard Biener <rguenther@suse.de>
40777
40778 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
40779 Add asserts to guard possible wrong-code bugs.
40780
40781 2014-03-11 Richard Biener <rguenther@suse.de>
40782
40783 PR tree-optimization/60429
40784 PR tree-optimization/60485
40785 * tree-ssa-structalias.c (set_union_with_increment): Properly
40786 take into account all fields that overlap the shifted vars.
40787 (do_sd_constraint): Likewise.
40788 (do_ds_constraint): Likewise.
40789 (get_constraint_for_ptr_offset): Likewise.
40790
40791 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
40792
40793 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
40794 (nios2_compute_frame_layout):
40795 Add calculation of cfun->machine->fp_save_offset.
40796 (nios2_expand_prologue): Correct setting of frame pointer register
40797 in prologue.
40798 (nios2_expand_epilogue): Update recovery of stack pointer from
40799 frame pointer accordingly.
40800 (nios2_initial_elimination_offset): Update calculation of offset
40801 for eliminating to HARD_FRAME_POINTER_REGNUM.
40802
40803 2014-03-10 Jakub Jelinek <jakub@redhat.com>
40804
40805 PR ipa/60457
40806 * ipa.c (symtab_remove_unreachable_nodes): Don't call
40807 cgraph_get_create_node on VAR_DECLs.
40808
40809 2014-03-10 Richard Biener <rguenther@suse.de>
40810
40811 PR middle-end/60474
40812 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
40813
40814 2014-03-08 Douglas B Rupp <rupp@gnat.com>
40815
40816 * config/vms/vms.opt (vms_float_format): New variable.
40817
40818 2014-03-08 Tobias Burnus <burnus@net-b.de>
40819
40820 * doc/invoke.texi (-fcilkplus): Update implementation status.
40821
40822 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
40823 Richard Biener <rguenther@suse.de>
40824
40825 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
40826 consistently accross all TUs.
40827 (run_gcc): Enable -fshort-double automatically at link at link-time
40828 and disallow override.
40829
40830 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
40831
40832 PR target/58271
40833 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
40834 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
40835 if they can't be used.
40836
40837 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40838
40839 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
40840 for Solaris 11/x86 ld.
40841 * configure: Regenerate.
40842
40843 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40844
40845 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
40846 (LIB_TLS_SPEC): Save as ld_tls_libs.
40847 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
40848 (HAVE_AS_IX86_TLSLDM): New test.
40849 * configure, config.in: Regenerate.
40850 * config/i386/i386.c (legitimize_tls_address): Fall back to
40851 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
40852 cannot support TLS_MODEL_LOCAL_DYNAMIC.
40853 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
40854 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
40855
40856 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
40857
40858 * common.opt (fira-loop-pressure): Mark as optimization.
40859
40860 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
40861
40862 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
40863 an OpenMP mappable type.
40864
40865 2014-03-06 Matthias Klose <doko@ubuntu.com>
40866
40867 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
40868 MULTILIB_OSDIRNAMES is not defined.
40869
40870 2014-03-06 Jakub Jelinek <jakub@redhat.com>
40871 Meador Inge <meadori@codesourcery.com>
40872
40873 PR target/58595
40874 * config/arm/arm.c (arm_tls_symbol_p): Remove.
40875 (arm_legitimize_address): Call legitimize_tls_address for any
40876 arm_tls_referenced_p expression, handle constant addend. Call it
40877 before testing for !TARGET_ARM.
40878 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
40879
40880 2014-03-06 Richard Biener <rguenther@suse.de>
40881
40882 PR middle-end/60445
40883 PR lto/60424
40884 PR lto/60427
40885 Revert
40886 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
40887
40888 * tree-streamer.c (record_common_node): Assert we don't record
40889 nodes with type double.
40890 (preload_common_node): Skip type double, complex double and double
40891 pointer since it is now frontend dependent due to fshort-double option.
40892
40893 2014-03-06 Richard Biener <rguenther@suse.de>
40894
40895 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
40896 or -fno-lto is specified and the linker has full plugin support.
40897 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
40898 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
40899 * lto-wrapper.c (merge_and_complain): Merge compile-time
40900 optimization levels.
40901 (run_gcc): And pass it through to the link options.
40902
40903 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
40904
40905 PR debug/60381
40906 Revert:
40907 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
40908 PR debug/59992
40909 * cselib.c (remove_useless_values): Skip to avoid quadratic
40910 behavior if the condition moved from...
40911 (cselib_process_insn): ... here holds.
40912
40913 2014-03-05 Jakub Jelinek <jakub@redhat.com>
40914
40915 PR plugins/59335
40916 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
40917 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
40918
40919 PR plugins/59335
40920 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
40921 (TM_H): Add x86-tune.def.
40922
40923 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40924
40925 * config/aarch64/aarch64.c (generic_tunings):
40926 Use cortexa57_extra_costs.
40927
40928 2014-03-05 Jakub Jelinek <jakub@redhat.com>
40929
40930 PR lto/60404
40931 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
40932 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
40933 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
40934 cost for in_lto_p.
40935
40936 2014-03-04 Heiher <r@hev.cc>
40937
40938 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
40939 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
40940
40941 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
40942
40943 * config/i386/predicates.md (const2356_operand): Change to ...
40944 (const2367_operand): ... this.
40945 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
40946 const2367_operand.
40947 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
40948 (*avx512pf_scatterpf<mode>sf): Ditto.
40949 (avx512pf_scatterpf<mode>df): Ditto.
40950 (*avx512pf_scatterpf<mode>df_mask): Ditto.
40951 (*avx512pf_scatterpf<mode>df): Ditto.
40952 * config/i386/i386.c (ix86_expand_builtin): Update
40953 incorrect hint operand error message.
40954
40955 2014-03-04 Richard Biener <rguenther@suse.de>
40956
40957 * lto-section-in.c (lto_get_section_data): Fix const cast.
40958
40959 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
40960
40961 * tree-streamer.c (record_common_node): Assert we don't record
40962 nodes with type double.
40963 (preload_common_node): Skip type double, complex double and double
40964 pointer since it is now frontend dependent due to fshort-double option.
40965
40966 2014-03-04 Richard Biener <rguenther@suse.de>
40967
40968 PR lto/60405
40969 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
40970 (lto_input_toplevel_asms): Likewise.
40971 * lto-section-in.c (lto_get_section_data): Instead do it here
40972 for every section.
40973
40974 2014-03-04 Richard Biener <rguenther@suse.de>
40975
40976 PR tree-optimization/60382
40977 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
40978 dead PHIs a reduction.
40979
40980 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
40981
40982 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
40983 hint value.
40984 (_mm_prefetch): Move out of GCC target("sse") pragma.
40985 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
40986 GCC target("prfchw") pragma.
40987 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
40988 for locality <= 2.
40989 * config/i386/i386.c (ix86_option_override_internal): Enable
40990 -mprfchw with -mprefetchwt1.
40991
40992 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
40993
40994 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
40995 Mark as varying.
40996
40997 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
40998
40999 * opts.h (CL_PCH_IGNORE): Define.
41000 * targhooks.c (option_affects_pch_p):
41001 Return false for options that have CL_PCH_IGNORE set.
41002 * opt-functions.awk: Process PchIgnore.
41003 * doc/options.texi: Document PchIgnore.
41004
41005 * config/arc/arc.opt (misize): Add PchIgnore property.
41006
41007 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41008
41009 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
41010 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
41011 constraint on constants to permit them being loaded into
41012 GENERAL_REGS or BASE_REGS.
41013
41014 2014-03-03 Nick Clifton <nickc@redhat.com>
41015
41016 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
41017 anti-cacnonical alternatives.
41018 (negandhi3_real): New pattern.
41019 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
41020
41021 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
41022
41023 * config/avr/avr-mcus.def: Remove atxmega16x1.
41024 * config/avr/avr-tables.opt: Regenerate.
41025 * config/avr/t-multilib: Regenerate.
41026 * doc/avr-mmcu.texi: Regenerate.
41027
41028 2014-03-03 Tobias Grosser <tobias@grosser.es>
41029 Mircea Namolaru <mircea.namolaru@inria.fr>
41030
41031 PR tree-optimization/58028
41032 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
41033 scalar dimensions.
41034
41035 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
41036
41037 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
41038 not handled by recognizers.
41039
41040 2014-03-03 Jakub Jelinek <jakub@redhat.com>
41041
41042 PR middle-end/60175
41043 * function.c (expand_function_end): Don't emit
41044 clobber_return_register sequence if clobber_after is a BARRIER.
41045 * cfgexpand.c (construct_exit_block): Append instructions before
41046 return_label to prev_bb.
41047
41048 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41049
41050 * config/rs6000/constraints.md: Document reserved use of "wc".
41051
41052 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
41053
41054 PR ipa/60150
41055 * ipa.c (function_and_variable_visibility): When dissolving comdat
41056 group, also set all symbols to local.
41057
41058 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
41059
41060 PR ipa/60306
41061
41062 Revert:
41063 2013-12-14 Jan Hubicka <jh@suse.cz>
41064 PR middle-end/58477
41065 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
41066
41067 2014-03-02 Jon Beniston <jon@beniston.com>
41068
41069 PR bootstrap/48230
41070 PR bootstrap/50927
41071 PR bootstrap/52466
41072 PR target/46898
41073 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
41074 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
41075 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
41076 (simple_return, *simple_return): New patterns
41077 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
41078 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
41079
41080 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
41081
41082 * dwarf2out.c (gen_subprogram_die): Tidy.
41083
41084 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
41085
41086 PR target/60071
41087 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
41088 (*mov_t_msb_neg_negc): ... this new insn.
41089
41090 2014-02-28 Jason Merrill <jason@redhat.com>
41091
41092 PR c++/58678
41093 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
41094 function.
41095
41096 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
41097
41098 PR c++/60314
41099 * dwarf2out.c (decltype_auto_die): New static.
41100 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
41101 (gen_type_die_with_usage): Handle 'decltype(auto)'.
41102 (is_cxx_auto): Likewise.
41103
41104 2014-02-28 Ian Bolton <ian.bolton@arm.com>
41105
41106 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
41107 we are not using general regs only.
41108
41109 2014-02-28 Richard Biener <rguenther@suse.de>
41110
41111 PR target/60280
41112 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
41113 previous fix and only allow to remove trivial pre-headers
41114 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
41115 (remove_forwarder_block): Properly update the latch of a loop.
41116
41117 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
41118
41119 PR debug/59992
41120 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
41121 (cselib_preserved_hash_table): New.
41122 (preserve_constants_and_equivs): Move preserved vals to it.
41123 (cselib_find_slot): Look it up first.
41124 (cselib_init): Initialize it.
41125 (cselib_finish): Release it.
41126 (dump_cselib_table): Dump it.
41127
41128 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
41129
41130 PR debug/59992
41131 * cselib.c (remove_useless_values): Skip to avoid quadratic
41132 behavior if the condition moved from...
41133 (cselib_process_insn): ... here holds.
41134
41135 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
41136
41137 PR debug/57232
41138 * var-tracking.c (vt_initialize): Apply the same condition to
41139 preserve the CFA base value.
41140
41141 2014-02-28 Joey Ye <joey.ye@arm.com>
41142
41143 PR target/PR60169
41144 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
41145 if reload in progress or completed.
41146
41147 2014-02-28 Tobias Burnus <burnus@net-b.de>
41148
41149 PR middle-end/60147
41150 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
41151 NAMELIST_DECL.
41152
41153 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
41154
41155 * doc/tm.texi.in (Condition Code Status): Update documention for
41156 relative locations of cc0-setter and cc0-user.
41157
41158 2014-02-27 Jeff Law <law@redhat.com>
41159
41160 PR rtl-optimization/52714
41161 * combine.c (try_combine): When splitting an unrecognized PARALLEL
41162 into two independent simple sets, if I3 is a jump, ensure the
41163 pattern we place into I3 is a (set (pc) ...).
41164
41165 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
41166 Jeff Law <law@redhat.com>
41167
41168 PR rtl-optimization/49847
41169 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
41170 are in different blocks.
41171 * doc/tm.texi (Condition Code Status): Update documention for
41172 relative locations of cc0-setter and cc0-user.
41173
41174 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
41175
41176 PR target/59222
41177 * lra.c (lra_emit_add): Check SUBREG too.
41178
41179 2014-02-27 Andreas Schwab <schwab@suse.de>
41180
41181 * config/m68k/m68k.c (m68k_option_override): Disable
41182 -flive-range-shrinkage for classic m68k.
41183 (m68k_override_options_after_change): Likewise.
41184
41185 2014-02-27 Marek Polacek <polacek@redhat.com>
41186
41187 PR middle-end/59223
41188 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
41189 -Wmaybe-uninitialized.
41190
41191 2014-02-27 Alan Modra <amodra@gmail.com>
41192
41193 PR target/57936
41194 * reload1.c (emit_input_reload_insns): When reload_override_in,
41195 set old to rl->in_reg when rl->in_reg is a subreg.
41196
41197 2014-02-26 Richard Biener <rguenther@suse.de>
41198
41199 PR bootstrap/60343
41200 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
41201
41202 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
41203
41204 * common/config/i386/predicates.md (const1256_operand): Remove.
41205 (const2356_operand): New.
41206 (const_1_to_2_operand): Remove.
41207 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
41208 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
41209 (*avx512pf_gatherpf<mode>sf): Ditto.
41210 (avx512pf_gatherpf<mode>df): Ditto.
41211 (*avx512pf_gatherpf<mode>df_mask): Ditto.
41212 (*avx512pf_gatherpf<mode>df): Ditto.
41213 (avx512pf_scatterpf<mode>sf): Ditto.
41214 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
41215 (*avx512pf_scatterpf<mode>sf): Ditto.
41216 (avx512pf_scatterpf<mode>df): Ditto.
41217 (*avx512pf_scatterpf<mode>df_mask): Ditto.
41218 (*avx512pf_scatterpf<mode>df): Ditto.
41219 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
41220
41221 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
41222
41223 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
41224 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
41225 (_mm512_mask_testn_epi64_mask): Move to ...
41226 * config/i386/avx512cdintrin.h: Here.
41227 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
41228 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
41229 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
41230 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
41231 TARGET_AVX512F from TARGET_AVX512CD.
41232
41233 2014-02-26 Richard Biener <rguenther@suse.de>
41234
41235 PR ipa/60327
41236 * ipa.c (walk_polymorphic_call_targets): Properly guard
41237 call to inline_update_overall_summary.
41238
41239 2014-02-26 Bin Cheng <bin.cheng@arm.com>
41240
41241 PR target/60280
41242 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
41243 and latches only if requested. Fix latch if it is removed.
41244 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
41245 LOOPS_HAVE_PREHEADERS.
41246
41247 2014-02-25 Andrew Pinski <apinski@cavium.com>
41248
41249 * builtins.c (expand_builtin_thread_pointer): Create a new target
41250 when the target is NULL.
41251
41252 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
41253
41254 PR rtl-optimization/60317
41255 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
41256 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
41257 * lra-assigns.c: Include params.h.
41258 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
41259 other reload pseudos considerations.
41260
41261 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41262
41263 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
41264 to use canonical form for nor<mode>3.
41265
41266 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
41267
41268 PR target/55426
41269 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
41270 conversions.
41271
41272 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
41273
41274 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
41275 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
41276 (ix86_handle_option): Handle OPT_mprefetchwt1.
41277 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
41278 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
41279 PREFETCHWT1 CPUID.
41280 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
41281 OPTION_MASK_ISA_PREFETCHWT1.
41282 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
41283 (PTA_PREFETCHWT1): New.
41284 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
41285 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
41286 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
41287 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
41288 (*prefetch_avx512pf_<mode>_: Change into ...
41289 (*prefetch_prefetchwt1_<mode>: This.
41290 * config/i386/i386.opt (mprefetchwt1): New.
41291 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
41292 (_mm_prefetch): Handle intent to write.
41293 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
41294
41295 2014-02-25 Richard Biener <rguenther@suse.de>
41296
41297 PR middle-end/60291
41298 * emit-rtl.c (mem_attrs_htab): Remove.
41299 (mem_attrs_htab_hash): Likewise.
41300 (mem_attrs_htab_eq): Likewise.
41301 (set_mem_attrs): Always allocate new mem-attrs when something changed.
41302 (init_emit_once): Do not allocate mem_attrs_htab.
41303
41304 2014-02-25 Richard Biener <rguenther@suse.de>
41305
41306 PR lto/60319
41307 * lto-opts.c (lto_write_options): Output non-explicit conservative
41308 -fwrapv, -fno-trapv and -fno-strict-overflow.
41309 * lto-wrapper.c (merge_and_complain): Handle merging those options.
41310 (run_gcc): And pass them through.
41311
41312 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
41313
41314 * sel-sched.c (calculate_new_fences): New parameter ptime.
41315 Calculate it as a maximum over all fence cycles.
41316 (sel_sched_region_2): Adjust the call to calculate_new_fences.
41317 Print the final schedule timing when sched_verbose.
41318
41319 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
41320
41321 PR rtl-optimization/60292
41322 * sel-sched.c (fill_vec_av_set): Do not reset target availability
41323 bit fot the fence instruction.
41324
41325 2014-02-24 Alangi Derick <alangiderick@gmail.com>
41326
41327 * calls.h: Fix typo in comment.
41328
41329 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
41330
41331 * config/pa/pa.c (pa_output_move_double): Don't valididate when
41332 adjusting offsetable addresses.
41333
41334 2014-02-24 Guozhi Wei <carrot@google.com>
41335
41336 * sparseset.h (sparseset_pop): Fix the wrong index.
41337
41338 2014-02-24 Walter Lee <walt@tilera.com>
41339
41340 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
41341 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
41342 triplet.
41343 * common/config/tilegx/tilegx-common.c
41344 (TARGET_DEFAULT_TARGET_FLAGS): Define.
41345 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
41346 (LINK_SPEC): Ditto.
41347 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
41348 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
41349 (tilegx_gimplify_va_arg_expr): Handle big endian.
41350 (tilegx_expand_unaligned_load): Ditto.
41351 (tilegx_expand_unaligned_store): Ditto.
41352 (TARGET_RETURN_IN_MSB): New.
41353 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
41354 (TARGET_ENDIAN_DEFAULT): New.
41355 (TARGET_BIG_ENDIAN): Handle big endian.
41356 (BYTES_BIG_ENDIAN): Ditto.
41357 (WORDS_BIG_ENDIAN): Ditto.
41358 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
41359 (ENDIAN_SPEC): New.
41360 (EXTRA_SPECS): New.
41361 * config/tilegx/tilegx.md (extv): Handle big endian.
41362 (extzv): Ditto.
41363 (insn_st<n>): Ditto.
41364 (insn_st<n>_add<bitsuffix>): Ditto.
41365 (insn_stnt<n>): Ditto.
41366 (insn_stnt<n>_add<bitsuffix>):Ditto.
41367 (vec_interleave_highv8qi): Handle big endian.
41368 (vec_interleave_highv8qi_be): New.
41369 (vec_interleave_highv8qi_le): New.
41370 (insn_v1int_h): Handle big endian.
41371 (vec_interleave_lowv8qi): Handle big endian.
41372 (vec_interleave_lowv8qi_be): New.
41373 (vec_interleave_lowv8qi_le): New.
41374 (insn_v1int_l): Handle big endian.
41375 (vec_interleave_highv4hi): Handle big endian.
41376 (vec_interleave_highv4hi_be): New.
41377 (vec_interleave_highv4hi_le): New.
41378 (insn_v2int_h): Handle big endian.
41379 (vec_interleave_lowv4hi): Handle big endian.
41380 (vec_interleave_lowv4hi_be): New.
41381 (vec_interleave_lowv4hi_le): New.
41382 (insn_v2int_l): Handle big endian.
41383 (vec_interleave_highv2si): Handle big endian.
41384 (vec_interleave_highv2si_be): New.
41385 (vec_interleave_highv2si_le): New.
41386 (insn_v4int_h): Handle big endian.
41387 (vec_interleave_lowv2si): Handle big endian.
41388 (vec_interleave_lowv2si_be): New.
41389 (vec_interleave_lowv2si_le): New.
41390 (insn_v4int_l): Handle big endian.
41391 * config/tilegx/tilegx.opt (mbig-endian): New option.
41392 (mlittle-endian): New option.
41393 * doc/install.texi: Document tilegxbe-linux.
41394 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
41395
41396 2014-02-24 Martin Jambor <mjambor@suse.cz>
41397
41398 PR ipa/60266
41399 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
41400 there are no parameter descriptors.
41401
41402 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
41403
41404 PR rtl-optimization/60268
41405 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
41406 initialization to ...
41407 (sched_rgn_init): ... here.
41408 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
41409
41410 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
41411
41412 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
41413 names.
41414
41415 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
41416
41417 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
41418 definition.
41419
41420 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
41421
41422 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
41423 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
41424
41425 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
41426
41427 * config/microblaze/predicates.md: Add cmp_op predicate.
41428 * config/microblaze/microblaze.md: Add branch_compare instruction
41429 which uses cmp_op predicate and emits cmp insn before branch.
41430 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
41431 to microblaze_expand_conditional_branch and consolidate logic.
41432 (microblaze_expand_conditional_branch): emit branch_compare
41433 insn instead of handling cmp op separate from branch insn.
41434
41435 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41436
41437 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
41438 to permit subregs.
41439
41440 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41441
41442 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
41443 define_insn with define_expand and new define_insn
41444 *altivec_lve<VI_char>x_internal.
41445 (altivec_stve<VI_char>x): Replace define_insn with define_expand
41446 and new define_insn *altivec_stve<VI_char>x_internal.
41447 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
41448 prototype.
41449 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
41450 lve*x built-ins.
41451 (altivec_expand_stvex_be): New function.
41452
41453 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
41454
41455 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
41456 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
41457 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
41458 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
41459
41460 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
41461
41462 PR target/60298
41463 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
41464 instead of emit_move_insn.
41465
41466 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41467
41468 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
41469 vspltw with vsldoi.
41470 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
41471 gen_altivec_vsumsws.
41472
41473 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41474
41475 * config/rs6000/altivec.md (altivec_lvxl): Rename as
41476 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
41477 (altivec_lvxl_<mode>): New define_expand incorporating
41478 -maltivec=be semantics where needed.
41479 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
41480 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
41481 semantics where needed.
41482 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
41483 (altivec_stvx_<mode>): New define_expand incorporating
41484 -maltivec=be semantics where needed.
41485 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
41486 VM2 iterator instead of V4SI.
41487 (altivec_stvxl_<mode>): New define_expand incorporating
41488 -maltivec=be semantics where needed.
41489 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
41490 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
41491 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
41492 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
41493 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
41494 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
41495 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
41496 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
41497 ALTIVEC_BUILTIN_STVXL.
41498 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
41499 (altivec_expand_stvx_be): Likewise.
41500 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
41501 (altivec_expand_lvx_be): Likewise.
41502 (altivec_expand_stvx_be): Likewise.
41503 (altivec_expand_builtin): Add cases for
41504 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
41505 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
41506 (altivec_init_builtins): Add definitions for
41507 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
41508 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
41509
41510 2014-02-21 Catherine Moore <clm@codesourcery.com>
41511
41512 * doc/invoke.texi (mvirt, mno-virt): Document.
41513 * config/mips/mips.opt (mvirt): New option.
41514 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
41515
41516 2014-02-21 Richard Biener <rguenther@suse.de>
41517
41518 PR tree-optimization/60276
41519 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
41520 (STMT_VINFO_MIN_NEG_DIST): New macro.
41521 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
41522 STMT_VINFO_MIN_NEG_DIST.
41523 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
41524 made for negative dependence distances still hold.
41525
41526 2014-02-21 Richard Biener <rguenther@suse.de>
41527
41528 PR middle-end/60291
41529 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
41530 DECL_INITIAL for globals not in the current function context.
41531
41532 2014-02-21 Jakub Jelinek <jakub@redhat.com>
41533
41534 PR tree-optimization/56490
41535 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
41536 * tree-ssa-uninit.c: Include params.h.
41537 (compute_control_dep_chain): Add num_calls argument, return false
41538 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
41539 num_calls to recursive call.
41540 (find_predicates): Change dep_chain into normal array,
41541 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
41542 variable and adjust compute_control_dep_chain caller.
41543 (find_def_preds): Likewise.
41544
41545 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
41546
41547 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
41548 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
41549
41550 2014-02-21 Nick Clifton <nickc@redhat.com>
41551
41552 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
41553 (pushhi1): Likewise.
41554 (popqi1): Add mode to pre_dec.
41555 (pophi1): Likewise.
41556
41557 2014-02-21 Jakub Jelinek <jakub@redhat.com>
41558
41559 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
41560 mode for mask of V8SFmode permutation.
41561
41562 2014-02-20 Richard Henderson <rth@redhat.com>
41563
41564 PR c++/60272
41565 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
41566 a new pseudo for OLDVAL.
41567
41568 2014-02-20 Jakub Jelinek <jakub@redhat.com>
41569
41570 PR target/57896
41571 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
41572 gen_reg_rtx if d->testing_p.
41573 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
41574 if d->testing_p and we will certainly return true.
41575 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
41576 if d->testing_p.
41577
41578 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
41579
41580 * emit-rtl.c (gen_reg_rtx): Assert that
41581 crtl->emit.regno_pointer_align_length is non-zero.
41582
41583 2014-02-20 Richard Henderson <rth@redhat.com>
41584
41585 PR c++/60272
41586 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
41587 on failure the store back into EXPECT.
41588
41589 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
41590 Sandra Loosemore <sandra@codesourcery.com>
41591
41592 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
41593 * config/nios2/nios2.c (nios2_function_profiler): Add
41594 -fPIC (flag_pic == 2) support.
41595 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
41596 (nios2_large_offset_p): New function.
41597 (nios2_unspec_reloc_p): Move up position, update to use
41598 nios2_large_offset_p.
41599 (nios2_unspec_address): Remove function.
41600 (nios2_unspec_offset): New function.
41601 (nios2_large_got_address): New function.
41602 (nios2_got_address): Add large offset support.
41603 (nios2_legitimize_tls_address): Update usage of removed and new
41604 functions.
41605 (nios2_symbol_binds_local_p): New function.
41606 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
41607 (nios2_legitimize_address): Update to use nios2_large_offset_p.
41608 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
41609 (nios2_print_operand): Merge H/L processing, add hiadj/lo
41610 processing for (const (unspec ...)).
41611 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
41612
41613 2014-02-20 Richard Biener <rguenther@suse.de>
41614
41615 * tree-cfg.c (replace_uses_by): Mark altered BBs before
41616 doing the substitution.
41617 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
41618
41619 2014-02-20 Martin Jambor <mjambor@suse.cz>
41620
41621 PR ipa/55260
41622 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
41623 info when checking whether lattices are bottom.
41624
41625 2014-02-20 Richard Biener <rguenther@suse.de>
41626
41627 PR middle-end/60221
41628 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
41629 regions at -O0.
41630
41631 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
41632
41633 PR ipa/58555
41634 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
41635 parameter specifying the scaling.
41636 (inline_call): Update.
41637 (want_inline_recursively): Guard division by zero.
41638 (recursive_inlining): Update.
41639 * ipa-inline.h (clone_inlined_nodes): Update.
41640
41641 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
41642
41643 PR target/60204
41644 * config/i386/i386.c (classify_argument): Pass structures of size
41645 64 bytes or less in register.
41646
41647 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
41648 Kirill Yukhin <kirill.yukhin@intel.com>
41649
41650 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
41651 (_mm_rcp28_round_ss): Ditto.
41652 (_mm_rsqrt28_round_sd): Ditto.
41653 (_mm_rsqrt28_round_ss): Ditto.
41654 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
41655 (_mm_rcp14_round_ss): Ditto.
41656 (_mm_rsqrt14_round_sd): Ditto.
41657 (_mm_rsqrt14_round_ss): Ditto.
41658 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
41659 the first input operand, get rid of match_dup.
41660 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
41661 attribute to sse.
41662 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
41663 Ditto.
41664 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
41665 operand as the first input operand, set type attribute.
41666 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
41667 Set type attribute.
41668 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
41669 operand as the first input operand, set type attribute.
41670
41671 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41672
41673 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
41674 bit of zero.
41675
41676 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
41677
41678 PR target/60207
41679 * config/i386/i386.c (construct_container): Remove TFmode check
41680 for X86_64_INTEGER_CLASS.
41681
41682 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
41683
41684 PR target/59794
41685 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
41686 only when -Wpsabi is enabled.
41687
41688 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
41689
41690 PR target/59799
41691 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
41692 passing arrays in registers are the same as for structs, so remove the
41693 special case for them.
41694
41695 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
41696
41697 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
41698 destination type, extract only the valid bits if the source type is not
41699 integral and has a different mode.
41700
41701 2014-02-19 Richard Biener <rguenther@suse.de>
41702
41703 PR ipa/60243
41704 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
41705 for all calls.
41706
41707 2014-02-19 Richard Biener <rguenther@suse.de>
41708
41709 PR ipa/60243
41710 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
41711 (ipa_modify_call_arguments): Emit an argument load explicitely and
41712 preserve virtual SSA form there and for the replacement call.
41713 Do not update SSA form nor free dominance info.
41714
41715 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
41716
41717 * ipa.c (function_and_variable_visibility): Also clear WEAK
41718 flag when disolving COMDAT_GROUP.
41719
41720 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
41721
41722 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
41723 * ipa-prop.c (ipa_set_jf_known_type): Return early when
41724 not devirtualizing.
41725 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
41726 do more sanity checks.
41727 (detect_type_change): Return true when giving up early.
41728 (compute_complex_assign_jump_func): Fix type parameter of
41729 ipa_set_ancestor_jf.
41730 (compute_complex_ancestor_jump_func): Likewise.
41731 (update_jump_functions_after_inlining): Fix updating of
41732 ancestor function.
41733 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
41734
41735 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
41736
41737 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
41738 inline clones when edge disappears.
41739
41740 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
41741
41742 PR target/60203
41743 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
41744 Split 64-bit moves into 2 patterns. Do not allow the use of
41745 direct move for TDmode in little endian, since the decimal value
41746 has little endian bytes within a word, but the 64-bit pieces are
41747 ordered in a big endian fashion, and normal subreg's of TDmode are
41748 not allowed.
41749 (mov<mode>_64bit_dm): Likewise.
41750 (movtd_64bit_nodm): Likewise.
41751
41752 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
41753
41754 PR tree-optimization/60174
41755 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
41756 statement of an SSA_NAME that occurs in an abnormal PHI node.
41757
41758 2014-02-18 Jakub Jelinek <jakub@redhat.com>
41759
41760 PR sanitizer/60142
41761 * final.c (SEEN_BB): Remove.
41762 (SEEN_NOTE, SEEN_EMITTED): Renumber.
41763 (final_scan_insn): Don't force_source_line on second
41764 NOTE_INSN_BASIC_BLOCK.
41765
41766 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
41767
41768 PR target/60205
41769 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
41770 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
41771 (type_natural_mode): Warn ABI change when %zmm register is not
41772 available for AVX512F vector value passing.
41773
41774 2014-02-18 Kai Tietz <ktietz@redhat.com>
41775
41776 PR target/60193
41777 * config/i386/i386.c (ix86_expand_prologue): Use value in
41778 rax register as displacement when restoring %r10 or %rax.
41779 Fix wrong offset when restoring both registers.
41780
41781 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
41782
41783 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
41784 assertion with conditional return.
41785
41786 2014-02-18 Jakub Jelinek <jakub@redhat.com>
41787 Uros Bizjak <ubizjak@gmail.com>
41788
41789 PR driver/60233
41790 * config/i386/driver-i386.c (host_detect_local_cpu): If
41791 YMM state is not saved by the OS, also clear has_f16c. Move
41792 CPUID 0x80000001 handling before YMM state saving checking.
41793
41794 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
41795
41796 PR rtl-optimization/58960
41797 * haifa-sched.c (alloc_global_sched_pressure_data): New,
41798 factored out from ...
41799 (sched_init): ... here.
41800 (free_global_sched_pressure_data): New, factored out from ...
41801 (sched_finish): ... here.
41802 * sched-int.h (free_global_sched_pressure_data): Declare.
41803 * sched-rgn.c (nr_regions_initial): New static global.
41804 (haifa_find_rgns): Initialize it.
41805 (schedule_region): Disable sched-pressure for the newly
41806 generated regions.
41807
41808 2014-02-17 Richard Biener <rguenther@suse.de>
41809
41810 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
41811 release SSA defs of pattern stmts.
41812
41813 2014-02-17 Richard Biener <rguenther@suse.de>
41814
41815 * tree-inline.c (expand_call_inline): Release the virtual
41816 operand defined by the call we are about to inline.
41817
41818 2014-02-17 Richard Biener <rguenther@suse.de>
41819
41820 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
41821
41822 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
41823 Ilya Tocar <ilya.tocar@intel.com>
41824
41825 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
41826 arguments order in builtin.
41827 (_mm512_permutexvar_epi64): Ditto.
41828 (_mm512_mask_permutexvar_epi64): Ditto
41829 (_mm512_maskz_permutexvar_epi32): Ditto
41830 (_mm512_permutexvar_epi32): Ditto
41831 (_mm512_mask_permutexvar_epi32): Ditto
41832
41833 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41834
41835 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
41836 (p8_vmrgow): Likewise.
41837
41838 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41839
41840 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
41841 endian targets.
41842
41843 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
41844
41845 PR target/60203
41846 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
41847 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
41848 into 64-bit and 32-bit moves. On 64-bit moves, add support for
41849 using direct move instructions on ISA 2.07. Also adjust
41850 instruction length for 64-bit.
41851 (mov<mode>_64bit, TFmode/TDmode): Likewise.
41852 (mov<mode>_32bit, TFmode/TDmode): Likewise.
41853
41854 2014-02-15 Alan Modra <amodra@gmail.com>
41855
41856 PR target/58675
41857 PR target/57935
41858 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
41859 find_replacement on parts of insn rtl that might be reloaded.
41860
41861 2014-02-15 Richard Biener <rguenther@suse.de>
41862
41863 PR tree-optimization/60183
41864 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
41865 (tree_ssa_phiprop): Calculate and free post-dominators.
41866
41867 2014-02-14 Jeff Law <law@redhat.com>
41868
41869 PR rtl-optimization/60131
41870 * ree.c (get_extended_src_reg): New function.
41871 (combine_reaching_defs): Use it rather than assuming location of REG.
41872 (find_and_remove_re): Verify first operand of extension is
41873 a REG before adding the insns to the copy list.
41874
41875 2014-02-14 Roland McGrath <mcgrathr@google.com>
41876
41877 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
41878 * configure: Regenerated.
41879 * config.in: Regenerated.
41880 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
41881 instead of ASM_SHORT.
41882
41883 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
41884 Richard Earnshaw <rearnsha@arm.com>
41885
41886 PR rtl-optimization/59535
41887 * lra-constraints.c (process_alt_operands): Encourage alternative
41888 when unassigned pseudo class is superset of the alternative class.
41889 (inherit_reload_reg): Don't inherit when optimizing for code size.
41890 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
41891 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
41892 modes not less than 4 for Thumb1.
41893
41894 2014-02-14 Kyle McMartin <kyle@redhat.com>
41895
41896 PR pch/60010
41897 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
41898
41899 2014-02-14 Richard Biener <rguenther@suse.de>
41900
41901 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
41902 (get_frame_arg): Drop the assert with langhook types_compatible_p.
41903 Do not strip INDIRECT_REFs.
41904
41905 2014-02-14 Richard Biener <rguenther@suse.de>
41906
41907 PR lto/60179
41908 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
41909 DECL_FUNCTION_SPECIFIC_TARGET.
41910 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
41911 * tree-streamer-out.c (pack_ts_target_option): Remove.
41912 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
41913 (write_ts_function_decl_tree_pointers): Do not stream
41914 DECL_FUNCTION_SPECIFIC_TARGET.
41915 * tree-streamer-in.c (unpack_ts_target_option): Remove.
41916 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
41917 (lto_input_ts_function_decl_tree_pointers): Do not stream
41918 DECL_FUNCTION_SPECIFIC_TARGET.
41919
41920 2014-02-14 Jakub Jelinek <jakub@redhat.com>
41921
41922 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
41923 (get_initial_def_for_induction, vectorizable_induction): Ignore
41924 debug stmts when looking for exit_phi.
41925 (vectorizable_live_operation): Fix up condition.
41926
41927 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
41928
41929 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
41930 nreverse() because it changes the content of original tree list.
41931
41932 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
41933
41934 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
41935 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
41936
41937 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
41938
41939 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
41940 GNU coding standards.
41941
41942 2014-02-13 Jakub Jelinek <jakub@redhat.com>
41943
41944 PR debug/60152
41945 * dwarf2out.c (gen_subprogram_die): Don't call
41946 add_calling_convention_attribute if subr_die is old_die.
41947
41948 2014-02-13 Sharad Singhai <singhai@google.com>
41949
41950 * doc/optinfo.texi: Fix order of nodes.
41951
41952 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
41953
41954 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
41955 operands[2], not operands[3].
41956
41957 2014-02-13 Richard Biener <rguenther@suse.de>
41958
41959 PR bootstrap/59878
41960 * doc/install.texi (ISL): Update recommended version to 0.12.2,
41961 mention the possibility of an in-tree build.
41962 (CLooG): Update recommended version to 0.18.1, mention the
41963 possibility of an in-tree build and clarify that the ISL
41964 bundled with CLooG does not work.
41965
41966 2014-02-13 Jakub Jelinek <jakub@redhat.com>
41967
41968 PR target/43546
41969 * expr.c (compress_float_constant): If x is a hard register,
41970 extend into a pseudo and then move to x.
41971
41972 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
41973
41974 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
41975 caused by bad second argument to warning_at() with -mhotpatch and
41976 nested functions (e.g. with gfortran).
41977
41978 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
41979
41980 * opts.c (option_name): Remove "enabled by default" rider.
41981
41982 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
41983
41984 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
41985
41986 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
41987 Uros Bizjak <ubizjak@gmail.com>
41988
41989 PR target/60151
41990 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
41991 * configure: Regenerated.
41992
41993 2014-02-12 Richard Biener <rguenther@suse.de>
41994
41995 * vec.c (vec_prefix::calculate_allocation): Move as
41996 inline variant to vec.h.
41997 (vec_prefix::calculate_allocation_1): New out-of-line version.
41998 * vec.h (vec_prefix::calculate_allocation_1): Declare.
41999 (vec_prefix::m_has_auto_buf): Rename to ...
42000 (vec_prefix::m_using_auto_storage): ... this.
42001 (vec_prefix::calculate_allocation): Inline the easy cases
42002 and dispatch to calculate_allocation_1 which doesn't need the
42003 prefix address.
42004 (va_heap::reserve): Use gcc_checking_assert.
42005 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
42006 m_using_auto_storage.
42007 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
42008 member and adjust.
42009 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
42010 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
42011 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
42012
42013 2014-02-12 Richard Biener <rguenther@suse.de>
42014
42015 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
42016 when we found a dependence.
42017
42018 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
42019
42020 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
42021 common code...
42022 (maybe_fold_stmt): ... into this new function.
42023 * omp-low.c (lower_omp): Update comment.
42024
42025 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
42026 last use.
42027
42028 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
42029 dereference.
42030
42031 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
42032
42033 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
42034 identifiers in comments.
42035 (cortexa53_extra_costs): Likewise.
42036 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
42037 (cortexa7_extra_costs): Likewise.
42038 (cortexa12_extra_costs): Likewise.
42039 (cortexa15_extra_costs): Likewise.
42040 (v7m_extra_costs): Likewise.
42041
42042 2014-02-12 Richard Biener <rguenther@suse.de>
42043
42044 PR middle-end/60092
42045 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
42046 of posix_memalign being successful.
42047 (lower_stmt): Restrict lowering of posix_memalign to when
42048 -ftree-bit-ccp is enabled.
42049
42050 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
42051
42052 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
42053 arg_loc.
42054 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
42055
42056 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
42057
42058 PR rtl-optimization/60116
42059 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
42060 other_insn once the combination has been validated.
42061
42062 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
42063
42064 PR lto/59468
42065 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
42066 and wrapper.
42067 * ipa-devirt.c: Include demangle.h
42068 (odr_violation_reported): New static variable.
42069 (add_type_duplicate): Update odr_violations.
42070 (maybe_record_node): Add completep parameter; update it.
42071 (record_target_from_binfo): Add COMPLETEP parameter;
42072 update it as needed.
42073 (possible_polymorphic_call_targets_1): Likewise.
42074 (struct polymorphic_call_target_d): Add nonconstruction_targets;
42075 rename FINAL to COMPLETE.
42076 (record_targets_from_bases): Sanity check we found the binfo;
42077 fix COMPLETEP updating.
42078 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
42079 parameter, fix computing of COMPLETEP.
42080 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
42081 at LTO time do demangling.
42082 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
42083 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
42084 parameter.
42085 (gimple_get_virt_method_for_binfo): Likewise.
42086 * gimple-fold.h (gimple_get_virt_method_for_binfo,
42087 gimple_get_virt_method_for_vtable): Update prototypes.
42088
42089 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
42090
42091 PR target/49008
42092 * genautomata.c (add_presence_absence): Fix typo with
42093 {final_}presence_list.
42094
42095 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
42096
42097 PR target/60137
42098 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
42099 for VSX/Altivec vectors that land in GPR registers.
42100
42101 2014-02-11 Richard Henderson <rth@redhat.com>
42102 Jakub Jelinek <jakub@redhat.com>
42103
42104 PR debug/59776
42105 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
42106 around drhs if type conversion to lacc->type is not useless.
42107
42108 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42109
42110 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
42111 tuning struct.
42112 (cortex-a57.cortex-a53): Likewise.
42113 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
42114
42115 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42116
42117 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
42118 arm_restrict_it.
42119
42120 2014-02-11 Renlin Li <Renlin.Li@arm.com>
42121
42122 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
42123 add_options_for_arm_vfp3.
42124
42125 2014-02-11 Jeff Law <law@redhat.com>
42126
42127 PR middle-end/54041
42128 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
42129 object with an undesirable mode.
42130
42131 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
42132
42133 PR libgomp/60107
42134 * config/i386/sol2-9.h: New file.
42135 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
42136 *-*-solaris2.9*): Use it.
42137
42138 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
42139
42140 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
42141 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
42142
42143 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
42144
42145 * config/microblaze/microblaze.c: Extend mcpu version format
42146
42147 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
42148
42149 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
42150
42151 2014-02-10 Richard Henderson <rth@redhat.com>
42152
42153 PR target/59927
42154 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
42155 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
42156 ms-abi vs -mno-accumulate-outgoing-args.
42157 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
42158 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
42159 respect to ms-abi.
42160
42161 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
42162
42163 PR middle-end/60080
42164 * cfgexpand.c (expand_asm_operands): Attach source location to
42165 ASM_INPUT rtx objects.
42166 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
42167
42168 2014-02-10 Nick Clifton <nickc@redhat.com>
42169
42170 * config/mn10300/mn10300.c (popcount): New function.
42171 (mn10300_expand_prologue): Include saved registers in stack usage
42172 count.
42173
42174 2014-02-10 Jeff Law <law@redhat.com>
42175
42176 PR middle-end/52306
42177 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
42178 when changing the SET_DEST of a prior insn to avoid an input reload.
42179
42180 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42181
42182 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
42183 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
42184 -mcall-openbsd, or -mcall-linux.
42185 (CC1_ENDIAN_BIG_SPEC): Remove.
42186 (CC1_ENDIAN_LITTLE_SPEC): Remove.
42187 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
42188 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
42189 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
42190 and %cc1_endian_default.
42191 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
42192
42193 2014-02-10 Richard Biener <rguenther@suse.de>
42194
42195 PR tree-optimization/60115
42196 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
42197 MEM_REF handling. Properly verify that the accesses are not
42198 out of the objects bound.
42199
42200 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42201
42202 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
42203 coretex to cortex.
42204
42205 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
42206
42207 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
42208 proper constants and fix formatting.
42209 (possible_polymorphic_call_targets): Fix formatting.
42210
42211 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
42212 Ilya Tocar <ilya.tocar@intel.com>
42213
42214 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
42215 (_mm512_loadu_epi32): Renamed into...
42216 (_mm512_loadu_si512): This.
42217 (_mm512_storeu_epi32): Renamed into...
42218 (_mm512_storeu_si512): This.
42219 (_mm512_maskz_ceil_ps): Removed.
42220 (_mm512_maskz_ceil_pd): Ditto.
42221 (_mm512_maskz_floor_ps): Ditto.
42222 (_mm512_maskz_floor_pd): Ditto.
42223 (_mm512_floor_round_ps): Ditto.
42224 (_mm512_floor_round_pd): Ditto.
42225 (_mm512_ceil_round_ps): Ditto.
42226 (_mm512_ceil_round_pd): Ditto.
42227 (_mm512_mask_floor_round_ps): Ditto.
42228 (_mm512_mask_floor_round_pd): Ditto.
42229 (_mm512_mask_ceil_round_ps): Ditto.
42230 (_mm512_mask_ceil_round_pd): Ditto.
42231 (_mm512_maskz_floor_round_ps): Ditto.
42232 (_mm512_maskz_floor_round_pd): Ditto.
42233 (_mm512_maskz_ceil_round_ps): Ditto.
42234 (_mm512_maskz_ceil_round_pd): Ditto.
42235 (_mm512_expand_pd): Ditto.
42236 (_mm512_expand_ps): Ditto.
42237 * config/i386/i386.c (ix86_builtins): Remove
42238 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
42239 (bdesc_args): Ditto.
42240 * config/i386/predicates.md (const1256_operand): New.
42241 (const_1_to_2_operand): Ditto.
42242 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
42243 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
42244 (*avx512pf_gatherpf<mode>sf): Ditto.
42245 (avx512pf_gatherpf<mode>df): Ditto.
42246 (*avx512pf_gatherpf<mode>df_mask): Ditto.
42247 (*avx512pf_gatherpf<mode>df): Ditto.
42248 (avx512pf_scatterpf<mode>sf): Ditto.
42249 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
42250 (*avx512pf_scatterpf<mode>sf): Ditto.
42251 (avx512pf_scatterpf<mode>df): Ditto.
42252 (*avx512pf_scatterpf<mode>df_mask): Ditto.
42253 (*avx512pf_scatterpf<mode>df): Ditto.
42254 (avx512f_expand<mode>): Removed.
42255 (<shift_insn><mode>3<mask_name>): Change predicate type.
42256
42257 2014-02-08 Jakub Jelinek <jakub@redhat.com>
42258
42259 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
42260 not at the end of datarefs vector use ordered_remove to avoid
42261 reordering datarefs vector.
42262
42263 PR c/59984
42264 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
42265 mark local addressable non-static vars as GOVD_PRIVATE
42266 instead of GOVD_LOCAL.
42267 * omp-low.c (lower_omp_for): Move gimple_bind_vars
42268 and BLOCK_VARS of gimple_bind_block to new_stmt rather
42269 than copying them.
42270
42271 PR middle-end/60092
42272 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
42273 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
42274 assume_aligned or alloc_align attributes.
42275 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
42276 arguments. Handle also assume_aligned and alloc_align attributes.
42277 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
42278 calls to functions with assume_aligned or alloc_align attributes.
42279 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
42280
42281 2014-02-08 Terry Guo <terry.guo@arm.com>
42282
42283 * doc/invoke.texi: Document ARM -march=armv7e-m.
42284
42285 2014-02-08 Jakub Jelinek <jakub@redhat.com>
42286
42287 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
42288 flag on __cilkrts_rethrow builtin.
42289
42290 PR ipa/60026
42291 * ipa-cp.c (determine_versionability): Fail at -O0
42292 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
42293 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
42294
42295 Revert:
42296 2014-02-04 Jakub Jelinek <jakub@redhat.com>
42297
42298 PR ipa/60026
42299 * tree-inline.c (copy_forbidden): Fail for
42300 __attribute__((optimize (0))) functions.
42301
42302 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
42303
42304 * varpool.c: Include pointer-set.h.
42305 (varpool_remove_unreferenced_decls): Variables in other partitions
42306 will not be output; be however careful to not lose information
42307 about partitioning.
42308
42309 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
42310
42311 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
42312 lookup in the vtable constructor.
42313
42314 2014-02-07 Jeff Law <law@redhat.com>
42315
42316 PR target/40977
42317 * config/m68k/m68k.md (ashldi_extsi): Turn into a
42318 define_insn_and_split.
42319
42320 * ipa-inline.c (inline_small_functions): Fix typos.
42321
42322 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
42323
42324 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
42325 (s390_can_use_return_insn): Declare.
42326 * config/s390/s390.h (EPILOGUE_USES): Define.
42327 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
42328 instructions.
42329 (s390_chunkify_start): Handle return JUMP_LABELs.
42330 (s390_early_mach): Emit a main_pool instruction on the entry edge.
42331 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
42332 (s390_can_use_return_insn): New functions.
42333 (s390_fix_long_loop_prediction): Handle conditional returns.
42334 (TARGET_SET_UP_BY_PROLOGUE): Define.
42335 * config/s390/s390.md (ANY_RETURN): New code iterator.
42336 (*creturn, *csimple_return, return, simple_return): New patterns.
42337
42338 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
42339
42340 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
42341 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
42342 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
42343 REG_CFA_RESTORE list when deciding not to restore a register.
42344
42345 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
42346
42347 * config/s390/s390.c: Include tree-pass.h and context.h.
42348 (s390_early_mach): New function, split out from...
42349 (s390_emit_prologue): ...here.
42350 (pass_data_s390_early_mach): New pass structure.
42351 (pass_s390_early_mach): New class.
42352 (s390_option_override): Create and register early_mach pass.
42353 Move to end of file.
42354
42355 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
42356
42357 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
42358 to match for the exit block.
42359
42360 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42361
42362 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
42363 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
42364 Reject misaligned operands.
42365
42366 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42367
42368 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
42369
42370 2014-02-07 Richard Biener <rguenther@suse.de>
42371
42372 PR middle-end/60092
42373 * gimple-low.c (lower_builtin_posix_memalign): New function.
42374 (lower_stmt): Call it to lower posix_memalign in a way
42375 to make alignment info accessible.
42376
42377 2014-02-07 Jakub Jelinek <jakub@redhat.com>
42378
42379 PR c++/60082
42380 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
42381 __builtin_setjmp_receiver.
42382
42383 2014-02-07 Richard Biener <rguenther@suse.de>
42384
42385 PR middle-end/60092
42386 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
42387 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
42388 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
42389 Handle BUILT_IN_POSIX_MEMALIGN.
42390 (find_func_clobbers): Likewise.
42391 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
42392 (call_may_clobber_ref_p_1): Likewise.
42393
42394 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
42395
42396 PR ipa/59918
42397 * ipa-devirt.c (record_target_from_binfo): Remove overactive
42398 sanity check.
42399
42400 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
42401
42402 PR ipa/59469
42403 * lto-cgraph.c (lto_output_node): Use
42404 symtab_get_symbol_partitioning_class.
42405 (lto_output_varpool_node): likewise.
42406 (symtab_get_symbol_partitioning_class): Move here from
42407 lto/lto-partition.c
42408 * cgraph.h (symbol_partitioning_class): Likewise.
42409 (symtab_get_symbol_partitioning_class): Declare.
42410
42411 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
42412
42413 * ggc.h (ggc_internal_cleared_alloc): New macro.
42414 * vec.h (vec_safe_copy): Handle memory stats.
42415 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
42416 * target-globals.c (save_target_globals): Likewise.
42417
42418 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
42419
42420 PR target/60077
42421 * expr.c (emit_move_resolve_push): Export; be bit more selective
42422 on when to clear alias set.
42423 * expr.h (emit_move_resolve_push): Declare.
42424 * function.h (struct function): Add tail_call_marked.
42425 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
42426 * config/i386/i386-protos.h (ix86_expand_push): Remove.
42427 * config/i386/i386.md (TImode move expander): De not call
42428 ix86_expand_push.
42429 (FP push expanders): Preserve memory attributes.
42430 * config/i386/sse.md (push<mode>1): Remove.
42431 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
42432 (ix86_expand_push): Remove.
42433 * config/i386/mmx.md (push<mode>1): Remove.
42434
42435 2014-02-06 Jakub Jelinek <jakub@redhat.com>
42436
42437 PR rtl-optimization/60030
42438 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
42439 lopart with paradoxical subreg before shifting it up by hprec.
42440
42441 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42442
42443 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
42444 Remove extra newline at end of file.
42445 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
42446 (arm_issue_rate): Handle cortexa57.
42447 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
42448 (cortex-a57.cortex-a53): Likewise.
42449
42450 2014-02-06 Jakub Jelinek <jakub@redhat.com>
42451
42452 PR target/59575
42453 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
42454 don't record in REG_FRAME_RELATED_EXPR registers not set in that
42455 bitmask.
42456 (arm_expand_prologue): Adjust all callers.
42457 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
42458 info, registers also at the lowest numbered registers side. Use
42459 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
42460 XEXP.
42461
42462 PR debug/59992
42463 * var-tracking.c (adjust_mems): Before adding a SET to
42464 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
42465
42466 2014-02-06 Alan Modra <amodra@gmail.com>
42467
42468 PR target/60032
42469 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
42470 change SDmode to DDmode when lra_in_progress.
42471
42472 2014-02-06 Jakub Jelinek <jakub@redhat.com>
42473
42474 PR middle-end/59150
42475 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
42476 free_data_ref on the dr first, and before goto again also set dr
42477 to the next dr. For simd_lane_access, free old datarefs[i] before
42478 overwriting it. For get_vectype_for_scalar_type failure, don't
42479 free_data_ref if simd_lane_access.
42480
42481 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
42482
42483 PR target/60062
42484 * tree.h (opts_for_fn): New inline function.
42485 (opt_for_fn): Define.
42486 * config/i386/i386.c (ix86_function_regparm): Use
42487 opt_for_fn (decl, optimize) instead of optimize.
42488
42489 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
42490
42491 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
42492 for SYMBOL_REF in large memory model.
42493
42494 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42495
42496 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
42497 and crypto support.
42498 (cortex-a57): Likewise.
42499 (cortex-a57.cortex-a53): Likewise.
42500
42501 2014-02-06 Yury Gribov <y.gribov@samsung.com>
42502 Kugan Vivekanandarajah <kuganv@linaro.org>
42503
42504 * config/arm/arm.c (arm_vector_alignment_reachable): Check
42505 unaligned_access.
42506 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
42507
42508 2014-02-06 Richard Biener <rguenther@suse.de>
42509
42510 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
42511 set_loop_copy and initialize_original_copy_tables.
42512
42513 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
42514
42515 * config/aarch64/aarch64-simd.md
42516 (aarch64_ashr_simddi): Change QI to SI.
42517
42518 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
42519 Jakub Jelinek <jakub@redhat.com>
42520
42521 PR middle-end/60013
42522 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
42523 of the dataflow.
42524
42525 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42526
42527 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
42528 CODE_FOR_altivec_vpku[hw]um to
42529 CODE_FOR_altivec_vpku[hw]um_direct.
42530 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
42531 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
42532 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
42533 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
42534
42535 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42536
42537 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
42538 generation for -maltivec=be.
42539 (altivec_vsumsws): Simplify redundant test.
42540
42541 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42542
42543 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
42544 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
42545 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
42546 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
42547 gen_altivec_vpkuwum.
42548 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
42549 BYTES_BIG_ENDIAN.
42550 (altivec_vpks<VI_char>ss): Likewise.
42551 (altivec_vpks<VI_char>us): Likewise.
42552 (altivec_vpku<VI_char>us): Likewise.
42553 (altivec_vpku<VI_char>um): Likewise.
42554 (altivec_vpku<VI_char>um_direct): New (copy of
42555 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
42556 internal use).
42557 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
42558 target is little endian and -maltivec=be is not specified.
42559 (*altivec_vupkhs<VU_char>_direct): New (copy of
42560 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
42561 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
42562 target is little endian and -maltivec=be is not specified.
42563 (*altivec_vupkls<VU_char>_direct): New (copy of
42564 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
42565 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
42566 little endian and -maltivec=be is not specified.
42567 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
42568 little endian and -maltivec=be is not specified.
42569
42570 2014-02-05 Richard Henderson <rth@redhat.com>
42571
42572 PR debug/52727
42573 * combine-stack-adj.c: Revert r206943.
42574 * sched-int.h (struct deps_desc): Add last_args_size.
42575 * sched-deps.c (init_deps): Initialize it.
42576 (sched_analyze_insn): Add OUTPUT dependencies between insns that
42577 contain REG_ARGS_SIZE notes.
42578
42579 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
42580
42581 * lto-cgraph.c (asm_nodes_output): Make global.
42582 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
42583 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
42584 (driver_handle_option): Handle OPT_fwpa.
42585
42586 2014-02-05 Jakub Jelinek <jakub@redhat.com>
42587
42588 PR ipa/59947
42589 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
42590 a comment typo and formatting issue. If odr_hash hasn't been
42591 created, return vNULL and set *completep to false.
42592
42593 PR middle-end/57499
42594 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
42595 bb with no successors.
42596
42597 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
42598
42599 PR target/59718
42600 * doc/invoke.texi (-march): Clarify documentation for ARM.
42601 (-mtune): Likewise.
42602 (-mcpu): Likewise.
42603
42604 2014-02-05 Richard Biener <rguenther@suse.de>
42605
42606 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
42607 when not vectorizing because of too many alias checks.
42608 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
42609 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
42610
42611 2014-02-05 Nick Clifton <nickc@redhat.com>
42612
42613 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
42614 accept extended registers in any mode when compiling for the MN10300.
42615
42616 2014-02-05 Yury Gribov <y.gribov@samsung.com>
42617
42618 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
42619 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
42620 sanitization attributes.
42621 (can_inline_edge_p): Likewise.
42622 (sanitize_attrs_match_for_inline_p): New function.
42623
42624 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
42625
42626 * ipa-prop.c (detect_type_change): Shor circuit testing of
42627 type changes on THIS pointer.
42628
42629 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
42630
42631 PR target/59777
42632 * config/pa/pa.c (legitimize_tls_address): Return original address
42633 if not passed a SYMBOL_REF rtx.
42634 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
42635 addresses.
42636 (pa_emit_move_sequence): Simplify TLS source operands.
42637 (pa_legitimate_constant_p): Reject all TLS constants.
42638 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
42639 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
42640
42641 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
42642
42643 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
42644 groups when we know they are controlled by LTO.
42645 * varasm.c (default_binds_local_p_1): If object is in other partition,
42646 it will be resolved locally.
42647
42648 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
42649
42650 * config/host-linux.c (linux_gt_pch_use_address): Don't
42651 use SSIZE_MAX because it is not always defined.
42652
42653 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
42654
42655 PR bootstrap/59913
42656 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
42657 threshold for pseudo splitting.
42658 (update_ebb_live_info): Process call argument hard registers and
42659 hard registers from insn definition too.
42660 (max_small_class_regs_num): New constant.
42661 (inherit_in_ebb): Update live hard regs through EBBs. Update
42662 reloads_num only for small register classes. Don't split for
42663 outputs of jumps.
42664
42665 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
42666
42667 PR ipa/60058
42668 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
42669 is non-null.
42670
42671 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
42672
42673 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
42674 visibility is safe.
42675
42676 2014-02-04 Marek Polacek <polacek@redhat.com>
42677
42678 * gdbinit.in (pel): Define.
42679
42680 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
42681
42682 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
42683 behavior.
42684
42685 2014-02-04 Richard Biener <rguenther@suse.de>
42686
42687 PR lto/59723
42688 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
42689 in function context local.
42690 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
42691 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
42692 similar to LTO_imported_decl_ref.
42693
42694 2014-02-04 Jakub Jelinek <jakub@redhat.com>
42695
42696 PR tree-optimization/60002
42697 * cgraphclones.c (build_function_decl_skip_args): Clear
42698 DECL_LANG_SPECIFIC.
42699
42700 PR tree-optimization/60023
42701 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
42702 false to gsi_replace.
42703 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
42704 has been in some EH region and vec_stmt could throw, add
42705 vec_stmt into the same EH region.
42706 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
42707 has no lhs, ignore it.
42708 * internal-fn.c (expand_MASK_LOAD): Likewise.
42709
42710 PR ipa/60026
42711 * tree-inline.c (copy_forbidden): Fail for
42712 __attribute__((optimize (0))) functions.
42713
42714 PR other/58712
42715 * omp-low.c (simd_clone_struct_copy): If from->inbranch
42716 is set, copy one less argument.
42717 (expand_simd_clones): Don't subtract clone_info->inbranch
42718 from simd_clone_struct_alloc argument.
42719
42720 PR rtl-optimization/57915
42721 * recog.c (simplify_while_replacing): If all unary/binary/relational
42722 operation arguments are constant, attempt to simplify those.
42723
42724 PR middle-end/59261
42725 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
42726 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
42727
42728 2014-02-04 Richard Biener <rguenther@suse.de>
42729
42730 PR tree-optimization/60012
42731 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
42732 TBAA disambiguation to all DDRs.
42733
42734 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
42735
42736 PR target/59788
42737 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
42738 (LINK_SPEC): Use it for -shared, -shared-libgcc.
42739
42740 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
42741
42742 PR ipa/59882
42743 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
42744
42745 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
42746
42747 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
42748 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
42749
42750 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
42751
42752 PR ipa/59831
42753 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
42754 to figure out targets of polymorphic calls with known decl.
42755 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
42756 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
42757 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
42758 (get_polymorphic_call_info): ... here.
42759 (get_polymorphic_call_info_from_invariant): New function.
42760
42761 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
42762
42763 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
42764 lookup via vtable pointer; check for type consistency
42765 and turn inconsitent facts into UNREACHABLE.
42766 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
42767 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
42768 type inconsistent querries; return UNREACHABLE instead.
42769
42770 2014-02-03 Richard Henderson <rth@twiddle.net>
42771
42772 PR tree-opt/59924
42773 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
42774 already processed this node.
42775 (normalize_one_pred_1): Pass along mark_set.
42776 (normalize_one_pred): Create and destroy a pointer_set_t.
42777 (normalize_one_pred_chain): Likewise.
42778
42779 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
42780
42781 PR gcov-profile/58602
42782 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
42783
42784 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
42785
42786 PR ipa/59831
42787 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
42788 -fno-devirtualize; try to devirtualize by the knowledge of
42789 virtual table pointer given by aggregate propagation.
42790 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
42791 (ipa_print_node_jump_functions): Dump also offset that
42792 is relevant for polymorphic calls.
42793 (determine_known_aggregate_parts): Add arg_type parameter; use it
42794 instead of determining the type from pointer type.
42795 (ipa_compute_jump_functions_for_edge): Update call of
42796 determine_known_aggregate_parts.
42797 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
42798 (gimple_get_virt_method_for_binfo): ... here; simplify using
42799 vtable_pointer_value_to_vtable.
42800 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
42801 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
42802 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
42803 (vtable_pointer_value_to_vtable): Break out from ...; handle also
42804 POINTER_PLUS_EXPR.
42805 (vtable_pointer_value_to_binfo): ... here.
42806 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
42807
42808 2014-02-03 Teresa Johnson <tejohnson@google.com>
42809
42810 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
42811 redef of outer loop index variable.
42812
42813 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
42814
42815 PR c++/53017
42816 PR c++/59211
42817 * doc/extend.texi (Function Attributes): Typo.
42818
42819 2014-02-03 Cong Hou <congh@google.com>
42820
42821 PR tree-optimization/60000
42822 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
42823 if the vectorized statement is a store. A store statement can only
42824 appear at the end of pattern statements.
42825
42826 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
42827
42828 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
42829 (ix86_option_override_internal): Default long double to 64-bit for
42830 32-bit Bionic and to 128-bit for 64-bit Bionic.
42831
42832 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
42833 TARGET_LONG_DOUBLE_128 is true.
42834 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
42835
42836 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
42837 (mlong-double-64): Negate -mlong-double-128.
42838 (mlong-double-128): New option.
42839
42840 * config/i386/i386-c.c (ix86_target_macros): Define
42841 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
42842
42843 * doc/invoke.texi: Document -mlong-double-128.
42844
42845 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
42846
42847 PR rtl-optimization/60024
42848 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
42849
42850 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
42851
42852 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
42853
42854 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
42855
42856 PR rtl-optimization/57662
42857 * sel-sched.c (code_motion_path_driver): Do not mark already not
42858 existing blocks in the visiting bitmap.
42859
42860 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
42861
42862 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
42863 on the insn being emitted.
42864
42865 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
42866 Will Deacon <will.deacon@arm.com>
42867
42868 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
42869
42870 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42871
42872 * config/arm/arm-tables.opt: Regenerate.
42873
42874 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42875
42876 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
42877 for vector types other than V16QImode.
42878 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
42879 define_expand, and call altivec_expand_vec_perm_le when producing
42880 code with little endian element order.
42881 (*altivec_vperm_<mode>_internal): New insn having previous
42882 behavior of altivec_vperm_<mode>.
42883 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
42884 altivec_expand_vec_perm_le when producing code with little endian
42885 element order.
42886 (*altivec_vperm_<mode>_uns_internal): New insn having previous
42887 behavior of altivec_vperm_<mode>_uns.
42888
42889 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42890
42891 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
42892 (altivec_vsumsws): Add handling for -maltivec=be with a little
42893 endian target.
42894 (altivec_vsumsws_direct): New.
42895 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
42896 gen_altivec_vsumsws.
42897
42898 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
42899
42900 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
42901 vtable_pointer_value_to_binfo): New functions.
42902 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
42903 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
42904
42905 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
42906
42907 * config/nios2/nios2.md (load_got_register): Initialize GOT
42908 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
42909 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
42910
42911 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
42912
42913 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
42914 preserverd by passthrough, do not propagate the type.
42915
42916 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
42917
42918 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
42919 (mips_atomic_assign_expand_fenv): New function.
42920 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
42921
42922 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
42923
42924 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
42925 (__builtin_mips_set_fcsr): Likewise.
42926 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
42927 MIPS_USI_FTYPE_VOID.
42928 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
42929 (mips16_expand_set_fcsr): Likewise.
42930 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
42931 (mips16_set_fcsr_stub): Likewise.
42932 (mips16_get_fcsr_one_only_stub): New class.
42933 (mips16_set_fcsr_one_only_stub): Likewise.
42934 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
42935 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
42936 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
42937 (hard_float): New availability predicate.
42938 (mips_builtins): Add get_fcsr and set_fcsr.
42939 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
42940 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
42941 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
42942 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
42943 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
42944 patterns.
42945
42946 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
42947
42948 * config/mips/mips.c (mips_one_only_stub): New class.
42949 (mips_need_mips16_rdhwr_p): Replace with...
42950 (mips16_rdhwr_stub): ...this new variable.
42951 (mips16_stub_call_address): New function.
42952 (mips16_rdhwr_one_only_stub): New class.
42953 (mips_expand_thread_pointer): Use mips16_stub_call_address.
42954 (mips_output_mips16_rdhwr): Delete.
42955 (mips_finish_stub): New function.
42956 (mips_code_end): Use it to handle rdhwr stubs.
42957
42958 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
42959
42960 PR target/60017
42961 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
42962 when calculating size of integer atomic types.
42963
42964 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
42965
42966 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
42967
42968 2014-02-01 Jakub Jelinek <jakub@redhat.com>
42969
42970 PR tree-optimization/60003
42971 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
42972 * profile.c (branch_prob): Use gimple_call_builtin_p
42973 to check for BUILT_IN_SETJMP_RECEIVER.
42974 * tree-inline.c (copy_bb): Call notice_special_calls.
42975
42976 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
42977
42978 PR bootstrap/59985
42979 * lra-constraints.c (process_alt_operands): Update reload_sum only
42980 on the first pass.
42981
42982 2014-01-31 Richard Henderson <rth@redhat.com>
42983
42984 PR middle-end/60004
42985 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
42986 until after else_eh is processed.
42987
42988 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
42989
42990 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
42991 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
42992 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
42993 in smmintrin.h, remove them.
42994 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
42995 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
42996 * config/i386/i386.md (ROUND_SAE): Fix value.
42997 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
42998 (const48_operand): New.
42999 * config/i386/subst.md (round), (round_expand): Use
43000 const_4_or_8_to_11_operand.
43001 (round_saeonly), (round_saeonly_expand): Use const48_operand.
43002
43003 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
43004
43005 * config/i386/constraints.md (Yk): Swap meaning with k.
43006 * config/i386/i386.md (movhi_internal): Change Yk to k.
43007 (movqi_internal): Ditto.
43008 (*k<logic><mode>): Ditto.
43009 (*andhi_1): Ditto.
43010 (*andqi_1): Ditto.
43011 (kandn<mode>): Ditto.
43012 (*<code>hi_1): Ditto.
43013 (*<code>qi_1): Ditto.
43014 (kxnor<mode>): Ditto.
43015 (kortestzhi): Ditto.
43016 (kortestchi): Ditto.
43017 (kunpckhi): Ditto.
43018 (*one_cmplhi2_1): Ditto.
43019 (*one_cmplqi2_1): Ditto.
43020 * config/i386/sse.md (): Change k to Yk.
43021 (avx512f_load<mode>_mask): Ditto.
43022 (avx512f_blendm<mode>): Ditto.
43023 (avx512f_store<mode>_mask): Ditto.
43024 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
43025 (avx512f_storedqu<mode>_mask): Ditto.
43026 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
43027 Ditto.
43028 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
43029 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
43030 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
43031 (avx512f_maskcmp<mode>3): Ditto.
43032 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
43033 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
43034 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
43035 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
43036 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
43037 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
43038 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
43039 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
43040 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
43041 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
43042 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
43043 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
43044 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
43045 (vec_extract_lo_<mode>_maskm): Ditto.
43046 (vec_extract_hi_<mode>_maskm): Ditto.
43047 (avx512f_vternlog<mode>_mask): Ditto.
43048 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
43049 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
43050 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
43051 (avx512f_<code>v8div16qi2_mask): Ditto.
43052 (avx512f_<code>v8div16qi2_mask_store): Ditto.
43053 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
43054 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
43055 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
43056 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
43057 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
43058 (*avx512pf_gatherpf<mode>df_mask): Ditto.
43059 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43060 (*avx512pf_scatterpf<mode>df_mask): Ditto.
43061 (avx512cd_maskb_vec_dupv8di): Ditto.
43062 (avx512cd_maskw_vec_dupv16si): Ditto.
43063 (avx512f_vpermi2var<mode>3_maskz): Ditto.
43064 (avx512f_vpermi2var<mode>3_mask): Ditto.
43065 (avx512f_vpermi2var<mode>3_mask): Ditto.
43066 (avx512f_vpermt2var<mode>3_maskz): Ditto.
43067 (*avx512f_gathersi<mode>): Ditto.
43068 (*avx512f_gathersi<mode>_2): Ditto.
43069 (*avx512f_gatherdi<mode>): Ditto.
43070 (*avx512f_gatherdi<mode>_2): Ditto.
43071 (*avx512f_scattersi<mode>): Ditto.
43072 (*avx512f_scatterdi<mode>): Ditto.
43073 (avx512f_compress<mode>_mask): Ditto.
43074 (avx512f_compressstore<mode>_mask): Ditto.
43075 (avx512f_expand<mode>_mask): Ditto.
43076 * config/i386/subst.md (mask): Change k to Yk.
43077 (mask_scalar_merge): Ditto.
43078 (sd): Ditto.
43079
43080 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
43081
43082 * doc/extend.texi (Vector Extensions): Document ?: in C++.
43083
43084 2014-01-31 Richard Biener <rguenther@suse.de>
43085
43086 PR middle-end/59990
43087 * builtins.c (fold_builtin_memory_op): Make sure to not
43088 use a floating-point mode or a boolean or enumeral type for
43089 the copy operation.
43090
43091 2014-01-30 DJ Delorie <dj@redhat.com>
43092
43093 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
43094 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
43095 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
43096 whenever main() has an epilogue.
43097
43098 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43099
43100 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
43101 unused variable "field".
43102 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
43103 (vsx_mergeh_<mode>): Likewise.
43104 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
43105 (altivec_vmrghh): Likewise.
43106 (altivec_vmrghw): Likewise.
43107 (altivec_vmrglb): Likewise.
43108 (altivec_vmrglh): Likewise.
43109 (altivec_vmrglw): Likewise.
43110 (altivec_vspltb): Add missing uses.
43111 (altivec_vsplth): Likewise.
43112 (altivec_vspltw): Likewise.
43113 (altivec_vspltsf): Likewise.
43114
43115 2014-01-30 Jakub Jelinek <jakub@redhat.com>
43116
43117 PR target/59923
43118 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
43119 frame related instructions.
43120
43121 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
43122
43123 PR rtl-optimization/59959
43124 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
43125 any reload of register whose subreg is invalid.
43126
43127 2014-01-30 Jakub Jelinek <jakub@redhat.com>
43128
43129 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
43130 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
43131 Add missing return type - void.
43132
43133 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43134
43135 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
43136 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
43137 remove element index adjustment for endian (now handled in vsx.md
43138 and altivec.md).
43139 (altivec_expand_vec_perm_const): Use
43140 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
43141 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
43142 (vsx_xxspltw_<mode>): Adjust element index for little endian.
43143 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
43144 define_expand and a new define_insn *altivec_vspltb_internal;
43145 adjust for -maltivec=be on a little endian target.
43146 (altivec_vspltb_direct): New.
43147 (altivec_vsplth): Divide into a define_expand and a new
43148 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
43149 little endian target.
43150 (altivec_vsplth_direct): New.
43151 (altivec_vspltw): Divide into a define_expand and a new
43152 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
43153 little endian target.
43154 (altivec_vspltw_direct): New.
43155 (altivec_vspltsf): Divide into a define_expand and a new
43156 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
43157 a little endian target.
43158
43159 2014-01-30 Richard Biener <rguenther@suse.de>
43160
43161 PR tree-optimization/59993
43162 * tree-ssa-forwprop.c (associate_pointerplus): Check we
43163 can propagate form the earlier stmt and avoid the transform
43164 when the intermediate result is needed.
43165
43166 2014-01-30 Alangi Derick <alangiderick@gmail.com>
43167
43168 * README.Portability: Fix typo.
43169
43170 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
43171
43172 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
43173 comparison_operator with ordered_comparison_operator.
43174
43175 2014-01-30 Nick Clifton <nickc@redhat.com>
43176
43177 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
43178 Rename to mn10300_store_multiple_regs.
43179 * config/mn10300/mn10300.c: Likewise.
43180 * config/mn10300/mn10300.md (store_movm): Fix typo: call
43181 store_multiple_regs.
43182 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
43183 Call mn10300_store_multiple_regs.
43184
43185 2014-01-30 Nick Clifton <nickc@redhat.com>
43186 DJ Delorie <dj@redhat.com>
43187
43188 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
43189 %fp 2 to keep registers after it properly word-aligned.
43190 (rl78_alloc_physical_registers_umul): Handle the case where both
43191 input operands are the same.
43192
43193 2014-01-30 Richard Biener <rguenther@suse.de>
43194
43195 PR tree-optimization/59903
43196 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
43197 check properly.
43198
43199 2014-01-30 Jason Merrill <jason@redhat.com>
43200
43201 PR c++/59633
43202 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
43203
43204 PR c++/59645
43205 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
43206
43207 2014-01-30 Richard Biener <rguenther@suse.de>
43208
43209 PR tree-optimization/59951
43210 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
43211
43212 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
43213
43214 PR target/59784
43215 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
43216 SFmode to DFmode case.
43217
43218 2014-01-29 DJ Delorie <dj@redhat.com>
43219
43220 * config/msp430/msp430.opt (-minrt): New.
43221 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
43222 if -minrt given.
43223 (ENDFILE_SPEC): Likewise.
43224
43225 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
43226
43227 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
43228 (estimate_function_body_sizes): Use it.
43229
43230 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
43231
43232 PR c++/58561
43233 * dwarf2out.c (is_cxx_auto): New.
43234 (is_base_type): Use it.
43235 (gen_type_die_with_usage): Likewise.
43236
43237 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43238
43239 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
43240 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
43241 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
43242 -maltivec=be with LE targets.
43243 (vsx_mergeh_<mode>): Likewise.
43244 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
43245 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
43246 (altivec_vmrghb): Replace with define_expand and new
43247 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
43248 (altivec_vmrghb_direct): New define_insn.
43249 (altivec_vmrghh): Replace with define_expand and new
43250 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
43251 (altivec_vmrghh_direct): New define_insn.
43252 (altivec_vmrghw): Replace with define_expand and new
43253 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
43254 (altivec_vmrghw_direct): New define_insn.
43255 (*altivec_vmrghsf): Adjust for endianness.
43256 (altivec_vmrglb): Replace with define_expand and new
43257 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
43258 (altivec_vmrglb_direct): New define_insn.
43259 (altivec_vmrglh): Replace with define_expand and new
43260 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
43261 (altivec_vmrglh_direct): New define_insn.
43262 (altivec_vmrglw): Replace with define_expand and new
43263 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
43264 (altivec_vmrglw_direct): New define_insn.
43265 (*altivec_vmrglsf): Adjust for endianness.
43266 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
43267 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
43268 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
43269 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
43270 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
43271 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
43272 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
43273 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
43274
43275 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
43276
43277 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
43278 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
43279 whitespace.
43280
43281 2014-01-29 Richard Biener <rguenther@suse.de>
43282
43283 PR tree-optimization/58742
43284 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
43285 associate_pointerplus_align.
43286 (associate_pointerplus_diff): New function.
43287 (associate_pointerplus): Likewise. Call associate_pointerplus_align
43288 and associate_pointerplus_diff.
43289
43290 2014-01-29 Richard Biener <rguenther@suse.de>
43291
43292 * lto-streamer.h (LTO_major_version): Bump to 3.
43293 (LTO_minor_version): Reset to 0.
43294
43295 2014-01-29 Renlin Li <Renlin.Li@arm.com>
43296
43297 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
43298 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
43299 (arm_file_start): Generate correct asm header for armv7ve.
43300 * config/arm/bpabi.h: Add multilib support for armv7ve.
43301 * config/arm/driver-arm.c: Change the architectures of cortex-a7
43302 and cortex-a15 to armv7ve.
43303 * config/arm/t-aprofile: Add multilib support for armv7ve.
43304 * doc/invoke.texi: Document -march=armv7ve.
43305
43306 2014-01-29 Richard Biener <rguenther@suse.de>
43307
43308 PR tree-optimization/58742
43309 * tree-ssa-forwprop.c (associate_plusminus): Return true
43310 if we changed sth, defer EH cleanup to ...
43311 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
43312 (simplify_mult): New function.
43313
43314 2014-01-29 Jakub Jelinek <jakub@redhat.com>
43315
43316 PR middle-end/59917
43317 PR tree-optimization/59920
43318 * tree.c (build_common_builtin_nodes): Remove
43319 __builtin_setjmp_dispatcher initialization.
43320 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
43321 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
43322 instead of gsi_after_labels + manually skipping debug stmts.
43323 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
43324 ignore bbs with IFN_ABNORMAL_DISPATCHER.
43325 * tree-inline.c (copy_edges_for_bb): Remove
43326 can_make_abnormal_goto argument, instead add abnormal_goto_dest
43327 argument. Ignore computed_goto_p stmts. Don't call
43328 make_abnormal_goto_edges. If a call might need abnormal edges
43329 for non-local gotos, see if it already has an edge to
43330 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
43331 with true argument, don't do anything then, otherwise add
43332 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
43333 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
43334 caller.
43335 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
43336 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
43337 (lower_stmt): Don't set data->calls_builtin_setjmp.
43338 (lower_builtin_setjmp): Adjust comment.
43339 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
43340 * tree-cfg.c (found_computed_goto): Remove.
43341 (factor_computed_gotos): Remove.
43342 (make_goto_expr_edges): Return bool, true for computed gotos.
43343 Don't call make_abnormal_goto_edges.
43344 (build_gimple_cfg): Don't set found_computed_goto, don't call
43345 factor_computed_gotos.
43346 (computed_goto_p): No longer static.
43347 (make_blocks): Don't set found_computed_goto.
43348 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
43349 (make_edges): If make_goto_expr_edges returns true, push bb
43350 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
43351 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
43352 vector. Record mapping between bbs and OpenMP regions if there
43353 are any, adjust make_gimple_omp_edges caller. Call
43354 handle_abnormal_edges.
43355 (make_abnormal_goto_edges): Remove.
43356 * tree-cfg.h (make_abnormal_goto_edges): Remove.
43357 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
43358 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
43359 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
43360 * internal-fn.def (ABNORMAL_DISPATCHER): New.
43361 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
43362 filling *region also set *region_idx to (*region)->entry->index.
43363
43364 PR other/58712
43365 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
43366 For REGs set ORIGINAL_REGNO.
43367
43368 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
43369
43370 * doc/md.texi: Mention that a target shouldn't implement
43371 vec_widen_(s|u)mul_even/odd pair if it is less efficient
43372 than hi/lo pair.
43373
43374 2014-01-29 Jakub Jelinek <jakub@redhat.com>
43375
43376 PR tree-optimization/59594
43377 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
43378 a copy of the datarefs vector rather than the vector itself.
43379
43380 2014-01-28 Jason Merrill <jason@redhat.com>
43381
43382 PR c++/53756
43383 * dwarf2out.c (auto_die): New static.
43384 (gen_type_die_with_usage): Handle C++1y 'auto'.
43385 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
43386 on definition.
43387
43388 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
43389
43390 PR target/59672
43391 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
43392 (SPEC_X32): Likewise.
43393 (SPEC_64): Likewise.
43394 * config/i386/i386.c (ix86_option_override_internal): Turn off
43395 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
43396 for TARGET_16BIT.
43397 (x86_file_start): Output .code16gcc for TARGET_16BIT.
43398 * config/i386/i386.h (TARGET_16BIT): New macro.
43399 (TARGET_16BIT_P): Likewise.
43400 * config/i386/i386.opt: Add m16.
43401 * doc/invoke.texi: Document -m16.
43402
43403 2014-01-28 Jakub Jelinek <jakub@redhat.com>
43404
43405 PR preprocessor/59935
43406 * input.c (location_get_source_line): Bail out on when line number
43407 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
43408
43409 2014-01-28 Richard Biener <rguenther@suse.de>
43410
43411 PR tree-optimization/58742
43412 * tree-ssa-forwprop.c (associate_plusminus): Handle
43413 pointer subtraction of the form (T)(P + A) - (T)P.
43414
43415 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43416
43417 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
43418 at const_int_cost.
43419
43420 2014-01-28 Richard Biener <rguenther@suse.de>
43421
43422 Revert
43423 2014-01-28 Richard Biener <rguenther@suse.de>
43424
43425 PR rtl-optimization/45364
43426 PR rtl-optimization/59890
43427 * var-tracking.c (local_get_addr_clear_given_value): Handle
43428 already cleared slot.
43429 (val_reset): Handle not allocated local_get_addr_cache.
43430 (vt_find_locations): Use post-order on the inverted CFG.
43431
43432 2014-01-28 Richard Biener <rguenther@suse.de>
43433
43434 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
43435
43436 2014-01-28 Richard Biener <rguenther@suse.de>
43437
43438 PR rtl-optimization/45364
43439 PR rtl-optimization/59890
43440 * var-tracking.c (local_get_addr_clear_given_value): Handle
43441 already cleared slot.
43442 (val_reset): Handle not allocated local_get_addr_cache.
43443 (vt_find_locations): Use post-order on the inverted CFG.
43444
43445 2014-01-28 Alan Modra <amodra@gmail.com>
43446
43447 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
43448 * configure.ac <recursive call for build != host>: Define
43449 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
43450 and LD_FOR_BUILD too.
43451 * configure: Regenerate.
43452
43453 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
43454
43455 * config/i386/i386.c (get_builtin_code_for_version): Separate
43456 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
43457 Broadwell from Haswell.
43458
43459 2014-01-27 Steve Ellcey <sellcey@mips.com>
43460
43461 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
43462 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
43463 * config/mips/mips.c (mips_option_override): Change setting
43464 of TARGET_DSP.
43465 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
43466 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
43467 Change from Mask to Var.
43468
43469 2014-01-27 Jeff Law <law@redhat.com>
43470
43471 * ipa-inline.c (inline_small_functions): Fix typo.
43472
43473 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
43474
43475 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
43476 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
43477 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
43478 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
43479 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
43480 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
43481 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
43482 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
43483 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
43484 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
43485 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
43486 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
43487 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
43488 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
43489 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
43490 (_mm512_storeu_epi64): Ditto.
43491 (_mm512_cmpge_epi32_mask): Ditto.
43492 (_mm512_cmpge_epu32_mask): Ditto.
43493 (_mm512_cmpge_epi64_mask): Ditto.
43494 (_mm512_cmpge_epu64_mask): Ditto.
43495 (_mm512_cmple_epi32_mask): Ditto.
43496 (_mm512_cmple_epu32_mask): Ditto.
43497 (_mm512_cmple_epi64_mask): Ditto.
43498 (_mm512_cmple_epu64_mask): Ditto.
43499 (_mm512_cmplt_epi32_mask): Ditto.
43500 (_mm512_cmplt_epu32_mask): Ditto.
43501 (_mm512_cmplt_epi64_mask): Ditto.
43502 (_mm512_cmplt_epu64_mask): Ditto.
43503 (_mm512_cmpneq_epi32_mask): Ditto.
43504 (_mm512_cmpneq_epu32_mask): Ditto.
43505 (_mm512_cmpneq_epi64_mask): Ditto.
43506 (_mm512_cmpneq_epu64_mask): Ditto.
43507 (_mm512_expand_pd): Ditto.
43508 (_mm512_expand_ps): Ditto.
43509 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
43510 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
43511 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
43512 * config/i386/i386.c (ix86_builtins): Add
43513 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
43514 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
43515 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
43516 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
43517 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
43518 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
43519 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
43520 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
43521 IX86_BUILTIN_PMOVUSQW512_MEM.
43522 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
43523 __builtin_ia32_pmovsqd512mem_mask,
43524 __builtin_ia32_pmovqd512mem_mask,
43525 __builtin_ia32_pmovusqw512mem_mask,
43526 __builtin_ia32_pmovsqw512mem_mask,
43527 __builtin_ia32_pmovqw512mem_mask,
43528 __builtin_ia32_pmovusdw512mem_mask,
43529 __builtin_ia32_pmovsdw512mem_mask,
43530 __builtin_ia32_pmovdw512mem_mask,
43531 __builtin_ia32_pmovqb512mem_mask,
43532 __builtin_ia32_pmovusqb512mem_mask,
43533 __builtin_ia32_pmovsqb512mem_mask,
43534 __builtin_ia32_pmovusdb512mem_mask,
43535 __builtin_ia32_pmovsdb512mem_mask,
43536 __builtin_ia32_pmovdb512mem_mask.
43537 (bdesc_args): Add __builtin_ia32_expanddf512,
43538 __builtin_ia32_expandsf512.
43539 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
43540 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
43541 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
43542 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
43543 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
43544 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
43545 (avx512f_<code>v8div16qi2_mask_store): This.
43546 (avx512f_expand<mode>): New.
43547
43548 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
43549
43550 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
43551 New.
43552 (_mm512_mask_prefetch_i64gather_pd): Ditto.
43553 (_mm512_prefetch_i32scatter_pd): Ditto.
43554 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
43555 (_mm512_prefetch_i64scatter_pd): Ditto.
43556 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
43557 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
43558 (_mm512_mask_prefetch_i64gather_ps): Ditto.
43559 (_mm512_prefetch_i32scatter_ps): Ditto.
43560 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
43561 (_mm512_prefetch_i64scatter_ps): Ditto.
43562 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
43563 * config/i386/i386-builtin-types.def: Define
43564 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
43565 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
43566 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
43567 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
43568 IX86_BUILTIN_SCATTERPFQPD.
43569 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
43570 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
43571 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
43572 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
43573 __builtin_ia32_scatterpfqps.
43574 (ix86_expand_builtin): Expand new built-ins.
43575 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
43576 fix memory access data type.
43577 (*avx512pf_gatherpf<mode>_mask): Ditto.
43578 (*avx512pf_gatherpf<mode>): Ditto.
43579 (avx512pf_scatterpf<mode>): Ditto.
43580 (*avx512pf_scatterpf<mode>_mask): Ditto.
43581 (*avx512pf_scatterpf<mode>): Ditto.
43582 (GATHER_SCATTER_SF_MEM_MODE): New.
43583 (avx512pf_gatherpf<mode>df): Ditto.
43584 (*avx512pf_gatherpf<mode>df_mask): Ditto.
43585 (*avx512pf_scatterpf<mode>df): Ditto.
43586
43587 2014-01-27 Jakub Jelinek <jakub@redhat.com>
43588
43589 PR bootstrap/59934
43590 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
43591 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
43592 reached.
43593
43594 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
43595
43596 * common/config/arm/arm-common.c
43597 (arm_rewrite_mcpu): Handle multiple names.
43598 * config/arm/arm.h
43599 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
43600
43601 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
43602
43603 * gimple-builder.h (create_gimple_tmp): Delete.
43604
43605 2014-01-27 Christian Bruel <christian.bruel@st.com>
43606
43607 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
43608 words comparisons.
43609
43610 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
43611
43612 * config/pa/pa.md (call): Generate indirect long calls to non-local
43613 functions when outputing 32-bit code.
43614 (call_value): Likewise except for special call to buggy powf function.
43615
43616 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
43617 portable runtime and PIC indirect calls.
43618 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
43619 and PIC call sequences. Use ldo instead of blr to set return register
43620 in PIC call sequence.
43621
43622 2014-01-25 Walter Lee <walt@tilera.com>
43623
43624 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
43625 avoid clobbering a live register.
43626
43627 2014-01-25 Walter Lee <walt@tilera.com>
43628
43629 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
43630 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
43631 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
43632 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
43633
43634 2014-01-25 Walter Lee <walt@tilera.com>
43635
43636 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
43637 arguments on even registers.
43638 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
43639 STACK_BOUNDARY.
43640 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
43641 (BIGGEST_ALIGNMENT): Ditto.
43642 (BIGGEST_FIELD_ALIGNMENT): Ditto.
43643
43644 2014-01-25 Walter Lee <walt@tilera.com>
43645
43646 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
43647 insns before bundling.
43648 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
43649
43650 2014-01-25 Walter Lee <walt@tilera.com>
43651
43652 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
43653 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
43654 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
43655
43656 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
43657
43658 * config/mips/constraints.md (kl): Delete.
43659 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
43660 define expands, using...
43661 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
43662 instructions for MIPS16.
43663 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
43664 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
43665
43666 2014-01-25 Walter Lee <walt@tilera.com>
43667
43668 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
43669 (clzdi2): Ditto.
43670 (ffsdi2): Ditto.
43671
43672 2014-01-25 Walter Lee <walt@tilera.com>
43673
43674 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
43675 (TARGET_EXPAND_TO_RTL_HOOK): Define.
43676
43677 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
43678
43679 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
43680 Handle XOR.
43681
43682 2014-01-25 Jakub Jelinek <jakub@redhat.com>
43683
43684 * print-rtl.c (in_call_function_usage): New var.
43685 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
43686 EXPR_LIST mode as mode and not as reg note name.
43687
43688 PR middle-end/59561
43689 * cfgloopmanip.c (copy_loop_info): If
43690 loop->warned_aggressive_loop_optimizations, make sure
43691 the flag is set in target loop too.
43692
43693 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
43694
43695 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
43696 flag_cilkplus.
43697 * builtins.def: Likewise.
43698 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
43699 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
43700 * ira.c (ira_setup_eliminable_regset): Likewise.
43701 * omp-low.c (gate_expand_omp): Likewise.
43702 (execute_lower_omp): Likewise.
43703 (diagnose_sb_0): Likewise.
43704 (gate_diagnose_omp_blocks): Likewise.
43705 (simd_clone_clauses_extract): Likewise.
43706 (gate): Likewise.
43707
43708 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43709
43710 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
43711 correction for little endian...
43712 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
43713 here.
43714
43715 2014-01-24 Jeff Law <law@redhat.com>
43716
43717 PR tree-optimization/59919
43718 * tree-vrp.c (find_assert_locations_1): Do not register asserts
43719 for non-returning calls.
43720
43721 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
43722
43723 * common/config/aarch64/aarch64-common.c
43724 (aarch64_rewrite_mcpu): Handle multiple names.
43725 * config/aarch64/aarch64.h
43726 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
43727
43728 2014-01-24 Dodji Seketeli <dodji@redhat.com>
43729
43730 * input.c (add_file_to_cache_tab): Handle the case where fopen
43731 returns NULL.
43732
43733 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
43734
43735 PR target/59929
43736 * config/i386/i386.md (pushsf splitter): Get stack adjustment
43737 from push operand if code of push isn't PRE_DEC.
43738
43739 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
43740
43741 PR target/59909
43742 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
43743 -mquad-memory-atomic. Update -mquad-memory documentation to say
43744 it is only used for non-atomic loads/stores.
43745
43746 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
43747 -mquad-memory or -mquad-memory-atomic switches.
43748
43749 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
43750 -mquad-memory-atomic to ISA 2.07 support.
43751
43752 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
43753 to separate support of normal quad word memory operations (ldq, stq)
43754 from the atomic quad word memory operations.
43755
43756 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
43757 support to separate non-atomic quad word operations from atomic
43758 quad word operations. Disable non-atomic quad word operations in
43759 little endian mode so that we don't have to swap words after the
43760 load and before the store.
43761 (quad_load_store_p): Add comment about atomic quad word support.
43762 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
43763 options printed with -mdebug=reg.
43764
43765 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
43766 -mquad-memory-atomic as the test for whether we have quad word
43767 atomic instructions.
43768 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
43769 or -mp8-vector are used, allow byte/half-word atomic operations.
43770
43771 * config/rs6000/sync.md (load_lockedti): Insure that the address
43772 is a proper indexed or indirect address for the lqarx instruction.
43773 On little endian systems, swap the hi/lo registers after the lqarx
43774 instruction.
43775 (load_lockedpti): Use indexed_or_indirect_operand predicate to
43776 insure the address is valid for the lqarx instruction.
43777 (store_conditionalti): Insure that the address is a proper indexed
43778 or indirect address for the stqcrx. instruction. On little endian
43779 systems, swap the hi/lo registers before doing the stqcrx.
43780 instruction.
43781 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
43782 insure the address is valid for the stqcrx. instruction.
43783
43784 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
43785 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
43786 type of quad memory support is available.
43787
43788 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
43789
43790 PR regression/59915
43791 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
43792 there is a danger of looping.
43793
43794 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
43795
43796 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
43797 force flag_ira_loop_pressure if set via command line.
43798
43799 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
43800
43801 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
43802 (ashr_simd): New builtin handling DI mode.
43803 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
43804 (aarch64_sshr_simddi): New match pattern.
43805 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
43806 (vshrd_n_s64): Likewise.
43807 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
43808
43809 2014-01-23 Nick Clifton <nickc@redhat.com>
43810
43811 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
43812 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
43813 favour of mcu specific scripts.
43814 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
43815 430x multilibs.
43816
43817 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
43818 Alex Velenko <Alex.Velenko@arm.com>
43819
43820 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
43821 (vaddv_s16): Likewise.
43822 (vaddv_s32): Likewise.
43823 (vaddv_u8): Likewise.
43824 (vaddv_u16): Likewise.
43825 (vaddv_u32): Likewise.
43826 (vaddvq_s8): Likewise.
43827 (vaddvq_s16): Likewise.
43828 (vaddvq_s32): Likewise.
43829 (vaddvq_s64): Likewise.
43830 (vaddvq_u8): Likewise.
43831 (vaddvq_u16): Likewise.
43832 (vaddvq_u32): Likewise.
43833 (vaddvq_u64): Likewise.
43834 (vaddv_f32): Likewise.
43835 (vaddvq_f32): Likewise.
43836 (vaddvq_f64): Likewise.
43837 (vmaxv_f32): Likewise.
43838 (vmaxv_s8): Likewise.
43839 (vmaxv_s16): Likewise.
43840 (vmaxv_s32): Likewise.
43841 (vmaxv_u8): Likewise.
43842 (vmaxv_u16): Likewise.
43843 (vmaxv_u32): Likewise.
43844 (vmaxvq_f32): Likewise.
43845 (vmaxvq_f64): Likewise.
43846 (vmaxvq_s8): Likewise.
43847 (vmaxvq_s16): Likewise.
43848 (vmaxvq_s32): Likewise.
43849 (vmaxvq_u8): Likewise.
43850 (vmaxvq_u16): Likewise.
43851 (vmaxvq_u32): Likewise.
43852 (vmaxnmv_f32): Likewise.
43853 (vmaxnmvq_f32): Likewise.
43854 (vmaxnmvq_f64): Likewise.
43855 (vminv_f32): Likewise.
43856 (vminv_s8): Likewise.
43857 (vminv_s16): Likewise.
43858 (vminv_s32): Likewise.
43859 (vminv_u8): Likewise.
43860 (vminv_u16): Likewise.
43861 (vminv_u32): Likewise.
43862 (vminvq_f32): Likewise.
43863 (vminvq_f64): Likewise.
43864 (vminvq_s8): Likewise.
43865 (vminvq_s16): Likewise.
43866 (vminvq_s32): Likewise.
43867 (vminvq_u8): Likewise.
43868 (vminvq_u16): Likewise.
43869 (vminvq_u32): Likewise.
43870 (vminnmv_f32): Likewise.
43871 (vminnmvq_f32): Likewise.
43872 (vminnmvq_f64): Likewise.
43873
43874 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
43875
43876 * config/aarch64/aarch64-simd.md
43877 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
43878 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
43879 (*aarch64_mul3_elt<mode>): Likewise.
43880 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
43881 (*aarch64_mul3_elt_to_64v2df): Likewise.
43882 (*aarch64_mla_elt<mode>): Likewise.
43883 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
43884 (*aarch64_mls_elt<mode>): Likewise.
43885 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
43886 (*aarch64_fma4_elt<mode>): Likewise.
43887 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
43888 (*aarch64_fma4_elt_to_64v2df): Likewise.
43889 (*aarch64_fnma4_elt<mode>): Likewise.
43890 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
43891 (*aarch64_fnma4_elt_to_64v2df): Likewise.
43892 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
43893 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
43894 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
43895 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
43896 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
43897 (aarch64_sqdmull_lane<mode>_internal): Likewise.
43898 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
43899
43900 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
43901
43902 * config/aarch64/aarch64-simd.md
43903 (aarch64_be_checked_get_lane<mode>): New define_expand.
43904 * config/aarch64/aarch64-simd-builtins.def
43905 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
43906 New builtin definition.
43907 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
43908 Use new safe be builtin.
43909
43910 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
43911
43912 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
43913 New define_insn.
43914 (aarch64_be_st1<mode>): Likewise.
43915 (aarch_ld1<VALL:mode>): Define_expand modified.
43916 (aarch_st1<VALL:mode>): Likewise.
43917 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
43918 (UNSPEC_ST1): Likewise.
43919
43920 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
43921
43922 * config/microblaze/microblaze.md: Add trap insn and attribute
43923
43924 2014-01-23 Dodji Seketeli <dodji@redhat.com>
43925
43926 PR preprocessor/58580
43927 * input.h (location_get_source_line): Take an additional line_size
43928 parameter.
43929 (void diagnostics_file_cache_fini): Declare new function.
43930 * input.c (struct fcache): New type.
43931 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
43932 New static constants.
43933 (diagnostic_file_cache_init, total_lines_num)
43934 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
43935 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
43936 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
43937 (get_next_line, read_next_line, goto_next_line, read_line_num):
43938 New static function definitions.
43939 (diagnostic_file_cache_fini): New function.
43940 (location_get_source_line): Take an additional output line_len
43941 parameter. Re-write using lookup_or_add_file_to_cache_tab and
43942 read_line_num.
43943 * diagnostic.c (diagnostic_finish): Call
43944 diagnostic_file_cache_fini.
43945 (adjust_line): Take an additional input parameter for the length
43946 of the line, rather than calculating it with strlen.
43947 (diagnostic_show_locus): Adjust the use of
43948 location_get_source_line and adjust_line with respect to their new
43949 signature. While displaying a line now, do not stop at the first
43950 null byte. Rather, display the zero byte as a space and keep
43951 going until we reach the size of the line.
43952 * Makefile.in: Add vec.o to OBJS-libcommon
43953
43954 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
43955 Ilya Tocar <ilya.tocar@intel.com>
43956
43957 * config/i386/avx512fintrin.h (_mm512_kmov): New.
43958 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
43959 (__builtin_ia32_kmov16): Ditto.
43960 * config/i386/i386.md (UNSPEC_KMOV): New.
43961 (kmovw): Ditto.
43962
43963 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
43964
43965 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
43966 (_mm512_storeu_si512): Ditto.
43967
43968 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
43969
43970 PR target/52125
43971 * rtl.h (get_referenced_operands): Declare.
43972 * recog.c (get_referenced_operands): New function.
43973 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
43974 operands have been referenced when recording LO_SUM references.
43975
43976 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
43977
43978 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
43979
43980 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
43981
43982 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
43983 Enable for generic and recent AMD targets.
43984
43985 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
43986
43987 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
43988 ARG_SIZE note when adjustment was eliminated.
43989
43990 2014-01-22 Jeff Law <law@redhat.com>
43991
43992 PR tree-optimization/59597
43993 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
43994 in file. Accept new argument REGISTERING and use it to modify
43995 dump output appropriately.
43996 (register_jump_thread): Corresponding changes.
43997 (mark_threaded_blocks): Reinstate code to cancel unprofitable
43998 thread paths involving joiner blocks. Add code to dump cancelled
43999 jump threading paths.
44000
44001 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
44002
44003 PR rtl-optimization/59477
44004 * lra-constraints.c (inherit_in_ebb): Process call for living hard
44005 regs. Update reloads_num and potential_reload_hard_regs for all insns.
44006
44007 2014-01-22 Tom Tromey <tromey@redhat.com>
44008
44009 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
44010 PARAMS.
44011 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
44012
44013 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
44014
44015 PR rtl-optimization/59896
44016 * lra-constraints.c (process_alt_operands): Check unused note for
44017 matched operands of insn with no output reloads.
44018
44019 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
44020
44021 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
44022 (mips_move_from_gpr_cost): Likewise.
44023
44024 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
44025
44026 PR rtl-optimization/59858
44027 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
44028 ira_class_hard_regs_num.
44029 (process_alt_operands): Increase reject for dying matched operand.
44030
44031 2014-01-21 Jakub Jelinek <jakub@redhat.com>
44032
44033 PR target/59003
44034 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
44035 smaller than size, perform several stores or loads and stores
44036 at dst + count - size to store or copy all of size bytes, rather
44037 than just last modesize bytes.
44038
44039 2014-01-20 DJ Delorie <dj@redhat.com>
44040
44041 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
44042 that CLOBBERs are REGs before propogating their values.
44043
44044 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
44045
44046 PR middle-end/59789
44047 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
44048 (cgraph_inline_failed_type): New function.
44049 * cgraph.h (DEFCIFCODE): Add type.
44050 (cgraph_inline_failed_type_t): New enum.
44051 (cgraph_inline_failed_type): New prototype.
44052 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
44053 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
44054 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
44055 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
44056 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
44057 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
44058 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
44059 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
44060 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
44061 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
44062 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
44063 OPTIMIZATION_MISMATCH.
44064 * tree-inline.c (expand_call_inline): Emit errors during
44065 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
44066
44067 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
44068
44069 PR target/59685
44070 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
44071 mode attribute in insn output.
44072
44073 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
44074
44075 * output.h (output_constant): Delete.
44076 * varasm.c (output_constant): Make private.
44077
44078 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
44079
44080 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
44081
44082 2014-01-20 Jakub Jelinek <jakub@redhat.com>
44083
44084 PR middle-end/59860
44085 * tree.h (fold_builtin_strcat): New prototype.
44086 * builtins.c (fold_builtin_strcat): No longer static. Add len
44087 argument, if non-NULL, don't call c_strlen. Optimize
44088 directly into __builtin_memcpy instead of __builtin_strcpy.
44089 (fold_builtin_2): Adjust fold_builtin_strcat caller.
44090 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
44091
44092 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
44093
44094 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
44095 for SImode_address_operand operands, having only a REG argument.
44096
44097 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
44098
44099 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
44100 loader name using mbig-endian.
44101 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
44102
44103 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
44104
44105 * doc/invoke.texi (-march): Clarify documentation for AArch64.
44106 (-mtune): Likewise.
44107 (-mcpu): Likewise.
44108
44109 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
44110
44111 * config/aarch64/aarch64-protos.h
44112 (aarch64_cannot_change_mode_class_ptr): Declare.
44113 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
44114 aarch64_cannot_change_mode_class_ptr): New.
44115 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
44116 backend hook aarch64_cannot_change_mode_class.
44117
44118 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
44119
44120 * common/config/aarch64/aarch64-common.c
44121 (aarch64_handle_option): Don't handle any option order logic here.
44122 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
44123 selected_cpu, warn on architecture version mismatch.
44124 (aarch64_override_options): Fix parsing order for option strings.
44125
44126 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
44127 Iain Sandoe <iain@codesourcery.com>
44128
44129 PR bootstrap/59496
44130 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
44131 warning. Amend comment to reflect current functionality.
44132
44133 2014-01-20 Richard Biener <rguenther@suse.de>
44134
44135 PR middle-end/59860
44136 * builtins.c (fold_builtin_strcat): Remove case better handled
44137 by tree-ssa-strlen.c.
44138
44139 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
44140
44141 * config/aarch64/aarch64.opt
44142 (mcpu, march, mtune): Make case-insensitive.
44143
44144 2014-01-20 Jakub Jelinek <jakub@redhat.com>
44145
44146 PR target/59880
44147 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
44148 if operands[1] is a REG or ZERO_EXTEND of a REG.
44149
44150 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
44151
44152 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
44153
44154 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
44155
44156 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
44157 long non-pic millicode calls.
44158
44159 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
44160
44161 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
44162
44163 2014-01-19 Kito Cheng <kito@0xlab.org>
44164
44165 * builtins.c (expand_movstr): Check movstr expand done or fail.
44166
44167 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
44168 H.J. Lu <hongjiu.lu@intel.com>
44169
44170 PR target/59379
44171 * config/i386/i386.md (*lea<mode>): Zero-extend return register
44172 to DImode for zero-extended addresses.
44173
44174 2014-01-19 Jakub Jelinek <jakub@redhat.com>
44175
44176 PR rtl-optimization/57763
44177 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
44178 on the new indirect jump_insn and increment LABEL_NUSES (label).
44179
44180 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
44181
44182 PR bootstrap/59580
44183 PR bootstrap/59583
44184 * config.gcc (x86_archs): New variable.
44185 (x86_64_archs): Likewise.
44186 (x86_cpus): Likewise.
44187 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
44188 --with-arch/--with-cpu= options.
44189 Support --with-arch=/--with-cpu={nehalem,westmere,
44190 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
44191
44192 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
44193
44194 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
44195 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
44196
44197 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
44198
44199 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
44200
44201 2014-01-18 Jakub Jelinek <jakub@redhat.com>
44202
44203 PR target/58944
44204 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
44205 clear cpp_get_options (parse_in)->warn_unused_macros for
44206 ix86_target_macros_internal with cpp_define.
44207
44208 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
44209
44210 * jump.c (delete_related_insns): Keep (use (insn))s.
44211 * reorg.c (redundant_insn): Check for barriers too.
44212
44213 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
44214
44215 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
44216
44217 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
44218
44219 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
44220 call to $$dyncall when TARGET_LONG_CALLS is true.
44221
44222 2014-01-17 Jeff Law <law@redhat.com>
44223
44224 * ree.c (combine_set_extension): Temporarily disable test for
44225 changing number of hard registers.
44226
44227 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
44228
44229 PR middle-end/58125
44230 * ipa-inline-analysis.c (inline_free_summary):
44231 Do not free summary of aliases.
44232
44233 2014-01-17 Jakub Jelinek <jakub@redhat.com>
44234
44235 PR middle-end/59706
44236 * gimplify.c (gimplify_expr): Use create_tmp_var
44237 instead of create_tmp_var_raw. If cond doesn't have
44238 integral type, don't add the IFN_ANNOTATE builtin at all.
44239
44240 2014-01-17 Martin Jambor <mjambor@suse.cz>
44241
44242 PR ipa/59736
44243 * ipa-cp.c (prev_edge_clone): New variable.
44244 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
44245 Also resize prev_edge_clone vector.
44246 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
44247 (ipcp_edge_removal_hook): New function.
44248 (ipcp_driver): Register ipcp_edge_removal_hook.
44249
44250 2014-01-17 Andrew Pinski <apinski@cavium.com>
44251 Steve Ellcey <sellcey@mips.com>
44252
44253 PR target/59462
44254 * config/mips/mips.c (mips_print_operand): Check operand mode instead
44255 of operator mode.
44256
44257 2014-01-17 Jeff Law <law@redhat.com>
44258
44259 PR middle-end/57904
44260 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
44261 so that pass_ccp runs first.
44262
44263 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
44264
44265 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
44266 (ix86_adjust_cost): Use !TARGET_XXX.
44267 (do_reorder_for_imul): Likewise.
44268 (swap_top_of_ready_list): Likewise.
44269 (ix86_sched_reorder): Likewise.
44270
44271 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
44272
44273 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44274 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
44275 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
44276 (intel_memset): New. Duplicate slm_memset.
44277 (intel_cost): New. Duplicate slm_cost.
44278 (m_INTEL): New macro.
44279 (processor_target_table): Add "intel".
44280 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
44281 with PROCESSOR_INTEL for "intel".
44282 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
44283 PROCESSOR_SILVERMONT.
44284 (ix86_issue_rate): Likewise.
44285 (ix86_adjust_cost): Likewise.
44286 (ia32_multipass_dfa_lookahead): Likewise.
44287 (swap_top_of_ready_list): Likewise.
44288 (ix86_sched_reorder): Likewise.
44289 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
44290 instead of TARGET_OPT_AGU.
44291 * config/i386/i386.h (TARGET_INTEL): New.
44292 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
44293 (processor_type): Add PROCESSOR_INTEL.
44294 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
44295 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
44296
44297 2014-01-17 Marek Polacek <polacek@redhat.com>
44298
44299 PR c/58346
44300 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
44301 size is zero.
44302
44303 2014-01-17 Richard Biener <rguenther@suse.de>
44304
44305 PR tree-optimization/46590
44306 * opts.c (default_options_table): Add entries for
44307 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
44308 all enabled at -O1 but not for -Og.
44309 * common.opt (fbranch-count-reg): Remove Init(1).
44310 (fmove-loop-invariants): Likewise.
44311 (ftree-pta): Likewise.
44312
44313 2014-01-17 Jakub Jelinek <jakub@redhat.com>
44314
44315 * config/i386/i386.c (ix86_data_alignment): For compatibility with
44316 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
44317 decls to at least the GCC 4.8 used alignments.
44318
44319 PR fortran/59440
44320 * tree-nested.c (convert_nonlocal_reference_stmt,
44321 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
44322 of GIMPLE_BIND stmts, adjust associated decls.
44323
44324 2014-01-17 Richard Biener <rguenther@suse.de>
44325
44326 PR tree-optimization/46590
44327 * vec.h (vec<>::bseach): New member function implementing
44328 binary search according to C89 bsearch.
44329 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
44330 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
44331 bitmap pointer again. Make accesses_in_loop a flat array.
44332 (mem_ref_obstack): New global.
44333 (outermost_indep_loop): Adjust for mem_ref->stored changes.
44334 (mark_ref_stored): Likewise.
44335 (ref_indep_loop_p_2): Likewise.
44336 (set_ref_stored_in_loop): New helper function.
44337 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
44338 (memref_free): Adjust.
44339 (record_mem_ref_loc): Simplify.
44340 (gather_mem_refs_stmt): Adjust.
44341 (sort_locs_in_loop_postorder_cmp): New function.
44342 (analyze_memory_references): Sort accesses_in_loop after
44343 loop postorder number.
44344 (find_ref_loc_in_loop_cmp): New function.
44345 (for_all_locs_in_loop): Find relevant cluster of locs in
44346 accesses_in_loop and iterate without recursion.
44347 (execute_sm): Avoid uninit warning.
44348 (struct ref_always_accessed): Simplify.
44349 (ref_always_accessed::operator ()): Likewise.
44350 (ref_always_accessed_p): Likewise.
44351 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
44352 loop postorder numbers here.
44353 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
44354 numbers.
44355
44356 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
44357
44358 PR c++/57945
44359 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
44360 on decls for which assemble_alias has been called.
44361
44362 2014-01-17 Nick Clifton <nickc@redhat.com>
44363
44364 * config/msp430/msp430.opt: (mcpu): New option.
44365 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
44366 (msp430_option_override): Parse target_cpu. If the MCU name
44367 matches a generic string, clear target_mcu.
44368 (msp430_attr): Allow numeric interrupt values up to 63.
44369 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
44370 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
44371 option.
44372 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
44373 Add mcpu matches.
44374 * config/msp430/msp430.md (popm): Use %J rather than %I.
44375 (addsi3): Use msp430_nonimmediate_operand for operand 2.
44376 (addhi_cy_i): Use immediate_operand for operand 2.
44377 * doc/invoke.texi: Document -mcpu option.
44378
44379 2014-01-17 Richard Biener <rguenther@suse.de>
44380
44381 PR rtl-optimization/38518
44382 * df.h (df_analyze_loop): Declare.
44383 * df-core.c: Include cfgloop.h.
44384 (df_analyze_1): Split out main part of df_analyze.
44385 (df_analyze): Adjust.
44386 (loop_inverted_post_order_compute): New function.
44387 (loop_post_order_compute): Likewise.
44388 (df_analyze_loop): New function avoiding whole-function
44389 postorder computes.
44390 * loop-invariant.c (find_defs): Use df_analyze_loop.
44391 (find_invariants): Adjust.
44392 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
44393
44394 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
44395
44396 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
44397 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
44398
44399 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
44400
44401 * ipa-ref.c (ipa_remove_stmt_references): Fix references
44402 traversal when removing references.
44403
44404 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
44405
44406 PR ipa/59775
44407 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
44408
44409 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
44410
44411 PR middle-end/56791
44412 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
44413 pushing a reload for an autoinc when we had previously reloaded an
44414 inner part of the address.
44415
44416 2014-01-16 Jakub Jelinek <jakub@redhat.com>
44417
44418 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
44419 field.
44420 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
44421 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
44422 when not giving up or versioning for alias only because of
44423 loop->safelen.
44424 (vect_analyze_data_ref_dependences): Set to true.
44425 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
44426 is a GIMPLE_PHI.
44427 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
44428 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
44429 to the condition.
44430
44431 PR middle-end/58344
44432 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
44433
44434 PR target/59839
44435 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
44436 operand 0 predicate for gathers, use a new pseudo as subtarget.
44437
44438 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
44439
44440 PR middle-end/59609
44441 * lra-constraints.c (process_alt_operands): Add printing debug info.
44442 Check absence of input/output reloads for matched operands too.
44443
44444 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
44445
44446 PR rtl-optimization/59835
44447 * ira.c (ira_init_register_move_cost): Increase cost for
44448 impossible modes.
44449
44450 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
44451
44452 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
44453
44454 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
44455
44456 PR target/59780
44457 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
44458 non-register objects. Use gen_(high/low)part more consistently.
44459 Fix assertions.
44460
44461 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
44462
44463 PR target/59844
44464 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
44465 endian support, remove tests for WORDS_BIG_ENDIAN.
44466 (p8_mfvsrd_3_<mode>): Likewise.
44467 (reload_gpr_from_vsx<mode>): Likewise.
44468 (reload_gpr_from_vsxsf): Likewise.
44469 (p8_mfvsrd_4_disf): Likewise.
44470
44471 2014-01-16 Richard Biener <rguenther@suse.de>
44472
44473 PR rtl-optimization/46590
44474 * lcm.c (compute_antinout_edge): Use postorder iteration.
44475 (compute_laterin): Use inverted postorder iteration.
44476
44477 2014-01-16 Nick Clifton <nickc@redhat.com>
44478
44479 PR middle-end/28865
44480 * varasm.c (output_constant): Return the number of bytes actually
44481 emitted.
44482 (output_constructor_array_range): Update the field size with the
44483 number of bytes emitted by output_constant.
44484 (output_constructor_regular_field): Likewise. Also do not
44485 complain if the total number of bytes emitted is now greater
44486 than the expected fieldpos.
44487 * output.h (output_constant): Update prototype and descriptive comment.
44488
44489 2014-01-16 Marek Polacek <polacek@redhat.com>
44490
44491 PR middle-end/59827
44492 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
44493 it is error_mark_node.
44494
44495 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
44496
44497 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
44498 VALID_AVX256_REG_OR_OI_MODE.
44499
44500 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
44501
44502 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
44503 current procedure should be profiled.
44504
44505 2014-01-15 Andrew Pinski <apinski@cavium.com>
44506
44507 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
44508 of moving from/to the STACK_REG register class.
44509
44510 2014-01-15 Richard Henderson <rth@redhat.com>
44511
44512 PR debug/54694
44513 * reginfo.c (global_regs_decl): Globalize.
44514 * rtl.h (global_regs_decl): Declare.
44515 * ira.c (do_reload): Diagnose frame_pointer_needed and it
44516 reserved via global_regs.
44517
44518 2014-01-15 Teresa Johnson <tejohnson@google.com>
44519
44520 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
44521
44522 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
44523
44524 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
44525 and vmulosh rather than call gen_vec_widen_smult_*.
44526 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
44527 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
44528 (vec_widen_smult_even_v16qi): Likewise.
44529 (vec_widen_umult_even_v8hi): Likewise.
44530 (vec_widen_smult_even_v8hi): Likewise.
44531 (vec_widen_umult_odd_v16qi): Likewise.
44532 (vec_widen_smult_odd_v16qi): Likewise.
44533 (vec_widen_umult_odd_v8hi): Likewise.
44534 (vec_widen_smult_odd_v8hi): Likewise.
44535 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
44536 vmuloub rather than call gen_vec_widen_umult_*.
44537 (vec_widen_umult_lo_v16qi): Likewise.
44538 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
44539 vmulosb rather than call gen_vec_widen_smult_*.
44540 (vec_widen_smult_lo_v16qi): Likewise.
44541 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
44542 rather than call gen_vec_widen_umult_*.
44543 (vec_widen_umult_lo_v8hi): Likewise.
44544 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
44545 rather than call gen_vec_widen_smult_*.
44546 (vec_widen_smult_lo_v8hi): Likewise.
44547
44548 2014-01-15 Jeff Law <law@redhat.com>
44549
44550 PR tree-optimization/59747
44551 * ree.c (find_and_remove_re): Properly handle case where a second
44552 eliminated extension requires widening a copy created for elimination
44553 of a prior extension.
44554 (combine_set_extension): Ensure that the number of hard regs needed
44555 for a destination register does not change when we widen it.
44556
44557 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
44558
44559 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
44560 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
44561 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
44562 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
44563 (avr-*-rtems*): Likewise.
44564 (bfin*-rtems*): Likewise.
44565 (moxie-*-rtems*): Likewise.
44566 (h8300-*-rtems*): Likewise.
44567 (i[34567]86-*-rtems*): Likewise.
44568 (lm32-*-rtems*): Likewise.
44569 (m32r-*-rtems*): Likewise.
44570 (m68k-*-rtems*): Likewise.
44571 (microblaze*-*-rtems*): Likewise.
44572 (mips*-*-rtems*): Likewise.
44573 (powerpc-*-rtems*): Likewise.
44574 (sh-*-rtems*): Likewise.
44575 (sparc-*-rtems*): Likewise.
44576 (sparc64-*-rtems*): Likewise.
44577 (v850-*-rtems*): Likewise.
44578 (m32c-*-rtems*): Likewise.
44579
44580 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
44581
44582 PR rtl-optimization/59511
44583 * ira.c (ira_init_register_move_cost): Use memory costs for some
44584 cases of register move cost calculations.
44585 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
44586 instead of BB frequency.
44587 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
44588 * lra-assigns.c (find_hard_regno_for): Ditto.
44589
44590 2014-01-15 Richard Biener <rguenther@suse.de>
44591
44592 PR tree-optimization/59822
44593 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
44594 (vectorizable_load): Use it to hoist defs of uses of invariant
44595 loads out of the loop.
44596
44597 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
44598 Kugan Vivekanandarajah <kuganv@linaro.org>
44599
44600 PR target/59695
44601 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
44602 truncation.
44603
44604 2014-01-15 Richard Biener <rguenther@suse.de>
44605
44606 PR rtl-optimization/59802
44607 * lcm.c (compute_available): Use inverted postorder to seed
44608 the initial worklist.
44609
44610 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
44611
44612 PR target/59803
44613 * config/s390/s390.c (s390_preferred_reload_class): Don't return
44614 ADDR_REGS for invalid symrefs in non-PIC code.
44615
44616 2014-01-15 Jakub Jelinek <jakub@redhat.com>
44617
44618 PR other/58712
44619 * builtins.c (determine_block_size): Initialize *probable_max_size
44620 even if len_rtx is CONST_INT.
44621
44622 2014-01-14 Andrew Pinski <apinski@cavium.com>
44623
44624 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
44625 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
44626 (cortexa53_tunings): Likewise.
44627 (aarch64_sched_issue_rate): New function.
44628 (TARGET_SCHED_ISSUE_RATE): Define.
44629
44630 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
44631
44632 * ira-costs.c (find_costs_and_classes): Add missed
44633 ira_init_register_move_cost_if_necessary.
44634
44635 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
44636
44637 PR target/59787
44638 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
44639
44640 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
44641
44642 PR target/59794
44643 * config/i386/i386.c (type_natural_mode): Add a bool parameter
44644 to indicate if type is used for function return value. Warn ABI
44645 change if the vector mode isn't available for function return value.
44646 (ix86_function_arg_advance): Pass false to type_natural_mode.
44647 (ix86_function_arg): Likewise.
44648 (ix86_gimplify_va_arg): Likewise.
44649 (function_arg_32): Don't warn ABI change.
44650 (ix86_function_value): Pass true to type_natural_mode.
44651 (ix86_return_in_memory): Likewise.
44652 (ix86_struct_value_rtx): Removed.
44653 (TARGET_STRUCT_VALUE_RTX): Likewise.
44654
44655 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
44656
44657 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
44658 converting a conditional jump into a conditional return.
44659
44660 2014-01-14 Richard Biener <rguenther@suse.de>
44661
44662 PR tree-optimization/58921
44663 PR tree-optimization/59006
44664 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
44665 hoisting invariant stmts.
44666 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
44667 invariant loads on the preheader edge if possible.
44668
44669 2014-01-14 Joey Ye <joey.ye@arm.com>
44670
44671 * doc/plugin.texi (Building GCC plugins): Update to C++.
44672
44673 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
44674
44675 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
44676 (_mm_rcp28_round_ss): Ditto.
44677 (_mm_rsqrt28_round_sd): Ditto.
44678 (_mm_rsqrt28_round_ss): Ditto.
44679 (_mm_rcp28_sd): Ditto.
44680 (_mm_rcp28_ss): Ditto.
44681 (_mm_rsqrt28_sd): Ditto.
44682 (_mm_rsqrt28_ss): Ditto.
44683 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
44684 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
44685 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
44686 (IX86_BUILTIN_RCP28SD): Ditto.
44687 (IX86_BUILTIN_RCP28SS): Ditto.
44688 (IX86_BUILTIN_RSQRT28SD): Ditto.
44689 (IX86_BUILTIN_RSQRT28SS): Ditto.
44690 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
44691 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
44692 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
44693 (ix86_expand_special_args_builtin): Expand new FTYPE.
44694 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
44695 (srcp14<mode>): Make insn unary.
44696 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
44697 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
44698 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
44699 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
44700 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
44701 Fix rounding: make it SAE only.
44702 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44703 Ditto.
44704 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44705 Ditto.
44706 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
44707 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
44708 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
44709 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
44710 (round_saeonly_mask_scalar_operand4): Ditto.
44711 (round_saeonly_mask_scalar_op3): Ditto.
44712 (round_saeonly_mask_scalar_op4): Ditto.
44713
44714 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44715
44716 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
44717 Implement -maltivec=be for vec_insert and vec_extract.
44718
44719 2014-01-10 DJ Delorie <dj@redhat.com>
44720
44721 * config/msp430/msp430.md (call_internal): Don't allow memory
44722 references with SP as the base register.
44723 (call_value_internal): Likewise.
44724 * config/msp430/constraints.md (Yc): New. For memory references
44725 that don't use SP as a base register.
44726
44727 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
44728 "an integer without a # prefix"
44729 * config/msp430/msp430.md (epilogue_helper): Use it.
44730
44731 2014-01-13 Jakub Jelinek <jakub@redhat.com>
44732
44733 PR target/59617
44734 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
44735 AVX512F gather builtins.
44736 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
44737 on gather decls with INTEGER_TYPE masktype.
44738 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
44739 directly into the builtin rather than hoisting it before loop.
44740
44741 PR tree-optimization/59387
44742 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
44743 (scev_const_prop): If folded_casts and type has undefined overflow,
44744 use force_gimple_operand instead of force_gimple_operand_gsi and
44745 for each added stmt if it is assign with
44746 arith_code_with_undefined_signed_overflow, call
44747 rewrite_to_defined_overflow.
44748 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
44749 gimple-fold.h instead.
44750 (arith_code_with_undefined_signed_overflow,
44751 rewrite_to_defined_overflow): Moved to ...
44752 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
44753 rewrite_to_defined_overflow): ... here. No longer static.
44754 Include gimplify-me.h.
44755 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
44756 rewrite_to_defined_overflow): New prototypes.
44757
44758 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44759
44760 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
44761
44762 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
44763
44764 * builtins.c (get_object_alignment_2): Minor tweak.
44765 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
44766
44767 2014-01-13 Christian Bruel <christian.bruel@st.com>
44768
44769 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
44770 optimized non constant lengths.
44771
44772 2014-01-13 Jakub Jelinek <jakub@redhat.com>
44773
44774 PR libgomp/59194
44775 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
44776 load as __atomic_load_N if possible.
44777
44778 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
44779
44780 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
44781 target parameter.
44782 (rs6000_expand_builtin): Adjust call.
44783
44784 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
44785
44786 PR target/58115
44787 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
44788 * config/rs6000/rs6000.c: Include target-globals.h.
44789 (rs6000_set_current_function): Instead of doing target_reinit
44790 unconditionally, use save_target_globals_default_opts and
44791 restore_target_globals.
44792
44793 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
44794 FPSCR.
44795 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
44796 (rs6000_expand_builtin): Handle mffs and mtfsf.
44797 (rs6000_init_builtins): Define mffs and mtfsf.
44798 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
44799 (rs6000_mffs): New pattern.
44800 (rs6000_mtfsf): New pattern.
44801
44802 2014-01-11 Bin Cheng <bin.cheng@arm.com>
44803
44804 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
44805 Start narrowing with START. Apply candidate-use pair
44806 and check overall cost in narrowing.
44807 (iv_ca_prune): Pass new argument.
44808
44809 2014-01-10 Jeff Law <law@redhat.com>
44810
44811 PR middle-end/59743
44812 * ree.c (combine_reaching_defs): Ensure the defining statement
44813 occurs before the extension when optimizing extensions with
44814 different source and destination hard registers.
44815
44816 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
44817
44818 PR ipa/58585
44819 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
44820 vtables into the type inheritance graph.
44821
44822 2014-01-10 Jakub Jelinek <jakub@redhat.com>
44823
44824 PR rtl-optimization/59754
44825 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
44826 modes in the REGNO != REGNO case.
44827
44828 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44829
44830 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
44831
44832 2014-01-10 Jakub Jelinek <jakub@redhat.com>
44833
44834 PR tree-optimization/59745
44835 * tree-predcom.c (tree_predictive_commoning_loop): Call
44836 free_affine_expand_cache if giving up because components is NULL.
44837
44838 * target-globals.c (save_target_globals): Allocate < 4KB structs using
44839 GC in payload of target_globals struct instead of allocating them on
44840 the heap and the larger structs separately using GC.
44841 * target-globals.h (struct target_globals): Make regs, hard_regs,
44842 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
44843 of GTY((skip)) and change type to void *.
44844 (reset_target_globals): Cast loads from those fields to corresponding
44845 types.
44846
44847 2014-01-10 Steve Ellcey <sellcey@mips.com>
44848
44849 PR plugins/59335
44850 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
44851 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
44852 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
44853
44854 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
44855
44856 PR target/59744
44857 * aarch64-modes.def (CC_Zmode): New flags mode.
44858 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
44859 represents an equality.
44860 (aarch64_get_condition_code): Handle CC_Zmode.
44861 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
44862
44863 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
44864
44865 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
44866 extraction in good case.
44867
44868 2014-01-10 Richard Biener <rguenther@suse.de>
44869
44870 PR tree-optimization/59374
44871 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
44872 checking after SLP discovery. Mark stmts not participating
44873 in any SLP instance properly.
44874
44875 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44876
44877 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
44878 when handling a SET rtx.
44879
44880 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44881
44882 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
44883 (cortex-a57): Likewise.
44884 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
44885
44886 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44887
44888 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
44889 non-iwmmxt builtins.
44890
44891 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
44892
44893 PR ipa/58252
44894 PR ipa/59226
44895 * ipa-devirt.c record_target_from_binfo): Take as argument
44896 stack of binfos and lookup matching one for virtual inheritance.
44897 (possible_polymorphic_call_targets_1): Update.
44898
44899 2014-01-10 Huacai Chen <chenhc@lemote.com>
44900
44901 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
44902 kernel strings for Loongson-2E/2F/3A.
44903
44904 2014-01-10 Jakub Jelinek <jakub@redhat.com>
44905
44906 PR middle-end/59670
44907 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
44908 is_gimple_call before calling gimple_call_internal_p.
44909
44910 2014-01-09 Steve Ellcey <sellcey@mips.com>
44911
44912 * Makefile.in (TREE_FLOW_H): Remove.
44913 (TREE_SSA_H): Add file names from tree-flow.h.
44914 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
44915 * tree.h: Remove tree-flow.h reference.
44916 * hash-table.h: Remove tree-flow.h reference.
44917 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
44918 reference with tree-ssa-loop.h.
44919
44920 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44921
44922 * doc/invoke.texi: Add -maltivec={be,le} options, and document
44923 default element-order behavior for -maltivec.
44924 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
44925 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
44926 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
44927 when targeting big endian, at least for now.
44928 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
44929
44930 2014-01-09 Jakub Jelinek <jakub@redhat.com>
44931
44932 PR middle-end/47735
44933 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
44934 var satisfies use_register_for_decl, just take into account type
44935 alignment, rather than decl alignment.
44936
44937 PR tree-optimization/59622
44938 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
44939 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
44940 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
44941 Don't devirtualize for inplace at all. For targets.length () == 1,
44942 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
44943
44944 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
44945
44946 * config/i386/i386.md (cpu): Remove the unused btver1.
44947
44948 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
44949
44950 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
44951
44952 2014-01-09 Jakub Jelinek <jakub@redhat.com>
44953
44954 PR target/58115
44955 * tree-core.h (struct target_globals): New forward declaration.
44956 (struct tree_target_option): Add globals field.
44957 * tree.h (TREE_TARGET_GLOBALS): Define.
44958 (prepare_target_option_nodes_for_pch): New prototype.
44959 * target-globals.h (struct target_globals): Define even if
44960 !SWITCHABLE_TARGET.
44961 * tree.c (prepare_target_option_node_for_pch,
44962 prepare_target_option_nodes_for_pch): New functions.
44963 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
44964 * config/i386/i386.c: Include target-globals.h.
44965 (ix86_set_current_function): Instead of doing target_reinit
44966 unconditionally, use save_target_globals_default_opts and
44967 restore_target_globals.
44968
44969 2014-01-09 Richard Biener <rguenther@suse.de>
44970
44971 PR tree-optimization/59715
44972 * tree-cfg.h (split_critical_edges): Declare.
44973 * tree-cfg.c (split_critical_edges): Export.
44974 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
44975
44976 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
44977
44978 * cfgexpand.c (expand_stack_vars): Optionally disable
44979 asan stack protection.
44980 (expand_used_vars): Likewise.
44981 (partition_stack_vars): Likewise.
44982 * asan.c (asan_emit_stack_protection): Optionally disable
44983 after return stack usage.
44984 (instrument_derefs): Optionally disable memory access instrumentation.
44985 (instrument_builtin_call): Likewise.
44986 (instrument_strlen_call): Likewise.
44987 (asan_protect_global): Optionally disable global variables protection.
44988 * doc/invoke.texi: Added doc for new options.
44989 * params.def: Added new options.
44990 * params.h: Likewise.
44991
44992 2014-01-09 Jakub Jelinek <jakub@redhat.com>
44993
44994 PR rtl-optimization/59724
44995 * ifcvt.c (cond_exec_process_if_block): Don't call
44996 flow_find_head_matching_sequence with 0 longest_match.
44997 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
44998 non-active insns if !stop_after.
44999 (try_head_merge_bb): Revert 2014-01-07 changes.
45000
45001 2014-01-08 Jeff Law <law@redhat.com>
45002
45003 * ree.c (get_sub_rtx): New function, extracted from...
45004 (merge_def_and_ext): Here.
45005 (combine_reaching_defs): Use get_sub_rtx.
45006
45007 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
45008
45009 * cgraph.h (varpool_variable_node): Do not choke on null node.
45010
45011 2014-01-08 Catherine Moore <clm@codesourcery.com>
45012
45013 * config/mips/mips.md (simple_return): Attempt to use JRC
45014 for microMIPS.
45015 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
45016
45017 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
45018
45019 PR rtl-optimization/59137
45020 * reorg.c (steal_delay_list_from_target): Call update_block for
45021 elided insns.
45022 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
45023
45024 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45025
45026 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
45027 two duplicate entries.
45028
45029 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
45030
45031 Revert:
45032 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
45033
45034 * config/mips/mips.c (mips_truncated_op_cost): New function.
45035 (mips_rtx_costs): Adjust test for BADDU.
45036 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
45037
45038 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
45039
45040 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
45041 (*baddu_si): ...this new pattern.
45042
45043 2014-01-08 Jakub Jelinek <jakub@redhat.com>
45044
45045 PR ipa/59722
45046 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
45047
45048 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
45049
45050 PR middle-end/57748
45051 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
45052 inner_reference_p.
45053 (expand_expr, expand_normal): Adjust.
45054 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
45055 inner_reference_p. Use inner_reference_p to expand inner references.
45056 (store_expr): Adjust.
45057 * cfgexpand.c (expand_call_stmt): Adjust.
45058
45059 2014-01-08 Rong Xu <xur@google.com>
45060
45061 * gcov-io.c (gcov_var): Move from gcov-io.h.
45062 (gcov_position): Ditto.
45063 (gcov_is_error): Ditto.
45064 (gcov_rewrite): Ditto.
45065 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
45066 only part to libgcc/libgcov.h.
45067
45068 2014-01-08 Marek Polacek <polacek@redhat.com>
45069
45070 PR middle-end/59669
45071 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
45072
45073 2014-01-08 Marek Polacek <polacek@redhat.com>
45074
45075 PR sanitizer/59667
45076 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
45077
45078 2014-01-08 Jakub Jelinek <jakub@redhat.com>
45079
45080 PR rtl-optimization/59649
45081 * stor-layout.c (get_mode_bounds): For BImode return
45082 0 and STORE_FLAG_VALUE.
45083
45084 2014-01-08 Richard Biener <rguenther@suse.de>
45085
45086 PR middle-end/59630
45087 * gimple.h (is_gimple_builtin_call): Remove.
45088 (gimple_builtin_call_types_compatible_p): New.
45089 (gimple_call_builtin_p): New overload.
45090 * gimple.c (is_gimple_builtin_call): Remove.
45091 (validate_call): Rename to ...
45092 (gimple_builtin_call_types_compatible_p): ... this and export. Also
45093 check return types.
45094 (validate_type): New static function.
45095 (gimple_call_builtin_p): New overload and adjust.
45096 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
45097 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
45098 (gimple_fold_stmt_to_constant_1): Likewise.
45099 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
45100
45101 2014-01-08 Richard Biener <rguenther@suse.de>
45102
45103 PR middle-end/59471
45104 * gimplify.c (gimplify_expr): Gimplify register-register type
45105 VIEW_CONVERT_EXPRs to separate stmts.
45106
45107 2014-01-07 Jeff Law <law@redhat.com>
45108
45109 PR middle-end/53623
45110 * ree.c (combine_set_extension): Handle case where source
45111 and destination registers in an extension insn are different.
45112 (combine_reaching_defs): Allow source and destination registers
45113 in extension to be different under limited circumstances.
45114 (add_removable_extension): Remove restriction that the
45115 source and destination registers in the extension are the same.
45116 (find_and_remove_re): Emit a copy from the extension's
45117 destination to its source after the defining insn if
45118 the source and destination registers are different.
45119
45120 PR middle-end/59285
45121 * ifcvt.c (merge_if_block): If we are merging a block with more than
45122 one successor with a block with no successors, remove any BARRIER
45123 after the second block.
45124
45125 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
45126
45127 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
45128
45129 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
45130
45131 PR target/59652
45132 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
45133 for 14-bit register offsets when INT14_OK_STRICT is false.
45134
45135 2014-01-07 Roland Stigge <stigge@antcom.de>
45136 Michael Meissner <meissner@linux.vnet.ibm.com>
45137
45138 PR 57386/target
45139 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
45140 Only check TFmode for SPE constants. Don't check TImode or TDmode.
45141
45142 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
45143
45144 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
45145 -mcpu.
45146
45147 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
45148
45149 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
45150 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
45151 rtx is const0_rtx or not.
45152
45153 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
45154
45155 PR target/58115
45156 * target-globals.c (save_target_globals): Remove this_fn_optab
45157 handling.
45158 * toplev.c: Include optabs.h.
45159 (target_reinit): Temporarily restore the global options if another
45160 set of options are in force.
45161
45162 2014-01-07 Jakub Jelinek <jakub@redhat.com>
45163
45164 PR rtl-optimization/58668
45165 * cfgcleanup.c (flow_find_cross_jump): Don't count
45166 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
45167 to determine what is counted.
45168 (flow_find_head_matching_sequence): Use active_insn_p to determine
45169 what is counted.
45170 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
45171 counting change.
45172 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
45173 determine what is counted.
45174
45175 PR tree-optimization/59643
45176 * tree-predcom.c (split_data_refs_to_components): If one dr is
45177 read and one write, determine_offset fails and the write isn't
45178 in the bad component, just put the read into the bad component.
45179
45180 2014-01-07 Mike Stump <mikestump@comcast.net>
45181 Jakub Jelinek <jakub@redhat.com>
45182
45183 PR pch/59436
45184 * tree-core.h (struct tree_optimization_option): Change optabs
45185 type from unsigned char * to void *.
45186 * optabs.c (init_tree_optimization_optabs): Adjust
45187 TREE_OPTIMIZATION_OPTABS initialization.
45188
45189 2014-01-06 Jakub Jelinek <jakub@redhat.com>
45190
45191 PR target/59644
45192 * config/i386/i386.h (struct machine_function): Add
45193 no_drap_save_restore field.
45194 * config/i386/i386.c (ix86_save_reg): Use
45195 !cfun->machine->no_drap_save_restore instead of
45196 crtl->stack_realign_needed.
45197 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
45198 this function clears frame_pointer_needed. Set
45199 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
45200 and DRAP reg is needed.
45201
45202 2014-01-06 Marek Polacek <polacek@redhat.com>
45203
45204 PR c/57773
45205 * doc/implement-c.texi: Mention that other integer types are
45206 permitted as bit-field types in strictly conforming mode.
45207
45208 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
45209
45210 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
45211 is newly allocated.
45212
45213 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
45214
45215 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
45216
45217 2014-01-06 Martin Jambor <mjambor@suse.cz>
45218
45219 PR ipa/59008
45220 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
45221 to int.
45222 * ipa-prop.c (ipa_print_node_params): Fix indentation.
45223
45224 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
45225
45226 PR debug/59350
45227 PR debug/59510
45228 * var-tracking.c (add_stores): Preserve the value of the source even if
45229 we don't record the store.
45230
45231 2014-01-06 Terry Guo <terry.guo@arm.com>
45232
45233 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
45234
45235 2014-01-05 Iain Sandoe <iain@codesourcery.com>
45236
45237 PR bootstrap/59541
45238 * config/darwin.c (darwin_function_section): Adjust return values to
45239 correspond to optimisation changes made in r206070.
45240
45241 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
45242
45243 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
45244 from prefetch_block tune setting.
45245 (nocona_cost): Correct size of prefetch block to 64.
45246
45247 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
45248
45249 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
45250 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
45251 used to save the static chain register in the computation of the offset
45252 from which the FP registers need to be restored.
45253
45254 2014-01-04 Jakub Jelinek <jakub@redhat.com>
45255
45256 PR tree-optimization/59519
45257 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
45258 ICE if get_current_def (current_new_name) is already non-NULL, as long
45259 as it is a phi result of some other phi in *new_exit_bb that has
45260 the same argument.
45261
45262 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
45263 or vmovdqu* for misaligned_operand.
45264 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
45265 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
45266 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
45267 aligned_mem for AVX512F masked aligned load and store builtins and for
45268 non-temporal moves.
45269
45270 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
45271
45272 PR tree-optimization/59651
45273 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
45274 Address range for negative step should be added by TYPE_SIZE_UNIT.
45275
45276 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
45277
45278 * config/m68k/m68k.c (handle_move_double): Handle pushes with
45279 overlapping registers also for registers other than the stack pointer.
45280
45281 2014-01-03 Marek Polacek <polacek@redhat.com>
45282
45283 PR other/59661
45284 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
45285 __builtin_FILE.
45286
45287 2014-01-03 Jakub Jelinek <jakub@redhat.com>
45288
45289 PR target/59625
45290 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
45291 asm goto as jump.
45292
45293 * config/i386/i386.md (MODE_SIZE): New mode attribute.
45294 (push splitter): Use <P:MODE_SIZE> instead of
45295 GET_MODE_SIZE (<P:MODE>mode).
45296 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
45297 (mov -1, reg peephole2): Likewise.
45298 * config/i386/sse.md (*mov<mode>_internal,
45299 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
45300 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
45301 *<code><mode>3, *andnot<mode>3<mask_name>,
45302 <mask_codefor><code><mode>3<mask_name>): Likewise.
45303 * config/i386/subst.md (mask_mode512bit_condition,
45304 sd_mask_mode512bit_condition): Likewise.
45305
45306 2014-01-02 Xinliang David Li <davidxl@google.com>
45307
45308 PR tree-optimization/59303
45309 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
45310 (dump_predicates): Better output format.
45311 (pred_equal_p): New function.
45312 (is_neq_relop_p): Ditto.
45313 (is_neq_zero_form_p): Ditto.
45314 (pred_expr_equal_p): Ditto.
45315 (pred_neg_p): Ditto.
45316 (simplify_pred): Ditto.
45317 (simplify_preds_2): Ditto.
45318 (simplify_preds_3): Ditto.
45319 (simplify_preds_4): Ditto.
45320 (simplify_preds): Ditto.
45321 (push_pred): Ditto.
45322 (push_to_worklist): Ditto.
45323 (get_pred_info_from_cmp): Ditto.
45324 (is_degenerated_phi): Ditto.
45325 (normalize_one_pred_1): Ditto.
45326 (normalize_one_pred): Ditto.
45327 (normalize_one_pred_chain): Ditto.
45328 (normalize_preds): Ditto.
45329 (normalize_cond_1): Remove function.
45330 (normalize_cond): Ditto.
45331 (is_gcond_subset_of): Ditto.
45332 (is_subset_of_any): Ditto.
45333 (is_or_set_subset_of): Ditto.
45334 (is_and_set_subset_of): Ditto.
45335 (is_norm_cond_subset_of): Ditto.
45336 (pred_chain_length_cmp): Ditto.
45337 (convert_control_dep_chain_into_preds): Type change.
45338 (find_predicates): Ditto.
45339 (find_def_preds): Ditto.
45340 (destroy_predicates_vecs): Ditto.
45341 (find_matching_predicates_in_rest_chains): Ditto.
45342 (use_pred_not_overlap_with_undef_path_pred): Ditto.
45343 (is_pred_expr_subset): Ditto.
45344 (is_pred_chain_subset_of): Ditto.
45345 (is_included_in): Ditto.
45346 (is_superset_of): Ditto.
45347
45348 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
45349
45350 Update copyright years.
45351
45352 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
45353
45354 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
45355 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
45356 config/arc/arc.md, config/arc/arc.opt,
45357 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
45358 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
45359 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
45360 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
45361 config/linux-protos.h, config/linux.c, config/winnt-c.c,
45362 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
45363 vtable-verify.c, vtable-verify.h: Use the standard form for the
45364 copyright notice.
45365
45366 2014-01-02 Tobias Burnus <burnus@net-b.de>
45367
45368 * gcc.c (process_command): Update copyright notice dates.
45369 * gcov-dump.c: Ditto.
45370 * gcov.c: Ditto.
45371 * doc/cpp.texi: Bump @copying's copyright year.
45372 * doc/cppinternals.texi: Ditto.
45373 * doc/gcc.texi: Ditto.
45374 * doc/gccint.texi: Ditto.
45375 * doc/gcov.texi: Ditto.
45376 * doc/install.texi: Ditto.
45377 * doc/invoke.texi: Ditto.
45378
45379 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
45380
45381 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
45382
45383 2014-01-01 Jakub Jelinek <jakub@redhat.com>
45384
45385 * config/i386/sse.md (*mov<mode>_internal): Guard
45386 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
45387
45388 PR rtl-optimization/59647
45389 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
45390 new_rtx into UNSIGNED_FLOAT rtxes.
45391 \f
45392 Copyright (C) 2014 Free Software Foundation, Inc.
45393
45394 Copying and distribution of this file, with or without modification,
45395 are permitted in any medium without royalty provided the copyright
45396 notice and this notice are preserved.