don't ICE when section attribute is used on things in comdats
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
2
3         * symtab.c (symtab_node::verify): Check for section attribute before
4         asserting something isn't in a section and a comdat group.
5
6 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
7
8         PR target/50751
9         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
10
11 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
12
13         * compare-elim.c: Fix head comment.
14         (conforming_compare): Remove redundant test.
15         (can_eliminate_compare): New function extracted from...
16         (before_dom_children): ...here.  Use it, replace direct uses of
17         flag_non_call_exceptions and tidy up.
18         (maybe_select_cc_mode): Tidy up.
19
20 2014-12-07  Felix Yang  <felix.yang@huawei.com>
21             Shanyao Chen  <chenshanyao@huawei.com>
22
23         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
24         patterns.
25         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
26         builtins.
27         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
28         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
29         vcntq_u8): Rewrite using builtin functions.
30
31 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
32
33         * symtab.c (symtab_node::equal_address_to): New function.
34         * cgraph.h (symtab_node::equal_address_to): Declare.
35         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
36         * c-family/c-common.c: Refuse weaks for symbols that can not change
37         visibility.
38
39 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
40
41         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
42
43 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
44             Sebastian Pop  <s.pop@samsung.com>
45             Brian Rzycki  <b.rzycki@samsung.com>
46
47         PR tree-optimization/54742
48         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
49         max-fsm-thread-paths): New.
50
51         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
52         max-fsm-thread-paths): Documented.
53
54         * tree-cfg.c (split_edge_bb_loc): Export.
55         * tree-cfg.h (split_edge_bb_loc): Declared extern.
56
57         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
58         original value of cond when simplification fails.
59         (fsm_find_thread_path): New.
60         (fsm_find_control_statement_thread_paths): New.
61         (thread_through_normal_block): Call find_control_statement_thread_paths.
62
63         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
64         EDGE_FSM_THREAD.
65         (verify_seme): New.
66         (duplicate_seme_region): New.
67         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
68         calling duplicate_seme_region.
69
70         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
71
72 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
73
74         PR target/64200
75         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
76         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
77
78 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
79
80         PR sanitizer/64170
81         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
82         non-NULL, call maybe_get_dominating_check on it even if g is
83         non-NULL.
84
85 2014-12-05  Jeff Law  <law@redhat.com>
86
87         * doc/md.texi: Note problems using function calls to determine
88         insn lengths and point readers to a potential workaround.
89
90 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
91
92         * combine.c (is_parallel_of_n_reg_sets)
93         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
94
95 2014-12-05  Andrew Pinski  <apinski@cavium.com>
96
97         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
98         than CF10 so 2 is appended on the code.
99         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
100         (bswap<mode>2): This so it matches for the optabs.
101
102 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
103
104         * regrename.c (find_best_rename_reg): Rename to ...
105         (find_rename_reg): This. Also add a parameter to skip tick check.
106         * regrename.h: Likewise.
107         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
108
109 2014-12-05  Martin Jambor  <mjambor@suse.cz>
110
111         PR ipa/64192
112         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
113         from bits to bytes after checking they are byte-aligned.
114
115 2014-12-05  Renlin Li  <renlin.li@arm.com>
116
117         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
118         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
119         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
120         IDENT to SCHED.
121
122 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
123
124         * config/aarch64/aarch64.md (load_pair<mode>): Split to
125         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
126         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
127         from load_pair<mode>.  New alternative to support int/fp
128         registers in fp/int mode patterns.
129         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
130         store_pairsf and store_pairdi.
131         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
132         from store_pair<mode>.  New alternative to support int/fp
133         registers in fp/int mode patterns.
134         (*load_pair_extendsidi2_aarch64): New pattern.
135         (*load_pair_zero_extendsidi2_aarch64): New pattern.
136         (aarch64-ldpstp.md): Include.
137         * config/aarch64/aarch64-ldpstp.md: New file.
138         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
139         New.
140         (extract_base_offset_in_addr): New.
141         (aarch64_operands_ok_for_ldpstp): New.
142         (aarch64_operands_adjust_ok_for_ldpstp): New.
143         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
144         (TARGET_SCHED_FUSION_PRIORITY): New hook.
145         (fusion_load_store): New functon.
146         (extract_base_offset_in_addr): New function.
147         (aarch64_gen_adjusted_ldpstp): New function.
148         (aarch64_sched_fusion_priority): New function.
149         (aarch64_operands_ok_for_ldpstp): New function.
150         (aarch64_operands_adjust_ok_for_ldpstp): New function.
151
152 2014-12-05  Olivier Hainque  <hainque@adacore.com>
153
154         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
155         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
156         DWARF_REG_TO_UNWIND_COLUMN.
157
158 2014-12-05  Olivier Hainque  <hainque@adacore.com>
159
160         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
161         one particular reg for expand_builtin_init_dwarf_reg_sizes.
162         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
163         account for dwarf register spans.
164
165 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
166
167         PR target/64003
168         * config/i386/i386.md (*jcc_1_bnd): New.
169         (*jcc_2_bnd): New.
170         (jump_bnd): New.
171         (*jcc_1): Remove bnd prefix.
172         (*jcc_2): Likewise.
173         (jump): Likewise.
174
175 2014-12-05  Renlin Li  <renlin.li@arm.com>
176
177         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
178         selected_tune.
179         (aarch64_override_options): Use selected_cpu's tuning.
180
181 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
182
183         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
184         alignment to section name. Increase default alignment to word.
185
186 2014-12-05  Martin Jambor  <mjambor@suse.cz>
187
188         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
189         (cgraph_edge): New method redirect_callee_duplicating_thunks.
190         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
191         created thunks.
192         (redirect_edge_duplicating_thunks): Turned into edge method
193         redirect_callee_duplicating_thunks.
194         (cgraph_node::expand_all_artificial_thunks): New method.
195         (create_clone): Call expand_all_artificial_thunks.
196         * ipa-cp.c (perhaps_add_new_callers): Call
197         redirect_callee_duplicating_thunks instead of redirect_callee.
198         Also call expand_all_artificial_thunks.
199
200 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
201
202         PR target/64056
203         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
204
205 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
206
207         * diagnostic.h (diagnostic_expand_location): New inline function.
208         * diagnostic.c (diagnostic_build_prefix): Use it.
209         (diagnostic_show_locus): Likewise.
210
211 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
212
213         PR bootstrap/64189
214         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
215         * configure: Regenerated.
216
217 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
218
219         * diagnostic.c (diagnostic_color_init): New.
220         * diagnostic.h: Declare.
221         * gcc.c (driver::global_initializations): Use it.
222         (driver_handle_option): Handle -fdiagnostics-color_.
223         * toplev.c: Do not include diagnostic-color.h.
224         (process_options): Do not initialize color diagnostics here.
225         * common.opt (fdiagnostics-color=): Add Driver.
226         * opts-global.c (init_options_once): Initialize color here.
227         * opts.c (common_handle_option): Use diagnostics_color_init.
228         * diagnostic-color.h: Fix comment.
229
230 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
231
232         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
233         (NIY): Likewise.
234         (buffer): Rename this variable to...
235         (tree_pp): ...this.
236
237         (do_niy): Rename param from "buffer" to "pp".
238         (dump_decl_name): Likewise.
239         (dump_function_name): Likewise.
240         (dump_function_declaration): Likewise.
241         (dump_array_domain): Likewise.
242         (dump_omp_clause): Likewise.
243         (dump_omp_clauses): Likewise.
244         (dump_location): Likewise.
245         (dump_block_node): Likewise.
246         (dump_generic_node): Likewise.
247         (print_declaration): Likewise.
248         (print_struct_decl): Likewise.
249         (print_call_name): Likewise.
250         (pretty_print_string): Likewise.
251         (newline_and_indent): Likewise.
252
253         (print_generic_decl): Update for renaming of "buffer" to
254         "tree_pp".
255         (print_generic_stmt): Likewise.
256         (print_generic_stmt_indented): Likewise.
257         (print_generic_expr): Likewise.
258         (maybe_init_pretty_print): Likewise.
259
260 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
261
262         PR jit/63854
263         * tree-pretty-print.c: Eliminate include of <new>.
264         (buffer): Convert this variable from a pretty_printer to a
265         pretty_printer *.
266         (initialized): Eliminate this variable in favor of the NULL-ness
267         of "buffer".
268         (print_generic_decl): Update for "buffer" becoming a pointer.
269         (print_generic_stmt): Likewise.
270         (print_generic_stmt_indented): Likewise.
271         (print_generic_expr): Likewise.
272         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
273         heap and using its non-NULL-ness to ensure idempotency.
274
275 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
276
277         PR jit/63854
278         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
279         ipa_add_new_function on function_insertion_hook_holder being
280         non-NULL.
281         * ipa-reference.c (ipa_reference_c_finalize): Remove
282         node_removal_hook_holder and node_duplication_hook_holder if
283         they've been added to symtab.
284         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
285         before cgraph_c_finalize so that the former can access "symtab".
286
287 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
288
289         * doc/cfg.texi (GIMPLE statement iterators): Add note about
290         gphi_iterator, and use one in the example.
291         * doc/gimple.texi (Tuple specific accessors): Add missing
292         GIMPLE_GOTO section and menu item.
293         (gimple_build_asm, gimple gimple_build_assign_with_ops)
294         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
295         description of removed functions.
296         (gimple_build_assign, gimple_build_bind, gimple_build_call,
297         gimple_build_call_from_tree, gimple_build_call_vec,
298         gimple_build_catch, gimple_build_cond,
299         gimple_build_cond_from_tree, gimple_build_debug_bind,
300         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
301         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
302         gimple_build_omp_continue, gimple_build_omp_critical,
303         gimple_build_omp_for, gimple_build_omp_parallel,
304         gimple_build_omp_sections, gimple_build_omp_single,
305         gimple_build_return, gimple_build_resx, gimple_build_switch,
306         gimple_build_try): Update return type within description to
307         reflect changes in gimple.h to using gimple subclasses.
308         (gimple_build_asm_vec): Update return type, params and
309         description.
310         (gimple_asm_ninputs): Update param.
311         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
312         gimple_asm_set_input_op, gimple_asm_output_op
313         gimple_asm_set_output_op, gimple_asm_clobber_op,
314         gimple_asm_set_clobber_op, gimple_asm_string,
315         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
316         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
317         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
318         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
319         gimple_call_return_type, gimple_call_set_chain,
320         gimple_call_set_tail, gimple_call_tail_p,
321         gimple_call_copy_skip_args, gimple_catch_types,
322         gimple_catch_types_ptr, gimple_catch_handler,
323         gimple_catch_set_types, gimple_catch_set_handler,
324         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
325         gimple_cond_true_label, gimple_cond_set_true_label,
326         gimple_cond_set_false_label, gimple_cond_false_label,
327         gimple_cond_make_false, gimple_cond_make_true,
328         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
329         gimple_eh_must_not_throw_fndecl,
330         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
331         gimple_label_set_label, gimple_goto_set_dest,
332         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
333         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
334         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
335         gimple_omp_continue_control_def,
336         gimple_omp_continue_control_def_ptr,
337         gimple_omp_continue_set_control_def,
338         gimple_omp_continue_control_use,
339         gimple_omp_continue_control_use_ptr,
340         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
341         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
342         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
343         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
344         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
345         gimple_omp_parallel_data_arg_ptr,
346         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
347         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
348         gimple_resx_set_region, gimple_return_retval,
349         gimple_return_set_retval, gimple_switch_num_labels,
350         gimple_switch_set_num_labels, gimple_switch_index,
351         gimple_switch_set_index, gimple_switch_label,
352         gimple_switch_set_label, gimple_switch_default_label,
353         gimple_switch_set_default_label, gimple_try_set_eval,
354         gimple_try_set_cleanup): Update initial param within description
355         to reflect changes in gimple.h to using gimple subclasses.
356         (Adding a new GIMPLE statement code): Update to reflect gimple
357         statement subclassing.
358
359 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
360             H.J. Lu  <hongjiu.lu@intel.com>
361
362         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
363         Linux/x86-64 linker supports PIE with copy reloc.
364         * config.in: Regenerated.
365         * configure: Likewise.
366
367         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
368         pc-relative address for undefined, non-weak, non-function
369         symbol reference in 64-bit PIE if linker supports PIE with
370         copy reloc.
371
372         * doc/sourcebuild.texi: Document pie_copyreloc target.
373
374 2014-12-04  Marek Polacek  <polacek@redhat.com>
375
376         PR middle-end/56917
377         * fold-const.c (fold_unary_loc): Perform the negation in A's type
378         when transforming ~ (A - 1) or ~ (A + -1) to -A.
379
380 2014-12-04  Tobias Burnus  <burnus@net-b.de>
381
382         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
383
384 2014-12-04  Richard Biener  <rguenther@suse.de>
385
386         * doc/match-and-simplify.texi: Update for recent changes.
387
388 2014-12-04  Martin Jambor  <mjambor@suse.cz>
389
390         * ipa-prop.h (ipa_alignment): New type.
391         (ipa_jump_func): New field alignment.
392         (ipcp_transformation_summary) New type.
393         (ipcp_grow_transformations_if_necessary): Declare.
394         (ipa_node_agg_replacements): Removed.
395         (ipcp_transformations): Declare.
396         (ipcp_get_transformation_summary): New function.
397         (ipa_get_agg_replacements_for_node): Use it.
398         * ipa-cp.c (ipcp_param_lattices): New field alignment.
399         (print_all_lattices): Also print alignment.
400         (alignment_bottom_p): New function.
401         (set_alignment_to_bottom): Likewise.
402         (set_all_contains_variable): Also set alignment to bottom.
403         (initialize_node_lattices): Likewise.
404         (propagate_alignment_accross_jump_function): New function.
405         (propagate_constants_accross_call): Call it.
406         (ipcp_store_alignment_results): New function.
407         (ipcp_driver): Call it.
408         * ipa-prop.c (ipa_node_agg_replacements): Removed.
409         (ipcp_transformations): New.
410         (ipa_print_node_jump_functions_for_edge): Also print alignment.
411         (ipa_set_jf_unknown): New function.
412         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
413         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
414         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
415         (ipcp_grow_transformations_if_necessary): New function.
416         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
417         (ipa_node_removal_hook): Likewise.
418         (ipa_node_duplication_hook): Also duplicate alignment results.
419         (ipa_write_jump_function): Also stream alignments.
420         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
421         alignments.
422         (write_agg_replacement_chain): Renamed to
423         write_ipcp_transformation_info, also stream alignments.
424         (read_agg_replacement_chain): Renamed to
425         read_ipcp_transformation_info, also stream alignments.
426         (ipa_prop_write_all_agg_replacement): Renamed to
427         ipcp_write_transformation_summaries. Stream always.
428         (ipa_prop_read_all_agg_replacement): Renamed to
429         ipcp_read_transformation_summaries.
430         (ipcp_update_alignments): New function.
431         (ipcp_transform_function): Call it, free also alignments.
432
433 2014-12-04  Richard Biener  <rguenther@suse.de>
434
435         * gimple-fold.c (replace_stmt_with_simplification): Properly
436         fail when maybe_push_res_to_seq fails.
437
438 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
439
440         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
441
442 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
443
444         * doc/install.texi: Remove mentions of cloog and ppl.
445         * doc/invoke.texi: Likewise
446
447 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
448
449         PR c++/56493
450         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
451         Handle COMPOUND_EXPR.
452
453 2014-12-04  Richard Biener  <rguenther@suse.de>
454
455         * builtins.c (target_newline): Export.
456         (target_percent_s_newline): Likewise.
457         (fold_builtin_1): Do not fold printf functions here.
458         (fold_builtin_2): Likewise.
459         (fold_builtin_3): Likewise, do not fold strncat.
460         (fold_builtin_strncat): Move to gimple-fold.c.
461         (fold_builtin_printf): Likewise.
462         * builtins.h (target_newline): Declare.
463         (target_percent_s_newline): Likewise.
464         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
465         builtins.c and gimplify.
466         (gimple_fold_builtin_printf): Likewise.
467         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
468         vprintf, printf_chk and vprintf_chk here.
469
470 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
471
472         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
473         (floatunssidf2_internal): Same.
474         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
475         (rs6000_emit_int_cmove): Same.
476         (rs6000_sched_reorder): Same.
477         (altivec_expand_vec_perm_const): Same.
478         (rs6000_expand_vec_perm_const_1): Same.
479
480 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
481
482         PR rtl-optimization/64010
483         * reload.c (push_reload): Before reusing a register contained
484         in an operand as input reload register, ensure that it is not
485         used in CALL_INSN_FUNCTION_USAGE.
486
487 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
488
489         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
490         if it exists.
491
492 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
493
494         * expmed.c (expand_mult): Use std::swap.
495
496         PR c/59708
497         * expmed.c (expand_widening_mult): Return const0_rtx if
498         coeff is 0.
499
500         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
501         (gimple_build_assign): Document the new overloads.
502
503 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
504
505         PR target/64019
506         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
507         not create LO_SUM address for constant addresses if the type can
508         go in Altivec registers.
509
510 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
511
512         PR fortran/44054
513         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
514         (pp_flush): Flush only if flush_p.
515         (pp_really_flush): New.
516         * pretty-print.h (struct output_buffer): Add flush_p.
517         (pp_really_flush): Declare.
518
519 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
520
521         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
522         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
523         (GENGTYPE_OBJS): New.
524         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
525         Remove explicit dependencies.
526         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
527         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
528         instead of -DGENERATOR_FILE.
529         (CFLAGS-errors.o): New.
530         * gengtype.c: Instead of testing GENERATOR_FILE define, test
531         HOST_GENERATOR_FILE.  If defined, include config.h and define
532         GENERATOR_FILE afterwards, otherwise include bconfig.h.
533         * gengtype-parse.c: Likewise.
534         * gengtype-state.c: Likewise.
535         * gengtype-lex.l: Likewise.
536         * errors.c: Likewise.
537
538 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
539
540         * config/epiphany/epiphany.c (epiphany_override_options):
541         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
542         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
543         reverse_condition_maybe_unordered if flag_finite_math_only is set.
544
545 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
546
547         Revert:
548
549         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
550         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
551         when architecture is older than ARMv7.
552
553 2014-12-03  Richard Biener  <rguenther@suse.de>
554
555         * builtins.c (target_percent_c): Export.
556         (fold_builtin_fprintf): Move to gimple-fold.c.
557         (fold_builtin_2): Do not fold fprintf functions.
558         (fold_builtin_3): Likewise.
559         (fold_builtin_4): Remove.
560         (fold_builtin_n): Do not call fold_builtin_4.
561         * builtins.h (target_percent_c): Declare.
562         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
563         builtins.c and gimplify.
564         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
565         fprintf_chk and vfprintf_chk here.
566
567 2014-12-03  Martin Jambor  <mjambor@suse.cz>
568
569         PR ipa/64153
570         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
571         type sizes before view_converting.
572
573 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
574
575         PR rtl-optimization/64151
576         PR rtl-optimization/64156
577         * ira-costs.c (scan_one_insn): Revert r218266.
578
579 2014-12-03  Richard Biener  <rguenther@suse.de>
580
581         * builtins.c (fold_builtin_fpclassify): Change to take
582         array of arguments instead of CALL_EXPR tree.
583         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
584         (fold_builtin_n): Dispatch to fold_builtin_varargs.
585         (fold_call_expr): Always use fold_builtin_n.
586         (fold_builtin_call_array): Change to not build the unfolded call,
587         always use fold_builtin_n.
588         (fold_builtin_varargs): Change to take array of arguments instead
589         of CALL_EXPR tree.
590         (fold_call_stmt): Always use fold_builtin_n.
591         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
592         * fold-const.c (fold_build_call_array_loc): Build the call
593         if fold_builtin_call_array returned NULL_TREE.
594         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
595         a CALL_EXPR and use fold_builtin_call_array instead of
596         fold_call_expr.
597
598 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
599
600         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
601         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
602         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
603         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
604         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
605         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
606         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
607         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
608         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
609         Change VDQ to VDQ_I.
610
611         (mul<mode>3): Change VDQM to VDQ_BHSI.
612         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
613         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
614         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
615         
616         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
617         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
618         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
619         Change VDW to VD_BHSI.
620         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
621         Change VDIC to VD_BHSI.
622
623         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
624         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
625         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
626
627         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
628         VDIC, VDQQHS): Remove.
629         (Vwtype): Update comment (changing VDW to VD_BHSI).
630
631 2014-12-03  Richard Biener  <rguenther@suse.de>
632
633         PR middle-end/14541
634         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
635         * match.pd: ... here as patterns.
636
637 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
638
639         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
640         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
641         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
642         reservation order.
643
644 2014-12-03  Tom de Vries  <tom@codesourcery.com>
645
646         PR rtl-optimization/63957
647         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
648         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
649         flag_ipa_ra.
650         (get_call_reg_set_usage): Same.
651         * lra-assigns.c (lra_assign): Same.
652         * lra-constraints.c (need_for_call_save_p): Same.
653         * lra-lives.c (process_bb_lives): Same.
654         * lra.c (lra): Same.
655         * calls.c (expand_call): Same.
656         (emit_library_call_value_1): Same.
657         * config/arm/arm.c (arm_option_override): Same.
658         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
659         OPT_fipa_ra.
660         * target.def (call_fusage_contains_non_callee_clobbers): Replace
661         fuse-caller-save with fipa-ra.
662         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
663         * common.opt: Same.
664
665 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
666
667         * sanopt.c (maybe_get_single_definition): New function.
668         (maybe_get_dominating_check): Ditto.
669         (can_remove_asan_check): Ditto.
670         (struct tree_map_traits): New struct.
671         (struct sanopt_ctx): Use custom traits for asan_check_map.
672         (maybe_optimize_ubsan_null_ifn): Move code to
673         maybe_get_dominating_check.
674         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
675         into account when optimizing.
676         (sanopt_optimize_walker): Optimize ASan checks even when
677         recovering.
678
679 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
680
681         * config/i386/constraints.md (Yr): New.
682         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
683         (REG_CLASS_NAMES): Likewise.
684         (REG_CLASS_CONTENTS): Likewise.
685         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
686         which use only NO_REX_SSE_REGS.
687         (vec_set<mode>_0): Likewise.
688         (*vec_setv4sf_sse4_1): Likewise.
689         (sse4_1_insertps): Likewise.
690         (*sse4_1_extractps): Likewise.
691         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
692         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
693         (*sse4_1_<code><mode>3<mask_name>): Likewise.
694         (*sse4_1_<code><mode>3): Likewise.
695         (*sse4_1_eqv2di3): Likewise.
696         (sse4_2_gtv2di3): Likewise.
697         (*vec_extractv4si): Likewise.
698         (*vec_concatv2si_sse4_1): Likewise.
699         (vec_concatv2di): Likewise.
700         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
701         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
702         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
703         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
704         (<sse4_1_avx2>_mpsadbw): Likewise.
705         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
706         (<sse4_1_avx2>_pblendvb): Likewise.
707         (sse4_1_pblendw): Likewise.
708         (sse4_1_phminposuw): Likewise.
709         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
710         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
711         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
712         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
713         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
714         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
715         (sse4_1_ptest): Likewise.
716         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
717         (sse4_1_round<ssescalarmodesuffix>): Likewise.
718         * config/i386/subst.md (mask_prefix4): New.
719         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
720
721 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
722
723         PR rtl-optimization/52714
724         * combine.c (try_combine): Allow combining two insns into two
725         new insns if at least one of those is a noop.
726
727 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
728
729         * target.def (fusion_priority): Wrap code with @smallexample.
730         * doc/tm.texi: Regenerated.
731
732 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
733
734         * diagnostic.c (diagnostic_show_locus): Honor override_column when
735         placing the caret.
736
737 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
738
739         * asan.c: (asan_finish_file): Use default priority for constructors
740         in kernel mode.
741
742 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
743
744         PR target/64115
745         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
746         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
747
748 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
749
750         PR target/64108
751         * config/i386/i386.c (decide_alg): Stop only if there aren't
752         any usable algorithms.
753
754 2014-12-02  Tom de Vries  <tom@codesourcery.com>
755
756         PR rtl-optimization/63718
757         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
758         Thumb1.
759
760 2014-12-02  Richard Biener  <rguenther@suse.de>
761
762         * match.pd: When combining divisions exclude the degenerate
763         case involving INT_MIN from overflow handling.
764
765 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
766
767         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
768
769 2014-12-02  Martin Jambor  <mjambor@suse.cz>
770
771         PR ipa/63814
772         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
773         (cgraph_edge_brings_value_p): New parameter dest, use
774         same_node_or_its_all_contexts_clone_p and check availability.
775         (cgraph_edge_brings_value_p): Likewise.
776         (get_info_about_necessary_edges): New parameter dest, pass it to
777         cgraph_edge_brings_value_p.  Update caller.
778         (gather_edges_for_value): Likewise.
779         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
780         both the destination and availability.
781
782 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
783
784         PR target/64113
785         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
786         using post-reload splitter.  Use peephole2 pass instead.
787         (call_value_osf_tlsldm): Ditto.
788         (TLS_CALL): New int iterator.
789         (tls): New int attribute.
790         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
791         and call_value_tlsldm using TLS_CALL int iterator.
792
793 2014-12-02  Richard Biener  <rguenther@suse.de>
794             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
795
796         * genmatch.c: Include hash-set.h.
797         (fatal_at): Add source_location overload.
798         (parser::record_operlist): New method.
799         (parser::push_simplify): Likewise.
800         (parser::oper_lists_set): New member.
801         (parser::oper_lists): Likewise.
802         (parser::parse_operation): Record seen operator list references.
803         (parser::parse_c_expr): Likewise.
804         (parser::parse_simplify): Init oper_lists_set and oper_lists
805         and use push_simplify.
806         (parser::parser): Init oper_lists_set and oper_lists.
807
808 2014-12-02  Richard Biener  <rguenther@suse.de>
809
810         * match.pd: Restrict division combining to trunc_div and
811         exact_div.
812
813 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
814
815         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
816         Remove NULL last argument from create_tmp_var calls.
817         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
818         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
819         * config/i386/i386.c (add_condition_to_bb,
820         ix86_atomic_assign_expand_fenv): Likewise.
821         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
822         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
823         * config/aarch64/aarch64-builtins.c
824         (aarch64_atomic_assign_expand_fenv): Likewise.
825         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
826         Likewise.
827         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
828         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
829         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
830
831         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
832         gimple_build_assign instead of gimple_build_assign_with_ops and swap
833         the order of first two arguments.
834         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
835         Likewise.  Remove last NULL_TREE argument.
836
837 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
838
839         PR rtl-optimization/59278
840         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
841
842 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
843
844         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
845
846 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
847
848         * combine.c (is_parallel_of_n_reg_sets): New function.
849         (can_split_parallel_of_n_reg_sets): New function.
850         (try_combine): If I2 is a PARALLEL of two SETs, split it into
851         two insns if possible.
852
853 2014-12-01  Tobias Burnus  <burnus@net-b.de>
854             Jack Howarth  <howarth@bromo.med.uc.edu>
855
856         PR middle-end/64017
857         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
858         New check.
859         * doc/install.texi (ISL): Permit ISL 0.14.
860         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
861         Conditionally use ISL 0.13+ functions.
862         * graphite-interchange.c: Make 'extern "C"' conditional.
863         * graphite-isl-ast-to-gimple.c: Ditto.
864         * graphite-poly.c: Ditto.
865         * graphite-sese-to-poly.c: Ditto.
866         * config.in: Regenerate.
867         * gcc/configure: Regenerate.
868
869 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
870
871         * combine.c (distribute_links): Handle multiple SETs.
872
873 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
874
875         * combine.c (struct insn_link): New field `regno'.
876         (alloc_insn_link): New parameter `regno'.  Use it.
877         (find_single_use): Check the new field.
878         (can_combine_def_p, can_combine_use_p): New functions.  Split
879         off from ...
880         (create_log_links): ... here.  Correct data type of `regno'.
881         Adjust call to alloc_insn_link.
882         (adjust_for_new_dest): Find regno, use it in call to
883         alloc_insn_link.
884         (try_combine): Check reg_used_between_p when combining a PARALLEL
885         as earlier insn.  Adjust call to alloc_insn_link.
886         (distribute_links): Check the new field.
887
888 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
889
890         PR jit/63854
891         * real.c (real_from_string): Add missing mpfr_clear.
892
893 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
894
895         PR jit/63854
896         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
897         release of stmts by converting it to an auto_vec.
898
899 2014-12-01  Richard Biener  <rguenther@suse.de>
900
901         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
902         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
903         bootstrap with old GCC.
904         (generic-match.o-warn): Likewise.
905
906 2014-12-01  Richard Biener  <rguenther@suse.de>
907
908         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
909         Properly handle FIXED_CST shifts by INTEGER_CST.
910         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
911         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
912         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
913         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
914         (fold_binary_loc): ... here.  Call const_binop overload
915         with result type.
916
917 2014-12-01  Marek Polacek  <polacek@redhat.com>
918             Jakub Jelinek  <jakub@redhat.com>
919
920         PR sanitizer/64121
921         * ubsan.c (instrument_object_size): Stop searching if the base
922         occurs in abnormal phi.
923
924 2014-12-01  Marek Polacek  <polacek@redhat.com>
925
926         PR sanitizer/63956
927         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
928
929 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
930
931         * gimple.h (gimple_build_assign_stat): Remove prototype.
932         (gimple_build_assign): Remove define.  Add overload prototypes
933         with tree lhs and either a tree rhs, or enum tree_code and
934         1, 2 or 3 tree operands.
935         * gimple.c (gimple_build_assign_stat): Renamed to...
936         (gimple_build_assign): ... this.  Add overloads with
937         enum tree_code and 1, 2 or 3 tree operands.
938         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
939         Rename the 3 operand overload to ...
940         (gimple_build_assign_1): ... this.  Make it static inline.
941         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
942         instead of gimple_build_assign_with_ops, swap the order of first
943         two arguments and adjust formatting where necessary.
944         * tree-vect-slp.c (vect_get_constant_vectors,
945         vect_create_mask_and_perm): Likewise.
946         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
947         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
948         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
949         * tsan.c (instrument_builtin_call): Likewise.
950         * tree-chkp.c (chkp_compute_bounds_for_assignment,
951         chkp_generate_extern_var_bounds): Likewise.
952         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
953         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
954         * gimple-builder.c (build_assign, build_type_cast): Likewise.
955         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
956         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
957         gimple_mod_subtract): Likewise.
958         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
959         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
960         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
961         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
962         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
963         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
964         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
965         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
966         adjust_bool_pattern_cast, adjust_bool_pattern,
967         vect_recog_bool_pattern): Likewise.
968         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
969         insert_initializers, introduce_cast_before_cand,
970         replace_one_candidate): Likewise.
971         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
972         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
973         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
974         Likewise.
975         * tree-tailcall.c (adjust_return_value_with_ops,
976         update_accumulator_with_ops): Likewise.
977         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
978         * tree-ssa-reassoc.c (build_and_add_sum,
979         optimize_range_tests_to_bit_test, update_ops,
980         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
981         negate_value, repropagate_negates, attempt_builtin_powi,
982         reassociate_bb): Likewise.
983         * tree-vect-loop.c (vect_is_simple_reduction_1,
984         get_initial_def_for_induction, vect_create_epilog_for_reduction):
985         Likewise.
986         * ipa-split.c (split_function): Likewise.
987         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
988         abs_replacement, neg_replacement): Likewise.
989         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
990         * tree-vrp.c (simplify_truth_ops_using_ranges,
991         simplify_float_conversion_using_ranges,
992         simplify_internal_call_using_ranges): Likewise.
993         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
994         * tree-vect-generic.c (expand_vector_divmod,
995         optimize_vector_constructor): Likewise.
996         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
997         instrument_bool_enum_load): Likewise.
998         * tree-ssa-loop-manip.c (create_iv): Likewise.
999         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
1000         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
1001         expand_cilk_for, simd_clone_adjust): Likewise.
1002         * trans-mem.c (expand_transaction): Likewise.
1003         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
1004         vect_setup_realignment, vect_permute_load_chain,
1005         vect_shift_permute_load_chain): Likewise.
1006         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1007         vectorizable_simd_clone_call, vect_gen_widened_results_half,
1008         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
1009         vectorizable_shift, vectorizable_operation, vectorizable_store,
1010         permute_vec_elements, vectorizable_load): Likewise.
1011
1012 2014-12-01  Richard Biener  <rguenther@suse.de>
1013
1014         PR middle-end/64111
1015         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
1016         htab_hash_pointer to not break PCH.
1017
1018 2014-12-01  Richard Biener  <rguenther@suse.de>
1019
1020         PR tree-optimization/15346
1021         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
1022         add -Wno-unused-but-set-variable.
1023         * match.pd: Combine two successive divisions.
1024
1025 2014-12-01  Richard Biener  <rguenther@suse.de>
1026
1027         PR middle-end/64126
1028         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
1029         and -1 - A -> ~A.
1030         * fold-const.c (fold_binary_loc): Remove transforms here.
1031
1032 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
1033
1034         * config/mips/mips.c (mips16_build_call_stub): Move the save of
1035         the return address in $18 ahead of passing arguments to FPRs.
1036
1037 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
1038
1039         PR target/64055
1040         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
1041         values in array domain.
1042
1043 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
1044
1045         PR tree-optimization/63941
1046         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
1047         DOM_BB has non-true predicate, conditionally set non-true predicate
1048         for BB.
1049
1050 2014-12-01  Martin Jambor  <mjambor@suse.cz>
1051
1052         PR ipa/63551
1053         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1054         value of the argument to the type of the value in the condition.
1055
1056 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
1057
1058         PR target/63986
1059         PR target/51244
1060         * config/sh/sh.c (sh_unspec_insn_p,
1061         sh_insn_operands_modified_between_p): New functions.
1062         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
1063         are modified or if it has side effects, may trap or is volatile.
1064
1065 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
1066
1067         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
1068         create_tmp_reg): Add default NULL value to last argument.
1069         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
1070         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
1071         last argument from create_tmp_var_raw, create_tmp_var,
1072         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
1073         * tree-ssa-strlen.c (get_string_length): Likewise.
1074         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
1075         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1076         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1077         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1078         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1079         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
1080         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1081         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1082         * tsan.c (instrument_expr, instrument_builtin_call,
1083         instrument_func_entry): Likewise.
1084         * varpool.c (add_new_static_var): Likewise.
1085         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1086         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
1087         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
1088         gimplify_init_ctor_eval_range, gimplify_init_constructor,
1089         gimplify_omp_atomic, gimplify_expr): Likewise.
1090         * gimple-builder.c (build_assign, build_type_cast): Likewise.
1091         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
1092         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
1093         vect_loop_versioning): Likewise.
1094         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
1095         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1096         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
1097         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
1098         vect_recog_over_widening_pattern): Likewise.
1099         * tree-sra.c (build_ref_for_offset, create_access_replacement):
1100         Likewise.
1101         * tree-cfg.c (make_blocks): Likewise.
1102         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
1103         Likewise.
1104         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
1105         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
1106         Likewise.
1107         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
1108         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
1109         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
1110         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
1111         * tree-ssa-reassoc.c (build_and_add_sum,
1112         optimize_range_tests_to_bit_test, update_ops,
1113         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1114         negate_value, repropagate_negates): Likewise.
1115         * tree-vect-loop.c (vect_is_simple_reduction_1,
1116         vect_create_epilog_for_reduction): Likewise.
1117         * ipa-split.c (split_function): Likewise.
1118         * tree-inline.c (remap_ssa_name, setup_one_parameter,
1119         declare_return_variable, tree_function_versioning): Likewise.
1120         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
1121         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
1122         Likewise.
1123         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
1124         neg_replacement): Likewise.
1125         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
1126         Likewise.
1127         * tree-vrp.c (simplify_truth_ops_using_ranges,
1128         simplify_float_conversion_using_ranges,
1129         simplify_internal_call_using_ranges): Likewise.
1130         * tree-switch-conversion.c (emit_case_bit_tests,
1131         build_one_array, build_arrays, gen_def_assigns): Likewise.
1132         * gimple-fold.c (gimple_fold_builtin_memory_op,
1133         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
1134         * tree-vect-generic.c (expand_vector_divmod,
1135         optimize_vector_constructor): Likewise.
1136         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
1137         ubsan_expand_objsize_ifn, instrument_si_overflow,
1138         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
1139         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
1140         * tree-ssa-loop-manip.c (create_iv,
1141         tree_transform_and_unroll_loop): Likewise.
1142         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
1143         lower_rec_input_clauses, lower_lastprivate_clauses,
1144         expand_parallel_call, expand_omp_for_static_chunk,
1145         expand_omp_atomic_pipeline, expand_omp_target,
1146         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
1147         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
1148         lower_depend_clauses, lower_omp_target, lower_omp_1,
1149         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
1150         * tree-parloops.c (take_address_of, create_phi_for_local_result,
1151         create_call_for_reduction_1, separate_decls_in_region,
1152         create_parallel_loop): Likewise.
1153         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
1154         handle_scalar_deps_crossing_scop_limits): Likewise.
1155         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
1156         expand_assign_tm, expand_call_tm, expand_transaction,
1157         ipa_tm_insert_gettmclone_call): Likewise.
1158         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
1159         Likewise.
1160         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1161         vectorizable_call, vectorizable_simd_clone_call,
1162         vectorizable_conversion, vectorizable_store, permute_vec_elements,
1163         vectorizable_load): Likewise.
1164
1165 2014-11-29  Tobias Burnus  <burnus@net-b.de>
1166             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1167
1168         * opt-functions.awk (lang_enabled_by): Support || for
1169         enabled-by.
1170         * optc-gen.awk: Ditto.
1171         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
1172         || syntax.
1173
1174 2014-11-28  Mike Stump  <mikestump@comcast.net>
1175
1176         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
1177         (bitmap_ior_and_compl): Likewise.
1178
1179 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
1180
1181         PR target/64061
1182         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
1183         subreg.
1184
1185 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
1186
1187         PR target/64093
1188         * config/rs6000/rs6000.md (and<mode>3): Don't generate
1189         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
1190
1191 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
1192
1193         PR rtl-optimization/64087
1194         * lra-lives.c (process_bb_lives): Add debug output.
1195         (lra_create_live_ranges): Don't remove dead insn on the second
1196         call of lra_create_live_ranges_1.
1197
1198 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         PR rtl-optimization/64037
1201         * combine.c (setup_incoming_promotions): Pass the argument
1202         before any promotions happen to promote_function_mode.
1203
1204 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
1205
1206         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
1207         permutations to loads group of size 3.
1208
1209 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
1210
1211         * config/arm/arm.md (copysignsf3): New pattern.
1212         (copysigndf3): Likewise.
1213
1214 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
1215             Ilya Verbin  <ilya.verbin@intel.com>
1216
1217         * omp-low.c (lower_omp_critical): Mark critical sections
1218         inside target functions as offloadable.
1219
1220 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
1221
1222         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
1223         file contains sections with LTO and offload IR, respectively.
1224
1225 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
1226
1227         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
1228         (symbol_table::compile): Set flag_generate_offload if there is something
1229         to offload.
1230         * common.opt (flag_generate_offload): New Variable declaration.
1231         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
1232         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
1233         flag_generate_offload is set.
1234         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
1235         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
1236         is set.
1237         * toplev.c (compile_file): Emit LTO marker if offload info has been
1238         previously emitted.  Do not emit lto_slim marker if
1239         flag_generate_offload is without flag_generate_lto.
1240         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
1241
1242 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1243
1244         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
1245         * config/arm/arm-tables.opt: Regenerate.
1246         * config/arm/arm-tune.md: Regenerate.
1247         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
1248         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
1249         MULTILIB_MATCHES.
1250
1251 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1252
1253         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
1254         Include cortex-a17.md.
1255         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
1256         * config/arm/arm-cores.def (cortex-a17): New entry.
1257         * config/arm/arm-tables.opt: Regenerate.
1258         * config/arm/arm-tune.md: Regenerate.
1259         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
1260         * config/arm/cortex-a17.md: New file.
1261         * config/arm/cortex-a17-neon.md: New file.
1262         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
1263         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
1264
1265 2014-11-28  Richard Biener  <rguenther@suse.de>
1266
1267         PR middle-end/64084
1268         * genmatch.c (dt_node::gen_kids_1): New function, split out
1269         from dt_node::gen_kids.
1270         (decision_tree::cmp_node): DT_TRUE are generally not equal.
1271         (decision_tree::find_node): Treat DT_TRUE as barrier for
1272         node CSE on the same level.
1273         (dt_node::append_node): Do not keep DT_TRUE last.
1274         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
1275
1276 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1277
1278         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
1279         -march=armv8-a+crc.
1280
1281 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
1282
1283         * config/i386/i386.md (preferred_for_size): New attribute
1284         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
1285         attribute to conditionally disable alternative 1.
1286         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
1287         and prefered_for_speed attributes to conditionally disable
1288         alternative 1.
1289         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
1290         preferred_for_size attribute to conditionally disable
1291         alternatives 3 and 4.
1292         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
1293         preferred_for_size and prefered_for_speed attributes to conditionally
1294         disable alternatives 3 and 4.
1295         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
1296
1297 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1298
1299         * dwarf2out.c (set_block_origin_self): Skip nested functions.
1300
1301 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
1302
1303         PR target/63833
1304         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
1305         R15_REG for 64-bit.
1306         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
1307
1308 2014-11-27  Martin Liska  <mliska@suse.cz>
1309             David Malcolm  <dmalcolm@redhat.com>
1310
1311         * ipa-icf.c (sem_function::equals_private): int* is replaced with
1312         auto_vec.
1313         (sem_function::bb_dict_test): Likewise.
1314         * ipa-icf.h: Likewise.
1315
1316 2014-11-27  Richard Biener  <rguenther@suse.de>
1317
1318         PR middle-end/64088
1319         * fold-const.c (const_unop): Re-instantiate missing condition
1320         before calling fold_abs_const.
1321
1322         PR tree-optimization/64088
1323         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
1324         the stmt break from the loop over use operands.
1325
1326 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
1327
1328         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
1329         Define.
1330         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
1331         (fold_builtin_cpu): Ditto.
1332         * doc/extend.texi: Documment it.
1333
1334 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
1335
1336         PR middle-end/64067
1337         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
1338         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
1339         not only if modifier is EXPAND_INITIALIZER, but whenever
1340         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
1341
1342         PR tree-optimization/64024
1343         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
1344         field.  Add simd_clone_info field.
1345         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
1346         (STMT_VINFO_SIMD_CLONE_INFO): Define.
1347         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
1348         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
1349         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
1350         base and linear_step from analysis phase and use it during transform
1351         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
1352         multiplied by linear_step.
1353         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
1354
1355         PR lto/64025
1356         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
1357         if it is CONSTANT_P other than CONST_INT.
1358
1359 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1360
1361         PR target/59593
1362         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
1363         based on mode size.
1364         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
1365         make it TARGET_EITHER.
1366         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
1367         and move HFmode handling from consttable_4 to it.
1368         (consttable_4): Move HFmode handling to consttable_2 pattern.
1369         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
1370         (consttable_2): Ditto.
1371
1372 2014-11-27  Richard Biener  <rguenther@suse.de>
1373
1374         * tree-ssa-sccvn.c (try_to_simplify): Allow
1375         gimple_fold_stmt_to_constant_1 to follow SSA edges.
1376
1377 2014-11-27  Richard Biener  <rguenther@suse.de>
1378
1379         PR tree-optimization/64083
1380         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
1381         forcibly mark loop for removal the wrong way.
1382
1383 2014-11-27  Richard Biener  <rguenther@suse.de>
1384
1385         PR middle-end/63704
1386         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
1387         and instead return false when !fstrict-aliasing.
1388
1389 2014-11-27  Richard Biener  <rguenther@suse.de>
1390
1391         PR tree-optimization/61634
1392         * tree-vect-slp.c: Include gimple-walk.h.
1393         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
1394         down the SLP tree for one scalar statement.
1395         (vect_detect_hybrid_slp_1): New walker function.
1396         (vect_detect_hybrid_slp_2): Likewise.
1397         (vect_detect_hybrid_slp): Properly handle pattern statements
1398         in a pre-scan over all loop stmts.
1399
1400 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1401
1402         Revert:
1403         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1404         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
1405         aarch64_convert_mode, aarch64_gen_ccmp_first,
1406         aarch64_gen_ccmp_next): New functions.
1407         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
1408
1409 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
1410
1411         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
1412         without -pie or -shared, error on -fsanitize=thread -static instead.
1413
1414 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1415
1416         PR ipa/61190
1417         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
1418         (cgraph_node::function_or_virtual_thunk_symbol): New function.
1419         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
1420         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
1421         Add new optional parameter exclude_virtual_thunks.
1422         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
1423         optional parameter exclude_virtual_thunks.
1424         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
1425         (cgraph_node::set_pure_flag): Likewise.
1426         (cgraph_node::function_symbol): Simplified.
1427         (cgraph_node::function_or_virtual_thunk_symbol): New function.
1428         * ipa-pure-const.c (analyze_function): For virtual thunks set
1429         pure_const_state to IPA_NEITHER.
1430         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
1431
1432 2014-11-26  Richard Biener  <rguenther@suse.de>
1433
1434         PR middle-end/63738
1435         * tree-data-ref.c (split_constant_offset_1): Do not follow
1436         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1437
1438 2014-11-26  Richard Biener  <rguenther@suse.de>
1439
1440         * fold-const.h (const_unop): Declare.
1441         (const_binop): Likewise.
1442         * fold-const.c (const_binop): Export overload that expects
1443         a type parameter and dispatches to fold_relational_const as well.
1444         Check both operand kinds for guarding the transforms.
1445         (const_unop): New function, with constant folding from fold_unary_loc.
1446         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
1447         Remove constant folding done there from the simplifications.
1448         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
1449         (fold_negate_expr): Remove dead code from the REAL_CST case.
1450         Avoid building garbage in the COMPLEX_CST case.
1451         * gimple-match-head.c (gimple_resimplify1): Dispatch to
1452         const_unop.
1453         (gimple_resimplify2): Dispatch to const_binop.
1454         (gimple_simplify): Likewise.
1455
1456 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
1457
1458         PR bootstrap/63995
1459         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
1460         debug statement when searching for a new position for
1461         bounds load/creation statement.
1462
1463 2014-11-26  Marek Polacek  <polacek@redhat.com>
1464
1465         PR sanitizer/63788
1466         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
1467         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
1468         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
1469
1470 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
1471
1472         PR lto/64075
1473         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
1474         proper size for function_code bitfield.
1475         (pack_ts_function_decl_value_fields): Likewise.
1476
1477 2014-11-21  Mark Wielaard  <mjw@redhat.com>
1478
1479         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
1480         * opts.c (common_handle_option): Accept -gdwarf-5.
1481         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
1482         DW_LANG_C_plus_plus_14.
1483         (lower_bound_default): Likewise. Plus DW_LANG_C11.
1484         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
1485         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
1486         (output_compilation_unit_header): Output at most a DWARFv4 header.
1487         (output_skeleton_debug_sections): Likewise.
1488         (output_line_info): Likewise.
1489         (output_aranges): Document header version number.
1490
1491 2014-11-26  Richard Biener  <rguenther@suse.de>
1492
1493         * gimple-fold.c (get_symbol_constant_value): Allow all
1494         GIMPLE register type zero-constants.
1495
1496 2014-11-26  Mark Wielaard  <mjw@redhat.com>
1497
1498         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
1499         function decl has TREE_THIS_VOLATILE.
1500
1501 2014-11-26  Richard Biener  <rguenther@suse.de>
1502
1503         PR tree-optimization/62238
1504         * tree-predcom.c (ref_at_iteration): Unshare the expression
1505         before gimplifying it.
1506         (prepare_initializers_chain): Discard unused seq.
1507
1508 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1509
1510         * ira-lives.c (process_bb_node_lives): Make code with conditional
1511         REAL_PIC_OFFSET_TABLE_REGNUM.
1512
1513 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1514
1515         PR target/63527
1516         * ira-lives.c (process_bb_node_lives): Check and remove conflict
1517         of pic pseudo with pic hard reg.
1518
1519 2014-11-25  Rohit  <rohitarulraj@freescale.com>
1520
1521         PR bootstrap/63703
1522         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
1523         added GCC hard register numbers for SPE high registers.
1524
1525 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
1526
1527         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
1528         before removing it, not after.
1529
1530 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
1531
1532         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
1533         PATTERN call.
1534
1535 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
1536
1537         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
1538         of addic.
1539
1540 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
1541
1542         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
1543         (rest of file): Replace those with code resp. CODE.
1544
1545 2014-11-25  Tom de Vries  <tom@codesourcery.com>
1546
1547         * tree-cfg.c (verify_sese): New function.
1548         (move_sese_region_to_fn): Call verify_sese.
1549         * tree-cfg.h (verify_sese): Declare.
1550
1551 2014-11-25  Richard Biener  <rguenther@suse.de>
1552
1553         PR lto/64065
1554         * lto-streamer-out.c (output_struct_function_base): Stream
1555         last_clique field.
1556         * lto-streamer-in.c (input_struct_function_base): Likewise.
1557
1558 2014-11-25  Martin Liska  <mliska@suse.cz>
1559
1560         PR bootstrap/64050
1561         PR ipa/64060
1562         * sreal.c (sreal::operator+): Addition fixed.
1563         (sreal::signedless_plus): Negative numbers are
1564         handled correctly.
1565         (sreal::operator-): Subtraction is fixed.
1566         (sreal::signedless_minus): Negative numbers are
1567         handled correctly.
1568         * sreal.h (sreal::operator<): Equal negative numbers
1569         are compared correctly.
1570         (sreal::shift): New checking asserts are introduced.
1571         Operation is fixed.
1572
1573 2014-11-25  Richard Biener  <rguenther@suse.de>
1574
1575         PR tree-optimization/61927
1576         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
1577         of group and pattern analysis to the one in GCC 4.8.
1578
1579 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
1580             Jakub Jelinek  <jakub@redhat.com>
1581
1582         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
1583         strlen, strncpy.
1584         * lto-wrapper.c (append_offload_options): Likewise.
1585
1586 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1587
1588         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
1589         load the static chain if the call was originally direct.
1590
1591 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
1592
1593         PR ipa/64059
1594         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
1595         devirtualization is disabled.
1596
1597 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1598
1599         PR target/63965
1600         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
1601         Altivec & -16 mask if the type is not valid for Altivec registers.
1602         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
1603         reg) that occurs during push_reload processing.
1604
1605         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
1606         alternative for moving constant vectors which are easy altivec
1607         constants to GPRs.  Set the length attribute each of the
1608         alternatives.
1609
1610         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
1611         work in progress patch was committed instead of the fixes for
1612         63965.
1613         * config/rs6000/rs6000.c: Likewise.
1614
1615 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
1616
1617         PR ipa/63671
1618         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
1619         and -fno-devirtualize more carefully.
1620         (can_remove_node_now_p): Update.
1621
1622 2014-11-24  Andrew Pinski  <apinski@cavium.com>
1623
1624         PR rtl-opt/63972
1625         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
1626
1627 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
1628
1629         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
1630
1631 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
1632
1633         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
1634         Refactor by combining switch statements and make arrays into scalars.
1635
1636 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
1637
1638         PR c++/58561
1639         * dbxout.c: Include stringpool.h
1640         (dbxout_type) [default]: Ignore auto type.
1641
1642 2014-11-24  Richard Biener  <rguenther@suse.de>
1643
1644         PR tree-optimization/63679
1645         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
1646         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
1647         to properly leave off at -1.
1648         (fully_constant_vn_reference_p): Generalize folding from
1649         constant initializers.
1650         (vn_reference_lookup_3): When looking through aggregate copies
1651         handle offsetted reads and try simplifying the result to
1652         a constant.
1653         * gimple-fold.h (fold_ctor_reference): Export.
1654         * gimple-fold.c (fold_ctor_reference): Likewise.
1655
1656 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
1657
1658         * simplify-rtx.c (simplify_ternary_operation): Simplify
1659         vec_merge (vec_duplicate (vec_select)).
1660
1661 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1662
1663         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
1664         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
1665         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
1666
1667 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1668
1669         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
1670         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
1671         (cortexa57_tunings): Likewise.
1672         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
1673
1674 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1675
1676         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
1677         in the not conditional jump case.
1678         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
1679         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
1680
1681 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1682
1683         * config/aarch64/aarch64.c: Include tm-constrs.h
1684         (AARCH64_FUSE_ADRP_ADD): Define.
1685         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
1686         (cortexa53_tunings): Likewise.
1687         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
1688
1689 2014-11-24  Martin Liska  <mliska@suse.cz>
1690
1691         * ipa-inline.c (edge_badness): long is replaced by sreal
1692         as fibonacci_heap template type.
1693         (update_edge_key): Likewise.
1694         (inline_small_functions): Likewise.
1695
1696 2014-11-24  Martin Liska  <mliska@suse.cz>
1697
1698         * predict.c (propagate_freq): More elegant sreal API is used.
1699         (estimate_bb_frequencies): Precomputed constants replaced by integer
1700         constants.
1701         * sreal.c (sreal::normalize): New function.
1702         (sreal::to_int): Likewise.
1703         (sreal::operator+): Likewise.
1704         (sreal::operator-): Likewise.
1705         (sreal::signedless_plus): Likewise.
1706         (sreal::signedless_minus): Likewise.
1707         (sreal::operator/): Negative number support is added.
1708         * sreal.h: Definition of new functions added.
1709         (inline sreal operator<<): New function.
1710         (inline sreal operator>>): Likewise.
1711
1712 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1713
1714         * config/aarch64/aarch64-protos.h (struct tune_params): Add
1715         fuseable_ops field.
1716         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
1717         (cortexa53_tunings): Likewise.
1718         (cortexa57_tunings): Likewise.
1719         (thunderx_tunings): Likewise.
1720         (aarch64_macro_fusion_p): New function.
1721         (aarch_macro_fusion_pair_p): Likewise.
1722         (TARGET_SCHED_MACRO_FUSION_P): Define.
1723         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
1724         (AARCH64_FUSE_MOV_MOVK): Likewise.
1725         (AARCH64_FUSE_NOTHING): Likewise.
1726
1727 2014-11-24  Martin Liska  <mliska@suse.cz>
1728
1729         PR lto/63968
1730         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
1731         with replace_key method.
1732         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
1733         (fibonacci_heap::replace_key_data): Likewise.
1734         (fibonacci_heap::replace_key): New method that can even increment key,
1735         this operation costs O(log N).
1736         (fibonacci_heap::extract_min): New argument.
1737         (fibonacci_heap::delete_node): Likewise.
1738
1739 2014-11-24  Richard Biener  <rguenther@suse.de>
1740
1741         PR tree-optimization/55334
1742         * function.h (struct function): Add last_clique member.
1743         * tree-inline.c (remap_dependence_clique): New function.
1744         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
1745         (copy_tree_body_r): Likewise.
1746         (copy_cfg_body): Free dependence map.
1747         (copy_gimple_seq_and_replace_locals): Likewise.
1748         * tree-pretty-print.c (dump_generic_node): Dump
1749         dependence info.
1750         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
1751         to answer alias query.
1752         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
1753         tree-pretty-print.h and gimple-walk.h.
1754         (struct variable_info): Add is_restrict_var flag and ruid
1755         member.
1756         (new_var_info): Initialize is_restrict_var.
1757         (make_constraint_from_restrict): Likewise.
1758         (create_variable_info_for): Exclude restricts from global vars
1759         from new handling.
1760         (intra_create_variable_infos): But not those from parameters.
1761         (visit_loadstore): New function.
1762         (maybe_set_dependence_info): Likewise.
1763         (compute_dependence_clique): Likewise.
1764         (compute_may_aliases): Call compute_dependence_clique.
1765         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
1766         to fake MEM_REF.
1767         (dr_may_alias_p): Use recorded dependence info to answer
1768         alias query.
1769         * tree-core.h (struct tree_base): Add clique, base struct in
1770         union.
1771         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
1772         (MR_DEPENDENCE_BASE): Likewise.
1773         * tree-inline.h (dependence_hasher): New hash-map kind.
1774         (struct copy_body_data): Add dependence_map pointer.
1775         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
1776         throwing away dependence info.
1777         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
1778         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
1779
1780 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
1781
1782         PR target/53976
1783         * config/sh/sh_optimize_sett_clrt.cc
1784         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
1785         of void.  Abort at complex edges.
1786         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
1787         returned false.
1788
1789 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
1790
1791         PR other/63694
1792         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
1793         declarations.
1794         * configure: Regenerated.
1795         * config.in: Regenerated.
1796
1797 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
1798
1799         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
1800         clones as having abstract origin used.
1801         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
1802         origin check.
1803         (clone_inlined_nodes): Copy abstract originflag.
1804         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
1805         abstract origin node.
1806
1807 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
1808
1809         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
1810         * config/i386/i386.c (ix86_option_override_internal): Do not increase
1811         PARAM_MAX_COMPLETELY_PEELED_INSNS.
1812
1813 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
1814
1815         PR target/63783
1816         PR target/51244
1817         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
1818         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
1819         Adjust related comments throughout the file.
1820
1821 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
1822
1823         PR target/63986
1824         PR target/51244
1825         * config/sh/sh.c (sh_is_logical_t_store_expr,
1826         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
1827         (sh_split_movrt_negc_to_movt_xor): New function.
1828         (sh_find_set_of_reg): Move to ...
1829         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
1830         to template function.
1831         (set_of_reg): Use rtx_insn* for insn member.
1832         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
1833         rtx_insn* for insn argument.
1834         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
1835         sequence using new sh_split_movrt_negc_to_movt_xor function.
1836         (movrt_xor): Allow also for SH2A.
1837         (*movt_movrt): Delete insns and splits.
1838
1839 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
1840
1841         PR tree-optimization/60770
1842         * tree-sra.c (clobber_subtree): New function.
1843         (sra_modify_constructor_assign): Call it.
1844
1845 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
1846
1847         PR target/63897
1848         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
1849         argument.
1850         (process_bb_lives): Rename dead_insn_p on remove_p
1851         and global_live_info_p on dead_insn_p.  Calculate local live info
1852         unconditionally.  Remove last argument in calls mark_regno_live and
1853         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
1854         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
1855         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
1856         flag of live info change.
1857         (lra_create_live_ranges): New.
1858
1859 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
1860
1861         PR target/63848
1862         PR target/63975
1863         * internal-fn.c (expand_arith_overflow_result_store,
1864         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
1865         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
1866         adjust arguments to those functions.  Use unsignedp = true for
1867         EQ, NE, GEU, LEU, LTU and GTU comparisons.
1868
1869         PR tree-optimization/64006
1870         * tree-vrp.c (stmt_interesting_for_vrp): Return true
1871         for {ADD,SUB,MUL}_OVERFLOW internal calls.
1872         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
1873         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
1874         immediate uses would change their value ranges and return
1875         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
1876         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
1877         interesting for vrp.
1878
1879 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1880
1881         PR target/63965
1882         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
1883         Altivec & -16 mask if the type is not valid for Altivec registers.
1884         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
1885         reg) that occurs during push_reload processing.
1886
1887         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
1888         alternative for moving constant vectors which are easy altivec
1889         constants to GPRs.  Set the length attribute each of the
1890         alternatives.
1891
1892 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
1893
1894         * configure.ac: When checking for MIPS .module support ensure that
1895         o32 FPXX is supported to avoid a second configure check.
1896         * configure: Regenerate.
1897
1898 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
1899
1900         * config/aarch64/iterators.md (VS): New mode iterator.
1901         (vsi2qi): New mode attribute.
1902         (VSI2QI): Likewise.
1903         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
1904         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
1905         * config/aarch64/aarch64-builtins.c
1906         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
1907
1908 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1909
1910         PR bootstrap/63784
1911         * configure: Regenerated.
1912
1913 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1914
1915         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
1916
1917 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
1918
1919         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1920         OPTION_MASK_ISA_PCOMMIT_SET): New.
1921         (ix86_handle_option): Handle OPT_mpcommit.
1922         * config.gcc: Add pcommitintrin.h
1923         * config/i386/pcommitintrin.h: New file.
1924         * config/i386/cpuid.h (bit_PCOMMIT): Define.
1925         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
1926         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1927         __PCOMMIT__.
1928         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
1929         (PTA_PCOMMIT): Define.
1930         (ix86_option_override_internal): Handle new option.
1931         (ix86_valid_target_attribute_inner_p): Add pcommit.
1932         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
1933         (bdesc_special_args): Add __builtin_ia32_pcommit.
1934         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
1935         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
1936         (pcommit): New instruction.
1937         * config/i386/i386.opt: Add mpcommit.
1938         * config/i386/x86intrin.h: Include pcommitintrin.h.
1939
1940 2014-11-20  Mark Wielaard  <mjw@redhat.com>
1941
1942         PR debug/38757
1943         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
1944         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
1945         (darwin_override_options): Likewise.
1946         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
1947         Likewise.
1948         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1949         Likewise.
1950         * dbxout.c (get_lang_number): Likewise.
1951         (dbxout_type): Likewise.
1952         (dbxout_symbol_location): Likewise.
1953         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
1954         also for DW_LANG_{C,C99,ObjC}.
1955         (highest_c_language): New function.
1956         (gen_compile_unit_die): Call highest_c_language to merge LTO
1957         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
1958         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
1959         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
1960         * langhooks.h (struct lang_hooks): Add version comment to name.
1961         (lang_GNU_C): New function declaration.
1962         (lang_GNU_CXX): Likewise.
1963         * langhooks.c (lang_GNU_C): New function.
1964         (lang_GNU_CXX): Likewise.
1965         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
1966
1967 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
1968
1969         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
1970         OPTION_MASK_ISA_CLWB_SET): New.
1971         (ix86_handle_option): Handle OPT_mclwb.
1972         * config.gcc: Add clwbintrin.h.
1973         * config/i386/clwbintrin.h: New file.
1974         * config/i386/cpuid.h (bit_CLWB): Define.
1975         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
1976         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1977         __CLWB__.
1978         * config/i386/i386.c (ix86_target_string): Add -mclwb.
1979         (PTA_CLWB): Define.
1980         (ix86_option_override_internal): Handle new option.
1981         (ix86_valid_target_attribute_inner_p): Add clwb.
1982         (ix86_builtins): Add IX86_BUILTIN_CLWB.
1983         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
1984         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
1985         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
1986         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
1987         (clwb): New instruction.
1988         * config/i386/i386.opt: Add mclwb.
1989         * config/i386/x86intrin.h: Include clwbintrin.h.
1990
1991 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
1992
1993         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
1994         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
1995         (ix86_handle_option): Handle OPT_mavx512vbmi.
1996         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
1997         * config/i386/avx512vbmiintrin.h: New file.
1998         * config/i386/avx512vbmivlintrin.h: Ditto.
1999         * config/i386/cpuid.h (bit_AVX512VBMI): New.
2000         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
2001         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2002         __AVX512VBMI__.
2003         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
2004         (PTA_AVX512VBMI): Define.
2005         (ix86_option_override_internal): Handle new options.
2006         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
2007         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
2008         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
2009         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
2010         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
2011         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
2012         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
2013         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
2014         IX86_BUILTIN_VPERMI2VARQI128.
2015         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
2016         __builtin_ia32_vpmultishiftqb256_mask,
2017         __builtin_ia32_vpmultishiftqb128_mask,
2018         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
2019         __builtin_ia32_vpermt2varqi512_maskz,
2020         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
2021         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
2022         __builtin_ia32_vpermt2varqi256_maskz,
2023         __builtin_ia32_vpermt2varqi128_mask,
2024         __builtin_ia32_vpermt2varqi128_maskz,
2025         __builtin_ia32_vpermi2varqi256_mask,
2026         __builtin_ia32_vpermi2varqi128_mask.
2027         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
2028         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
2029         * config/i386/i386.opt: Add mavx512vbmi.
2030         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
2031         avx512vbmivlintrin.h.
2032         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
2033         (VI1_AVX512VL): New iterator.
2034         (<avx512>_permvar<mode><mask_name>): Use it.
2035         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
2036         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
2037         (<avx512>_vpermi2var<mode>3_mask): Ditto.
2038         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
2039         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
2040         (<avx512>_vpermt2var<mode>3_mask): Ditto.
2041         (vpmultishiftqb<mode><mask_name>): Ditto.
2042
2043 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2044
2045         PR rtl-optimization/63952
2046         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
2047         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
2048         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
2049
2050 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2051
2052         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
2053         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
2054         (ix86_handle_option): Handle OPT_mavx512ifma.
2055         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
2056         * config/i386/avx512ifmaintrin.h: New file.
2057         * config/i386/avx512ifmaivlntrin.h: Ditto.
2058         * config/i386/cpuid.h (bit_AVX512IFMA): New.
2059         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2060         avx512ifma.
2061         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2062         __AVX512IFMA__.
2063         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
2064         (PTA_AVX512IFMA): Define.
2065         (ix86_option_override_internal): Handle new options.
2066         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
2067         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
2068         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
2069         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
2070         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
2071         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
2072         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
2073         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
2074         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
2075         __builtin_ia32_vpmadd52luq512_maskz,
2076         __builtin_ia32_vpmadd52huq512_mask,
2077         __builtin_ia32_vpmadd52huq512_maskx,
2078         __builtin_ia32_vpmadd52luq256_mask,
2079         __builtin_ia32_vpmadd52luq256_maskz,
2080         __builtin_ia32_vpmadd52huq256_mask,
2081         __builtin_ia32_vpmadd52huq256_maskz,
2082         __builtin_ia32_vpmadd52luq128_mask,
2083         __builtin_ia32_vpmadd52luq128_maskz,
2084         __builtin_ia32_vpmadd52huq128_mask,
2085         __builtin_ia32_vpmadd52huq128_maskz,
2086         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
2087         * config/i386/i386.opt: Add mavx512ifma.
2088         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
2089         avx512ifmavlintrin.h.
2090         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
2091         UNSPEC_VPMADD52HUQ.
2092         (VPMADD52): New iterator.
2093         (vpmadd52type): New attribute.
2094         (vpamdd52huq<mode>_maskz): New.
2095         (vpamdd52luq<mode>_maskz): Ditto.
2096         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
2097         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
2098
2099 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
2100
2101         Revert:
2102         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
2103         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
2104
2105 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
2106
2107         * config/mips/mips.c (mips_process_sync_loop): Place a 
2108         nop in the delay slot of the branch likely instruction.
2109         (mips_output_sync_loop): Ensure mips_branch_likely is 
2110         set before calling mips_output_sync_loop.
2111         (mips_sync_loop_insns): Likewise.
2112
2113 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2114
2115         PR/target 63673
2116         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2117         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2118         double.
2119
2120 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
2121
2122         Forward-port from 2014-10-30 4_9-branch r216934
2123
2124         PR target/63633
2125         * config/avr/avr-protos.h (regmask): New inline function.
2126         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2127         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2128         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2129         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2130         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2131         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2132         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2133         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2134         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2135         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2136         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2137         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2138         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
2139         needed.
2140
2141 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2142
2143         PR target/61137
2144         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
2145         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
2146
2147 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
2148
2149         * config/aarch64/aarch64-simd.md
2150         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
2151         output mnemonic and operands.
2152         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
2153         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
2154
2155 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
2156
2157         * config/i386/i386.c (ix86_option_override_internal): Increase
2158         PARAM_MAX_COMPLETELY_PEELED_INSNS.
2159
2160 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
2161
2162         PR target/60451
2163         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
2164         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
2165         replace for V16QI, V16HI and V32QI modes.
2166         (ix86_expand_vec_perm_const_1): Add new expand.
2167
2168 2014-11-21  Nick Clifton  <nickc@redhat.com>
2169
2170         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
2171         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
2172         (rl78_expand_prologue): Save the ES register in interrupt handlers
2173         that use it.
2174         (rl78_expand_epilogue): Restore the ES register if necessary.
2175         (rl78_start_function): Mention if the function uses the ES
2176         register.
2177         (rl78_lo16): Record the use of the ES register.
2178         (transcode_memory_rtx): Likewise.
2179
2180 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2181
2182         PR tree-optimization/61773
2183         * tree-ssa-strlen.c (get_string_length): Don't assert
2184         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
2185
2186         PR target/63910
2187         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
2188         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
2189         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
2190
2191 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
2192
2193         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
2194         HOST_WIDE_INT_M1U instead of ~0.
2195         (includes_rldicr_lshift_p): Likewise.
2196
2197 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
2198
2199         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
2200         we need to look into its operand to determine if it is a valid
2201         address.
2202
2203 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
2204
2205         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
2206         vaarg_p argument and create correct CFI info.
2207         (nds32_expand_prologue): Pass true or false to
2208         nds32_emit_stack_push_multiple function.
2209
2210 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
2211
2212         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
2213         as RTX_FRAME_RELATED_P rtx.
2214
2215 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
2216
2217         * config/nds32/nds32.opt (march): Add help message.
2218
2219 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
2220
2221         * tree-vrp.c (test_for_singularity): New parameter
2222         strict_overflow_p.  Set *strict_overflow_p to true if signed
2223         overflow must be undefined for the return value to satisfy the
2224         conditional.
2225         (simplify_cond_using_ranges): Don't perform the simplification
2226         if it violates overflow rules.
2227
2228 2014-11-20  Marek Polacek  <polacek@redhat.com>
2229
2230         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
2231
2232 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
2233
2234         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
2235         condition would be removed due to undefined behaviour.
2236
2237 2014-11-20  Andrew Pinski  <apinski@cavium.com>
2238
2239         PR ipa/63981
2240         PR ipa/63982
2241         * ipa-polymorphic-call.c (possible_placement_new):
2242         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
2243         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
2244         (extr_type_from_vtbl_ptr_store): Likewise.
2245
2246 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
2247
2248         * config/rs6000/constraints.md: Avoid signed integer overflows.
2249         * config/rs6000/predicates.md: Likewise.
2250         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
2251         (includes_rldic_lshift_p): Likewise.
2252         (includes_rldicr_lshift_p): Likewise. 
2253         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
2254         * loop-iv.c (determine_max_iter): Likewise.
2255         (iv_number_of_iterations): Likewise.
2256         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
2257         * varasm.c (get_section_anchor): Likewise.
2258
2259 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
2260
2261         PR target/63870
2262         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
2263         expression to aarch64_simd_lane_bounds.
2264         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
2265         prototype.
2266         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
2267         call to aarch64_simd_lane_bounds.
2268         (aarch64_get_lanedi): Likewise.
2269         (aarch64_ld2_lane<mode>): Likewise.
2270         (aarch64_ld3_lane<mode>): Likewise.
2271         (aarch64_ld4_lane<mode>): Likewise.
2272         (aarch64_im_lane_boundsi): Likewise.
2273         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
2274         parameter. Report calling function in error message if exp is non-NULL.
2275
2276 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
2277
2278         PR target/60111
2279         * config/sh/sh.c: Use signed char for signed field.
2280
2281 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2282
2283         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
2284         hash_table.
2285
2286 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2287
2288         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
2289         tree-scalar-evolution.c: Replace htab with hash_table.
2290
2291 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2292
2293         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
2294         (lto_free_function_in_decl_state): Likewise.
2295         * lto-streamer-out.c (copy_function_or_variable): Likewise.
2296         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
2297         (lto_file_decl_data_num_ ## name ## s): Likewise.
2298         (struct lto_tree_ref_table): Remove.
2299         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
2300
2301 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2302
2303         * hash-map.h (hash_map::iterator): New class.
2304         (hash_map::begin): New method.
2305         (hash_map::end): Likewise.
2306         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
2307         replace splay_tree with hash_map.
2308
2309 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2310
2311         * hash-table.h (hash_table::hash_table): Call alloc_entries.
2312         (hash_table::alloc_entries): new method.
2313         (hash_table::expand): Call alloc_entries.
2314         (hash_table::empty): Likewise.
2315
2316 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2317
2318         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
2319         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
2320
2321 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
2322
2323         * doc/gty.texi: Document the new cache gty attribute.
2324         * gengtype.c (finish_cache_funcs): New function.
2325         (write_roots): Call gt_clear_cache on global variables with the cache
2326         gty attribute.
2327         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
2328         * ggc.h (gt_clear_caches): New declaration.
2329         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
2330         memory.
2331         (gt_cleare_cache): New function.
2332         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
2333
2334 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
2335
2336         * combine.c (try_combine): Prefer to delete dead SETs inside
2337         a PARALLEL over keeping them.
2338
2339 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
2340
2341         * combine.c (combine_validate_cost): Always print the insn costs
2342         to the dump file.
2343
2344 2014-11-20  Richard Henderson <rth@redhat.com>
2345
2346         PR target/63977
2347         * config/i386/i386.c (ix86_static_chain): Reinstate the check
2348         for DECL_STATIC_CHAIN.
2349
2350 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
2351
2352         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
2353         Fixup prototype.
2354         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
2355         aarch64_cannot_force_const_mem, aarch64_classify_address,
2356         aarch64_classify_symbolic_expression): Fixup call to
2357         aarch64_classify_symbol.
2358         (aarch64_classify_symbol): Add range-checking for
2359         symbol + offset addressing for tiny and small models.
2360
2361 2014-11-20  Richard Biener  <rguenther@suse.de>
2362
2363         PR middle-end/63962
2364         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
2365         Guard with single-use operand 0.
2366
2367 2014-11-20   Richard Biener  <rguenther@suse.de>
2368
2369         PR tree-optimization/63677
2370         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
2371         (avail_exprs_stack): Make a vector of pairs.
2372         (struct hash_expr_elt): Replace stmt member with vop member.
2373         (expr_elt_hasher::equal): Simplify.
2374         (initialize_hash_element): Adjust.
2375         (initialize_hash_element_from_expr): Likewise.
2376         (dom_opt_dom_walker::thread_across_edge): Likewise.
2377         (record_cond): Likewise.
2378         (dom_opt_dom_walker::before_dom_children): Likewise.
2379         (print_expr_hash_elt): Likewise.
2380         (remove_local_expressions_from_table): Restore previous state
2381         if requested.
2382         (record_equivalences_from_stmt): Record &x + CST as constant
2383         &MEM[&x, CST] for further propagation.
2384         (vuse_eq): New function.
2385         (lookup_avail_expr): For loads use the alias oracle to see
2386         whether a candidate from the expr hash is usable.
2387         (avail_expr_hash): Do not hash VUSEs.
2388
2389 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2390
2391         PR target/59593
2392         * config/arm/arm.md (*movhi_insn): Use right formatting
2393         for immediate.
2394
2395 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
2396
2397         PR sanitizer/63845
2398         * function.c (assign_parms): Move init of pic_offset_table_rtx
2399         from here to...
2400         * cfgexpand.c (expand_used_vars): ...here.
2401
2402 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
2403
2404         * tree.c (free_lang_data_in_type): If BINFO has no important
2405         information in it, set it to NULL.
2406         (get_binfo_at_offset): Do not walk fields, only bases.
2407         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
2408         to be NULL.
2409         * ipa-polymorphic-call.c (record_known_type): Likewise.
2410
2411 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2412
2413         PR jit/63854
2414         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
2415         congruence_class_group *.
2416
2417 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
2418
2419         PR target/63947
2420         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
2421         Output "b" and "nb" suffix for FP mode.
2422
2423 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
2424
2425         PR bootstrap/63963
2426         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
2427         DECL_FUNCTION_SPECIFIC_TARGET
2428         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
2429         DECL_FUNCTION_SPECIFIC_TARGET.
2430
2431 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2432
2433         PR jit/63854
2434         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
2435
2436 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2437
2438         PR jit/63854
2439         * lra.c (lra): After creating live ranges in preparation for call
2440         to lra_inheritance, set live_p to true.
2441
2442 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2443
2444         PR jit/63854
2445         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
2446         "path", delete it.
2447         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
2448
2449 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2450
2451         PR jit/63854
2452         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
2453         vec<> to auto_vec<> to fix a leak.
2454
2455 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2456
2457         PR jit/63854
2458         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
2459
2460 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2461
2462         PR jit/63854
2463         * ira-costs.c (ira_costs_c_finalize): New function.
2464         * ira.h (ira_costs_c_finalize): New prototype.
2465         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
2466
2467 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2468
2469         PR jit/63854
2470         * ipa-reference.c (ipa_reference_c_finalize): Release
2471         optimization_summary_obstack.
2472
2473 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2474
2475         PR jit/63854
2476         * toplev.c (toplev::finalize): Free opts_obstack.
2477
2478 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2479
2480         PR jit/63854
2481         * toplev.c (toplev::finalize): Clean up save_decoded_options.
2482
2483 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2484
2485         PR jit/63854
2486         * bb-reorder.c
2487         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
2488         local bbs_in_hot_partition from vec<> to auto_vec<>.
2489
2490 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2491
2492         PR jit/63854
2493         * config/alpha/alpha.c (alpha_option_override): Remove static from
2494         "handle_trap_shadows_info" and "align_insns_info".
2495         * config/i386/i386.c (ix86_option_override): Likewise for
2496         "insert_vzeroupper_info".
2497         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
2498         "rl78_devirt_info" and "rl78_move_elim_info".
2499         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
2500         "analyze_swaps_info".
2501         * context.c (gcc::context::~context): New.
2502         * context.h (gcc::context::~context): New.
2503         * dumpfile.c (dump_files): Add "false" initializers for new field
2504         "owns_strings".
2505         (gcc::dump_manager::~dump_manager): New.
2506         (gcc::dump_manager::dump_register): Add param "take_ownership".
2507         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
2508         (gcc::dump_manager::~dump_manager): New.
2509         (gcc::dump_manager::dump_register): Add param "take_ownership".
2510         * pass_manager.h (gcc::pass_manager::operator delete): New.
2511         (gcc::pass_manager::~pass_manager): New.
2512         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
2513         new "owns_strings" argument to dump_register.
2514         (pass_manager::operator delete): New.
2515         (delete_pass_tree): New function.
2516         (pass_manager::~pass_manager): New.
2517         * statistics.c (statistics_early_init): Pass "false" to
2518         new "owns_strings" argument to dump_register.
2519         * toplev.c (toplev::finalize): Clean up the context and thus the
2520         things it owns.
2521
2522 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2523
2524         PR jit/63854
2525         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
2526         obstack_free when cleaning up valid_mode_changes_obstack.
2527
2528 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2529
2530         PR jit/63854
2531         * opts.c (finalize_options_struct): New.
2532         * opts.h (finalize_options_struct): New.
2533         * toplev.c (toplev::finalize): Call finalize_options_struct
2534         on global_options and global_options_set.
2535
2536 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2537             Jakub Jelinek  <jakub@redhat.com>
2538
2539         PR driver/36312
2540         PR driver/63837
2541         * gcc.c (process_command): Don't check for input/output
2542         filename equality if output is HOST_BIT_BUCKET.
2543         * toplev.c (init_asm_output): Likewise.
2544
2545 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
2546
2547         Merger of git branch "gimple-classes-v2-option-3".
2548
2549         * ChangeLog.gimple-classes: New.
2550
2551         * coretypes.h (struct gcond): Add forward decl.
2552         (struct gdebug): Likewise.
2553         (struct ggoto): Likewise.
2554         (struct glabel): Likewise.
2555         (struct gswitch): Likewise.
2556         (struct gassign): Likewise.
2557         (struct gasm): Likewise.
2558         (struct gcall): Likewise.
2559         (struct gtransaction): Likewise.
2560         (struct greturn): Likewise.
2561         (struct gbind): Likewise.
2562         (struct gcatch): Likewise.
2563         (struct geh_filter): Likewise.
2564         (struct geh_mnt): Likewise.
2565         (struct geh_else): Likewise.
2566         (struct gresx): Likewise.
2567         (struct geh_dispatch): Likewise.
2568         (struct gphi): Likewise.
2569         (struct gtry): Likewise.
2570         (struct gomp_atomic_load): Likewise.
2571         (struct gomp_atomic_store): Likewise.
2572         (struct gomp_continue): Likewise.
2573         (struct gomp_critical): Likewise.
2574         (struct gomp_for): Likewise.
2575         (struct gomp_parallel): Likewise.
2576         (struct gomp_task): Likewise.
2577         (struct gomp_sections): Likewise.
2578         (struct gomp_single): Likewise.
2579         (struct gomp_target): Likewise.
2580         (struct gomp_teams): Likewise.
2581
2582         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
2583         for renaming of gimple subclasses.
2584
2585         * gdbhooks.py: Update.
2586
2587         * gimple-iterator.c (gsi_for_phi): New.
2588         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
2589         to gphi_iterator.
2590         * gimple-iterator.h (struct gphi_iterator): New subclass of
2591         gimple_stmt_iterator.
2592         (gsi_for_phi): New prototype.
2593         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
2594         to gphi_iterator.
2595         (gsi_next_nonvirtual_phi): Strengthen param from
2596         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
2597         gimple to gphi *.
2598
2599         * gsstruct.def: Update for renamings of classes.
2600
2601         * gimple.c (gimple_build_return): Strengthen return type from
2602         gimple to greturn *.
2603         (gimple_call_reset_alias_info): Strengthen param to gcall *.
2604         (gimple_build_call_1): Strengthen return type from gimple to
2605         gcall *.
2606         (gimple_build_call_vec): Likewise.
2607         (gimple_build_call): Likewise.
2608         (gimple_build_call_valist): Likewise.
2609         (gimple_build_call_internal_1): Likewise.
2610         (gimple_build_call_internal): Likewise.
2611         (gimple_build_call_internal_vec): Likewise.
2612         (gimple_build_call_from_tree): Likewise.
2613         (gimple_build_assign_stat): Strengthen return type from gimple to
2614         gassign *.
2615         (gimple_build_assign_with_ops): Likewise.
2616         (gimple_build_assign_with_ops): Likewise.
2617         (gimple_build_cond): Strengthen return type from gimple to
2618         gcond *.
2619         (gimple_build_cond_from_tree): Likewise.
2620         (gimple_cond_set_condition_from_tree): Require a gcond *.
2621         (gimple_build_label): Strengthen return type from gimple to
2622         glabel *.
2623         (gimple_build_goto): Strengthen return type from gimple to
2624         ggoto *.
2625         (gimple_build_bind): Strengthen return type from gimple to
2626         gbind *.
2627         (gimple_build_asm_1): Strengthen return type from gimple to
2628         gasm *.
2629         (gimple_build_asm_vec): Likewise.
2630         (gimple_build_catch): Strengthen return type from gimple to
2631         gcatch *.
2632         (gimple_build_eh_filter): Strengthen return type from gimple to
2633         geh_filter *.
2634         (gimple_build_eh_must_not_throw): Strengthen return type from
2635         gimple to geh_mnt *.
2636         (gimple_build_eh_else): Strengthen return type from gimple to
2637         geh_else *.
2638         (gimple_build_try): Update for renaming of gimple_statement_try to
2639         gtry.
2640         (gimple_build_resx): Strengthen return type from gimple to
2641         gresx *.
2642         (gimple_build_switch_nlabels): Strengthen return type from gimple
2643         to gswitch *.
2644         (gimple_build_switch): Likewise.
2645         (gimple_build_eh_dispatch): Strengthen return type from gimple to
2646         geh_dispatch *.
2647         (gimple_build_debug_bind_stat): Strengthen return type from gimple
2648         to gdebug *.
2649         (gimple_build_debug_source_bind_stat): Strengthen return type from
2650         gimple to gdebug *.
2651         (gimple_build_omp_critical): Strengthen return type from gimple to
2652         gomp_critical *.
2653         (gimple_build_omp_for): Strengthen return type from gimple to
2654         gomp_for *.
2655         (gimple_build_omp_parallel): Strengthen return type from gimple to
2656         gomp_parallel *.
2657         (gimple_build_omp_task): Strengthen return type from gimple to
2658         gomp_task *.
2659         (gimple_build_omp_continue): Strengthen return type from gimple to
2660         gomp_continue *.
2661         (gimple_build_omp_sections): Strengthen return type from gimple to
2662         gomp_sections *.
2663         (gimple_build_omp_single): Strengthen return type from gimple to
2664         gomp_single *.
2665         (gimple_build_omp_target): Strengthen return type from gimple to
2666         gomp_target *.
2667         (gimple_build_omp_teams): Strengthen return type from gimple to
2668         gomp_teams *.
2669         (gimple_build_omp_atomic_load): Strengthen return type from gimple
2670         to gomp_atomic_load *.
2671         (gimple_build_omp_atomic_store): Strengthen return type from gimple
2672         to gomp_atomic_store *.
2673         (gimple_build_transaction): Strengthen return type from gimple
2674         to gtransaction *.
2675         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
2676         (gimple_call_fnspec): Require a const gcall *.
2677         (gimple_call_arg_flags): Likewise.
2678         (gimple_call_return_flags): Likewise.
2679         (gimple_set_bb): Add a checked cast.
2680         (gimple_copy): Within the cases, add locals of the appropriate
2681         subclass and use in place of "stmt" and "copy" for typesafety.
2682         (gimple_has_side_effects): Add a checked cast.
2683         (gimple_could_trap_p_1): Likewise.
2684         (gimple_call_copy_skip_args): Require a gcall *, and return one.
2685         (gimple_asm_clobbers_memory_p): Require a const gasm *.
2686         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
2687         dyn_cast, introducing local "return_stmt" and using ti in place
2688         of "stmt".
2689
2690         * gimple.h (gimple_vec): Eliminate this typedef.
2691         (struct gimple_statement_call): Rename to...
2692         (struct gcall): ...this.
2693         (struct gimple_statement_bind): Rename to...
2694         (struct gbind): ...this.
2695         (struct gimple_statement_catch): Rename to...
2696         (struct gcatch): ...this.
2697         (struct gimple_statement_eh_filter): Rename to...
2698         (struct geh_filter): ...this.
2699         (struct gimple_statement_eh_else): Rename to...
2700         (struct geh_else): ...this.
2701         (struct gimple_statement_eh_mnt): Rename to...
2702         (struct geh_mnt): ...this.
2703         (struct gimple_statement_phi): Rename to...
2704         (struct gphi): ...this.
2705         (struct gimple_statement_resx): Rename to...
2706         (struct gresx): ...this.
2707         (struct gimple_statement_eh_dispatch): Rename to...
2708         (struct geh_dispatch): ...this.
2709         (struct gimple_statement_try): Rename to...
2710         (struct gtry): ...this.
2711         (struct gimple_statement_asm): Rename to...
2712         (struct gasm): ...this.
2713         (struct gimple_statement_omp_critical): Rename to...
2714         (struct gomp_critical): ...this.
2715         (struct gimple_statement_omp_for): Rename to...
2716         (struct gomp_for): ...this.
2717         (struct gimple_statement_omp_parallel): Rename to...
2718         (struct gomp_parallel): ...this.
2719         (struct gimple_statement_omp_target): Rename to...
2720         (struct gomp_target): ...this.
2721         (struct gimple_statement_omp_task): Rename to...
2722         (struct gomp_task): ...this.
2723         (struct gimple_statement_omp_sections): Rename to...
2724         (struct gomp_sections): ...this.
2725         (struct gimple_statement_omp_continue): Rename to...
2726         (struct gomp_continue): ...this.
2727         (struct gimple_statement_omp_single): Rename to...
2728         (struct gomp_single): ...this.
2729         (struct gimple_statement_omp_teams): Rename to...
2730         (struct gomp_teams): ...this.
2731         (struct gimple_statement_omp_atomic_load): Rename to...
2732         (struct gomp_atomic_load): ...this.
2733         (struct gimple_statement_omp_atomic_store :): Rename to...
2734         (struct gomp_atomic_store :): ...this.
2735         (struct gimple_statement_transaction): Rename to...
2736         (struct gtransaction): ...this.
2737         (struct gcond): New subclass.
2738         (struct gdebug): New subclass.
2739         (struct ggoto): New subclass.
2740         (struct glabel): New subclass.
2741         (struct gswitch): New subclass.
2742         (struct gassign): New subclass.
2743         (struct greturn): New subclass.
2744         (is_a_helper <gimple_statement_asm *>::test): Rename to...
2745         (is_a_helper <gasm *>::test): ...this.
2746         (is_a_helper <gimple_statement_bind *>::test): Rename to...
2747         (is_a_helper <gbind *>::test): ...this.
2748         (is_a_helper <gassign *>::test): New.
2749         (is_a_helper <gimple_statement_call *>::test): Rename to...
2750         (is_a_helper <gcall *>::test): ...this.
2751         (is_a_helper <gimple_statement_catch *>::test): Rename to...
2752         (is_a_helper <gcatch *>::test): ...this.
2753         (is_a_helper <gimple_statement_resx *>::test): Rename to...
2754         (is_a_helper <gresx *>::test): ...this.
2755         (is_a_helper <gcond *>::test): New.
2756         (is_a_helper <gdebug *>::test): New.
2757         (is_a_helper <ggoto *>::test): New.
2758         (is_a_helper <glabel *>::test): New.
2759         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
2760         (is_a_helper <geh_dispatch *>::test): ...this.
2761         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
2762         (is_a_helper <geh_else *>::test): ...this.
2763         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
2764         (is_a_helper <geh_filter *>::test): ...this.
2765         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
2766         (is_a_helper <geh_mnt *>::test): ...this.
2767         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
2768         (is_a_helper <gomp_atomic_load *>::test): ...this.
2769         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
2770         (is_a_helper <gomp_atomic_store *>::test): ...this.
2771         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
2772         (is_a_helper <gomp_continue *>::test): ...this.
2773         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
2774         (is_a_helper <gomp_critical *>::test): ...this.
2775         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
2776         (is_a_helper <gomp_for *>::test): ...this.
2777         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
2778         (is_a_helper <gomp_parallel *>::test): ...this.
2779         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
2780         (is_a_helper <gomp_target *>::test): ...this.
2781         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
2782         (is_a_helper <gomp_sections *>::test): ...this.
2783         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
2784         (is_a_helper <gomp_single *>::test): ...this.
2785         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
2786         (is_a_helper <gomp_teams *>::test): ...this.
2787         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
2788         (is_a_helper <gomp_task *>::test): ...this.
2789         (is_a_helper <gimple_statement_phi *>::test): Rename to...
2790         (is_a_helper <gphi *>::test): ...this.
2791         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
2792         (is_a_helper <gtransaction *>::test): ...this.
2793         (is_a_helper <greturn *>::test): New.
2794         (is_a_helper <gswitch *>::test): New.
2795         (is_a_helper <gimple_statement_try *>::test): Rename to...
2796         (is_a_helper <gtry *>::test): ...this.
2797         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
2798         (is_a_helper <const gasm *>::test): ...this.
2799         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
2800         (is_a_helper <const gbind *>::test): ...this.
2801         (is_a_helper <const gimple_statement_call *>::test): Rename to...
2802         (is_a_helper <const gcall *>::test): ...this.
2803         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
2804         (is_a_helper <const gcatch *>::test): ...this.
2805         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
2806         (is_a_helper <const gresx *>::test): ...this.
2807         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
2808         (is_a_helper <const geh_dispatch *>::test): ...this.
2809         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
2810         (is_a_helper <const geh_filter *>::test): ...this.
2811         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
2812         Rename to...
2813         (is_a_helper <const gomp_atomic_load *>::test): ...this.
2814         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
2815         Rename to...
2816         (is_a_helper <const gomp_atomic_store *>::test): ...this.
2817         (is_a_helper <const gimple_statement_omp_continue *>::test):
2818         Rename to...
2819         (is_a_helper <const gomp_continue *>::test): ...this.
2820         (is_a_helper <const gimple_statement_omp_critical *>::test):
2821         Rename to...
2822         (is_a_helper <const gomp_critical *>::test): ...this.
2823         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
2824         (is_a_helper <const gomp_for *>::test): ...this.
2825         (is_a_helper <const gimple_statement_omp_parallel *>::test):
2826         Rename to...
2827         (is_a_helper <const gomp_parallel *>::test): ...this.
2828         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
2829         (is_a_helper <const gomp_target *>::test): ...this.
2830         (is_a_helper <const gimple_statement_omp_sections *>::test):
2831         Rename to...
2832         (is_a_helper <const gomp_sections *>::test): ...this.
2833         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
2834         (is_a_helper <const gomp_single *>::test): ...this.
2835         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
2836         (is_a_helper <const gomp_teams *>::test): ...this.
2837         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
2838         (is_a_helper <const gomp_task *>::test): ...this.
2839         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
2840         (is_a_helper <const gphi *>::test): ...this.
2841         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
2842         (is_a_helper <const gtransaction *>::test): ...this.
2843         (gimple_build_return): Strengthen return type to greturn *.
2844         (gimple_call_reset_alias_info): Require a gcall *.
2845         (gimple_build_call_vec): Return a gcall *.
2846         (gimple_build_call): Likewise.
2847         (gimple_build_call_valist): Likewise.
2848         (gimple_build_call_internal): Likewise.
2849         (gimple_build_call_internal_vec): Likewise.
2850         (gimple_build_call_from_tree): Likewise.
2851         (gimple_build_assign_stat): Return a gassign *.
2852         (gimple_build_assign_with_ops): Likewise.
2853         (gimple_build_cond): Return a gcond *.
2854         (gimple_build_cond_from_tree): Likewise.
2855         (gimple_cond_set_condition_from_tree): Require a gcond *.
2856         (gimple_build_label): Return a glabel *.
2857         (gimple_build_goto): Return a ggoto *.
2858         (gimple_build_bind): Return a gbind *.
2859         (gimple_build_asm_vec): Return a gasm *.
2860         (gimple_build_catch): Return a gcatch *.
2861         (gimple_build_eh_filter): Return a geh_filter *.
2862         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
2863         (gimple_build_eh_else): Return a geh_else *.
2864         (gimple_build_try): Return a gtry *.
2865         (gimple_build_resx): Return a gresx *.
2866         (gimple_build_switch_nlabels): Return a gswitch *.
2867         (gimple_build_switch): Return a gswitch *.
2868         (gimple_build_eh_dispatch): Return a geh_dispatch *.
2869         (gimple_build_debug_bind_stat): Return a gdebug *.
2870         (gimple_build_debug_source_bind_stat): Return a gdebug *.
2871         (gimple_build_omp_critical): Return a gomp_critical *.
2872         (gimple_build_omp_for): Return a gomp_for *.
2873         (gimple_build_omp_parallel): Return a gomp_parallel *.
2874         (gimple_build_omp_task): Return a gomp_task *.
2875         (gimple_build_omp_continue): Return a gomp_continue *.
2876         (gimple_build_omp_sections): Return a gomp_sections *.
2877         (gimple_build_omp_single): Return a gomp_single *.
2878         (gimple_build_omp_target): Return a gomp_target *.
2879         (gimple_build_omp_teams): Return a gomp_teams *.
2880         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
2881         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
2882         (gimple_build_transaction): Return a gtransaction *.
2883         (gimple_call_arg_flags): Require a const gcall *.
2884         (gimple_call_return_flags): Likewise.
2885         (gimple_call_copy_skip_args): Require and return a gcall *.
2886         (gimple_asm_clobbers_memory_p): Require a const gasm *.
2887         (gimple_seq_first_stmt_as_a_bind): New.
2888         (gimple_assign_nontemporal_move_p): Require a const gassign *
2889         rather than a const_gimple.
2890         (gimple_call_internal_fn): Update for renaming to gcall.
2891         (gimple_call_fntype): Likewise.
2892         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
2893         (gimple_call_set_fn): Likewise.
2894         (gimple_call_set_internal_fn): Likewise.
2895         (gimple_call_set_chain): Likewise.
2896         (gimple_call_set_tail): Likewise.
2897         (gimple_call_tail_p): Likewise.
2898         (gimple_call_set_return_slot_opt): Likewise.
2899         (gimple_call_return_slot_opt_p): Likewise.
2900         (gimple_call_set_from_thunk): Likewise.
2901         (gimple_call_from_thunk_p): Likewise.
2902         (gimple_call_set_va_arg_pack): Likewise.
2903         (gimple_call_va_arg_pack_p): Likewise.
2904         (gimple_call_set_nothrow): Likewise.
2905         (gimple_call_nothrow_p): Likewise.
2906         (gimple_call_set_alloca_for_var): Likewise.
2907         (gimple_call_alloca_for_var_p): Likewise.
2908         (gimple_call_use_set): Likewise.
2909         (gimple_call_clobber_set): Likewise.
2910         (gimple_call_return_type): Require a const gcall * rather than a
2911         const_gimple.
2912         (gimple_call_chain_ptr): Likewise.
2913         (gimple_call_copy_flags): Require a pair of gcall *.
2914         (gimple_cond_set_code): Require a gcond * rather than a gimple
2915         (gimple_cond_set_lhs): Likewise.
2916         (gimple_cond_set_rhs): Likewise.
2917         (gimple_cond_set_true_label): Likewise.
2918         (gimple_cond_set_false_label): Likewise.
2919         (gimple_cond_make_false): Likewise.
2920         (gimple_cond_make_true): Likewise.
2921         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
2922         const_gimple.
2923         (gimple_cond_rhs_ptr): Likewise.
2924         (gimple_cond_true_label): Likewise.
2925         (gimple_cond_false_label): Likewise.
2926         (gimple_cond_true_p): Likewise.
2927         (gimple_cond_false_p): Likewise.
2928         (gimple_cond_set_condition): Likewise.
2929         (gimple_label_label): Require a const glabel *.
2930         (gimple_label_set_label): Require a glabel *.
2931         (gimple_goto_set_dest): Require a ggoto *.
2932         (gimple_bind_vars): Require a const gbind *.
2933         (gimple_bind_block): Likewise.
2934         (gimple_bind_set_vars): Require a gbind *.
2935         (gimple_bind_append_vars): Likewise.
2936         (gimple_bind_body_ptr): Likewise.
2937         (gimple_bind_body): Likewise.
2938         (gimple_bind_set_body): Likewise.
2939         (gimple_bind_add_stmt): Likewise.
2940         (gimple_bind_add_seq): Likewise.
2941         (gimple_bind_set_block): Likewise.
2942         (gimple_asm_ninputs): Require a const gasm *.
2943         (gimple_asm_noutputs): Likewise.
2944         (gimple_asm_nclobbers): Likewise.
2945         (gimple_asm_nlabels): Likewise.
2946         (gimple_asm_input_op): Likewise.
2947         (gimple_asm_input_op_ptr): Likewise.
2948         (gimple_asm_output_op): Likewise.
2949         (gimple_asm_output_op_ptr): Likewise.
2950         (gimple_asm_clobber_op): Likewise.
2951         (gimple_asm_label_op): Likewise.
2952         (gimple_asm_string): Likewise.
2953         (gimple_asm_volatile_p): Likewise.
2954         (gimple_asm_input_p): Likewise.
2955         (gimple_asm_set_input_op): Require a gasm *.
2956         (gimple_asm_set_output_op): Likewise.
2957         (gimple_asm_set_clobber_op): Likewise.
2958         (gimple_asm_set_label_op): Likewise.
2959         (gimple_asm_set_volatile): Likewise.
2960         (gimple_asm_set_input): Likewise.
2961         (gimple_catch_types): Require a const gcatch *.
2962         (gimple_catch_types_ptr): Require a gcatch *.
2963         (gimple_catch_handler_ptr): Likewise.
2964         (gimple_catch_handler): Likewise.
2965         (gimple_catch_set_types): Likewise.
2966         (gimple_catch_set_handler): Likewise.
2967         (gimple_eh_filter_types): Update for renaming of subclass to
2968         geh_filter.
2969         (gimple_eh_filter_types_ptr): Likewise.
2970         (gimple_eh_filter_failure_ptr): Likewise.
2971         (gimple_eh_filter_set_types): Require a geh_filter *.
2972         (gimple_eh_filter_set_failure): Likewise.
2973         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
2974         (gimple_eh_must_not_throw_set_fndecl): Likewise.
2975         (gimple_eh_else_n_body_ptr): Require a geh_else *.
2976         (gimple_eh_else_n_body): Likewise.
2977         (gimple_eh_else_e_body_ptr): Likewise.
2978         (gimple_eh_else_e_body): Likewise.
2979         (gimple_eh_else_set_n_body): Likewise.
2980         (gimple_eh_else_set_e_body): Likewise.
2981         (gimple_try_set_kind): Require a gtry *.
2982         (gimple_try_set_catch_is_cleanup): Likewise.
2983         (gimple_try_set_eval): Likewise.
2984         (gimple_try_set_cleanup): Likewise.
2985         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
2986         (gimple_try_cleanup_ptr): Likewise.
2987         (gimple_phi_capacity): Update for renaming of subclass to gphi.
2988         (gimple_phi_num_args): Likewise.
2989         (gimple_phi_result): Likewise.
2990         (gimple_phi_result_ptr): Likewise.
2991         (gimple_phi_arg): Likewise.
2992         (gimple_phi_set_result): Require a gphi *.
2993         (gimple_phi_set_arg): Likewise.
2994         (gimple_phi_arg_def_ptr): Likewise.
2995         (gimple_phi_arg_edge): Likewise.
2996         (gimple_phi_arg_location): Likewise.
2997         (gimple_phi_arg_location_from_edge): Likewise.
2998         (gimple_phi_arg_set_location): Likewise.
2999         (gimple_phi_arg_has_location): Likewise.
3000         (gimple_resx_region): Require a const gresx *.
3001         (gimple_resx_set_region): Require a gresx *.
3002         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
3003         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
3004         (gimple_switch_num_labels): Require a const gswitch *.
3005         (gimple_switch_set_num_labels): Likewise.
3006         (gimple_switch_index): Likewise.
3007         (gimple_switch_index_ptr): Likewise.
3008         (gimple_switch_label): Likewise.
3009         (gimple_switch_default_label): Likewise.
3010         (gimple_switch_set_index): Require a gswitch *.
3011         (gimple_switch_set_label): Likewise.
3012         (gimple_switch_set_default_label): Likewise.
3013         (gimple_omp_critical_name): Require a const gomp_critical *.
3014         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
3015         (gimple_omp_critical_set_name): Likewise.
3016         (gimple_omp_for_set_kind): Require a gomp_for *.
3017         (gimple_omp_for_set_combined_p): Likewise.
3018         (gimple_omp_for_set_combined_into_p): Likewise.
3019         (gimple_omp_for_clauses): Update for renaming of subclass to
3020         gomp_for.
3021         (gimple_omp_for_clauses_ptr): Likewise.
3022         (gimple_omp_for_set_clauses): Likewise.
3023         (gimple_omp_for_collapse): Likewise.
3024         (gimple_omp_for_index): Likewise.
3025         (gimple_omp_for_index_ptr): Likewise.
3026         (gimple_omp_for_set_index): Likewise.
3027         (gimple_omp_for_initial): Likewise.
3028         (gimple_omp_for_initial_ptr): Likewise.
3029         (gimple_omp_for_set_initial): Likewise.
3030         (gimple_omp_for_final): Likewise.
3031         (gimple_omp_for_final_ptr): Likewise.
3032         (gimple_omp_for_set_final): Likewise.
3033         (gimple_omp_for_incr): Likewise.
3034         (gimple_omp_for_incr_ptr): Likewise.
3035         (gimple_omp_for_set_incr): Likewise.
3036         (gimple_omp_for_pre_body): Likewise.
3037         (gimple_omp_for_set_pre_body): Likewise.
3038         (gimple_omp_parallel_clauses): Update for renaming of subclass to
3039         gomp_parallel.
3040         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
3041         (gimple_omp_parallel_set_clauses): Likewise.
3042         (gimple_omp_parallel_child_fn_ptr): Likewise.
3043         (gimple_omp_parallel_set_child_fn): Likewise.
3044         (gimple_omp_parallel_data_arg_ptr): Likewise.
3045         (gimple_omp_parallel_set_data_arg): Likewise.
3046         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
3047         (gimple_omp_parallel_data_arg): Likewise.
3048         (gimple_omp_task_clauses): Update for renaming of subclass to
3049         gomp_task.
3050         (gimple_omp_task_clauses_ptr): Likewise.
3051         (gimple_omp_task_set_clauses): Likewise.
3052         (gimple_omp_task_child_fn): Likewise.
3053         (gimple_omp_task_child_fn_ptr): Likewise.
3054         (gimple_omp_task_set_child_fn): Likewise.
3055         (gimple_omp_task_data_arg): Likewise.
3056         (gimple_omp_task_data_arg_ptr): Likewise.
3057         (gimple_omp_task_set_data_arg): Likewise.
3058         (gimple_omp_taskreg_clauses): Whitespace fixes.
3059         (gimple_omp_taskreg_clauses_ptr): Likewise.
3060         (gimple_omp_taskreg_set_clauses): Likewise.
3061         (gimple_omp_taskreg_child_fn): Likewise.
3062         (gimple_omp_taskreg_child_fn_ptr): Likewise.
3063         (gimple_omp_taskreg_set_child_fn): Likewise.
3064         (gimple_omp_taskreg_data_arg): Likewise.
3065         (gimple_omp_taskreg_data_arg_ptr): Likewise.
3066         (gimple_omp_taskreg_set_data_arg): Likewise.
3067         (gimple_omp_task_copy_fn): Update for renaming of subclass to
3068         gomp_task.
3069         (gimple_omp_task_copy_fn_ptr): Likewise.
3070         (gimple_omp_task_set_copy_fn): Likewise.
3071         (gimple_omp_task_arg_size): Likewise.
3072         (gimple_omp_task_arg_size_ptr): Likewise.
3073         (gimple_omp_task_set_arg_size): Likewise.
3074         (gimple_omp_task_arg_align): Likewise.
3075         (gimple_omp_task_arg_align_ptr): Likewise.
3076         (gimple_omp_task_set_arg_align): Likewise.
3077         (gimple_omp_single_clauses): Update for renaming of subclass to
3078         gomp_single.
3079         (gimple_omp_single_clauses_ptr): Likewise.
3080         (gimple_omp_single_set_clauses): Likewise.
3081         (gimple_omp_target_clauses): Update for renaming of subclass to
3082         gomp_target.
3083         (gimple_omp_target_clauses_ptr): Likewise.
3084         (gimple_omp_target_set_clauses): Require a gomp_target *.
3085         (gimple_omp_target_set_kind): Likewise.
3086         (gimple_omp_target_child_fn_ptr): Likewise.
3087         (gimple_omp_target_set_child_fn): Likewise.
3088         (gimple_omp_target_data_arg_ptr): Likewise.
3089         (gimple_omp_target_set_data_arg): Likewise.
3090         (gimple_omp_target_child_fn): Require a const gomp_target *.
3091         (gimple_omp_target_data_arg): Likewise.
3092         (gimple_omp_teams_clauses): Update for renaming of subclass to
3093         gomp_teams.
3094         (gimple_omp_teams_clauses_ptr): Likewise.
3095         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
3096         (gimple_omp_sections_clauses): Update for renaming of subclass to
3097         gomp_sections.
3098         (gimple_omp_sections_clauses_ptr): Likewise.
3099         (gimple_omp_sections_set_clauses): Likewise.
3100         (gimple_omp_sections_control): Likewise.
3101         (gimple_omp_sections_control_ptr): Likewise.
3102         (gimple_omp_sections_set_control): Likewise.
3103         (gimple_omp_for_set_cond): Likewise.
3104         (gimple_omp_for_cond): Likewise.
3105         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
3106         (gimple_omp_atomic_store_val_ptr): Likewise.
3107         (gimple_omp_atomic_load_set_lhs): Likewise.
3108         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
3109         (gimple_omp_atomic_load_lhs): Likewise.
3110         (gimple_omp_atomic_load_rhs): Likewise.
3111         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
3112         (gimple_omp_atomic_load_set_rhs): Likewise.
3113         (gimple_omp_atomic_load_rhs_ptr): Likewise.
3114         (gimple_omp_continue_control_def): Require a const gomp_continue *.
3115         (gimple_omp_continue_control_use): Likewise.
3116         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
3117         (gimple_omp_continue_set_control_def): Likewise.
3118         (gimple_omp_continue_control_use_ptr): Likewise.
3119         (gimple_omp_continue_set_control_use): Likewise.
3120         (gimple_transaction_body_ptr): Require a gtransaction *.
3121         (gimple_transaction_body): Likewise.
3122         (gimple_transaction_label_ptr): Likewise.
3123         (gimple_transaction_label): Require a const gtransaction *.
3124         (gimple_transaction_subcode): Likewise.
3125         (gimple_transaction_set_body): Require a gtransaction *.
3126         (gimple_transaction_set_label): Likewise.
3127         (gimple_transaction_set_subcode): Likewise.
3128         (gimple_return_retval_ptr): Require a const greturn *.
3129         (gimple_return_retval): Likewise.
3130         (gimple_return_set_retval): Require a greturn *.
3131         (gimple_expr_type): Introduce local "call_stmt" and use in place of
3132         "stmt" for typesafety.
3133
3134         * asan.c: Use gimple subclasses.
3135         * auto-profile.c: Likewise.
3136         * builtins.c: Likewise.
3137         * builtins.h: Likewise.
3138         * cfgexpand.c: Likewise.
3139         * cfgloop.c: Likewise.
3140         * cfgloopmanip.c: Likewise.
3141         * cgraph.c: Likewise.
3142         * cgraph.h: Likewise.
3143         * cgraphbuild.c: Likewise.
3144         * cgraphclones.c: Likewise.
3145         * cgraphunit.c: Likewise.
3146         * expr.h: Likewise.
3147         * gimple-builder.c: Likewise.
3148         * gimple-builder.h: Likewise.
3149         * gimple-fold.c: Likewise.
3150         * gimple-low.c: Likewise.
3151         * gimple-pretty-print.c: Likewise.
3152         * gimple-ssa-isolate-paths.c: Likewise.
3153         * gimple-ssa-strength-reduction.c: Likewise.
3154         * gimple-streamer-in.c: Likewise.
3155         * gimple-streamer-out.c: Likewise.
3156         * gimple-walk.c: Likewise.
3157         * gimplify-me.c: Likewise.
3158         * gimplify.c: Likewise.
3159         * gimplify.h: Likewise.
3160         * graphite-scop-detection.c: Likewise.
3161         * graphite-sese-to-poly.c: Likewise.
3162         * internal-fn.c: Likewise.
3163         * internal-fn.def:: Likewise.
3164         * internal-fn.h: Likewise.
3165         * ipa-icf-gimple.c: Likewise.
3166         * ipa-icf-gimple.h: Likewise.
3167         * ipa-icf.c: Likewise.
3168         * ipa-inline-analysis.c: Likewise.
3169         * ipa-prop.c: Likewise.
3170         * ipa-prop.h: Likewise.
3171         * ipa-pure-const.c: Likewise.
3172         * ipa-split.c: Likewise.
3173         * lto-streamer-in.c: Likewise.
3174         * lto-streamer-out.c: Likewise.
3175         * omp-low.c: Likewise.
3176         * predict.c: Likewise.
3177         * sanopt.c: Likewise.
3178         * sese.c: Likewise.
3179         * ssa-iterators.h: Likewise.
3180         * stmt.c: Likewise.
3181         * trans-mem.c: Likewise.
3182         * tree-call-cdce.c: Likewise.
3183         * tree-cfg.c: Likewise.
3184         * tree-cfg.h: Likewise.
3185         * tree-cfgcleanup.c: Likewise.
3186         * tree-chkp.c: Likewise.
3187         * tree-chkp.h: Likewise.
3188         * tree-complex.c: Likewise.
3189         * tree-data-ref.c: Likewise.
3190         * tree-dfa.c: Likewise.
3191         * tree-eh.c: Likewise.
3192         * tree-eh.h: Likewise.
3193         * tree-emutls.c: Likewise.
3194         * tree-if-conv.c: Likewise.
3195         * tree-inline.c: Likewise.
3196         * tree-inline.h: Likewise.
3197         * tree-into-ssa.c: Likewise.
3198         * tree-into-ssa.h: Likewise.
3199         * tree-loop-distribution.c: Likewise.
3200         * tree-nrv.c: Likewise.
3201         * tree-object-size.c: Likewise.
3202         * tree-outof-ssa.c: Likewise.
3203         * tree-parloops.c: Likewise.
3204         * tree-phinodes.c: Likewise.
3205         * tree-phinodes.h: Likewise.
3206         * tree-predcom.c: Likewise.
3207         * tree-profile.c: Likewise.
3208         * tree-scalar-evolution.c: Likewise.
3209         * tree-scalar-evolution.h
3210         * tree-sra.cn_function):
3211         * tree-ssa-alias.c: Likewise.
3212         * tree-ssa-alias.h: Likewise.
3213         * tree-ssa-ccp.c: Likewise.
3214         * tree-ssa-coalesce.c: Likewise.
3215         * tree-ssa-copy.c: Likewise.
3216         * tree-ssa-copyrename.c: Likewise.
3217         * tree-ssa-dce.c: Likewise.
3218         * tree-ssa-dom.c: Likewise.
3219         * tree-ssa-forwprop.c: Likewise.
3220         * tree-ssa-ifcombine.c: Likewise.
3221         * tree-ssa-live.c: Likewise.
3222         * tree-ssa-loop-im.c: Likewise.
3223         * tree-ssa-loop-ivcanon.c: Likewise.
3224         * tree-ssa-loop-ivopts.c: Likewise.
3225         * tree-ssa-loop-manip.c: Likewise.
3226         * tree-ssa-loop-niter.c: Likewise.
3227         * tree-ssa-loop-prefetch.c: Likewise.
3228         * tree-ssa-loop-unswitch.c: Likewise.
3229         * tree-ssa-math-opts.c: Likewise.
3230         * tree-ssa-operands.c: Likewise.
3231         * tree-ssa-phiopt.c: Likewise.
3232         * tree-ssa-phiprop.c: Likewise.
3233         * tree-ssa-pre.c: Likewise.
3234         * tree-ssa-propagate.c: Likewise.
3235         * tree-ssa-propagate.h: Likewise.
3236         * tree-ssa-reassoc.c: Likewise.
3237         * tree-ssa-sccvn.c: Likewise.
3238         * tree-ssa-sccvn.h: Likewise.
3239         * tree-ssa-sink.c: Likewise.
3240         * tree-ssa-strlen.c
3241         * tree-ssa-structalias.c
3242         * tree-ssa-tail-merge.c: Likewise.
3243         * tree-ssa-ter.c: Likewise.
3244         * tree-ssa-threadedge.c: Likewise.
3245         * tree-ssa-threadedge.h: Likewise.
3246         * tree-ssa-threadupdate.c: Likewise.
3247         * tree-ssa-uncprop.c: Likewise.
3248         * tree-ssa-uninit.c: Likewise.
3249         * tree-ssa.c: Likewise.
3250         * tree-stdarg.c: Likewise.
3251         * tree-switch-conversion.c: Likewise.
3252         * tree-tailcall.c: Likewise.
3253         * tree-vect-data-refs.c: Likewise.
3254         * tree-vect-generic.c: Likewise.
3255         * tree-vect-loop-manip.c: Likewise.
3256         * tree-vect-loop.c: Likewise.
3257         * tree-vect-patterns.c: Likewise.
3258         * tree-vect-slp.c: Likewise.
3259         * tree-vect-stmts.c: Likewise.
3260         * tree-vectorizer.h: Likewise.
3261         * tree-vrp.c: Likewise.
3262         * tree.c: Likewise.
3263         * ubsan.c: Likewise.
3264         * value-prof.c: Likewise.
3265         * value-prof.h: Likewise.
3266         * vtable-verify.c: Likewise.
3267
3268 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
3269
3270         * config/rs6000/constraints.md: Avoid signed integer overflows.
3271         * config/rs6000/predicates.md: Likewise.
3272
3273 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
3274
3275         PR target/63424
3276         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
3277
3278 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
3279
3280         PR middle-end/63762
3281         * ira.c (ira): Update preferred class.
3282
3283 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
3284
3285         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
3286         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
3287         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
3288         inline overload to use it.  Add unary arg overload.
3289         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
3290         (gimple_assign_set_rhs_from_tree): Use
3291         gimple_assign_set_rhs_with_ops instead of
3292         gimple_assign_set_rhs_with_ops_1.
3293         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
3294         (gimple_assign_set_rhs_with_ops): ... this.
3295         * ipa-split.c (split_function): Remove last NULL argument
3296         from gimple_build_assign_with_ops call.
3297         * tree-ssa-loop-im.c
3298         (move_computations_dom_walker::before_dom_children): Likewise.
3299         * tsan.c (instrument_builtin_call): Likewise.
3300         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
3301         vectorizable_conversion, vectorizable_load): Likewise.
3302         * tree-vect-loop.c (vect_is_simple_reduction_1,
3303         get_initial_def_for_induction): Likewise.
3304         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
3305         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
3306         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
3307         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
3308         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
3309         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
3310         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
3311         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
3312         neg_replacement): Likewise.
3313         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
3314         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
3315         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3316         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
3317         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
3318         simd_clone_adjust): Likewise.
3319         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
3320         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
3321         replace_one_candidate): Likewise.
3322         * gimple-builder.c (build_type_cast): Likewise.
3323         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
3324         (forward_propagate_addr_expr_1): Remove last NULL argument
3325         from gimple_assign_set_rhs_with_ops call.
3326         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
3327         instead of gimple_assign_set_rhs_with_ops_1.
3328         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
3329         argument from gimple_build_assign_with_ops call.
3330         (repropagate_negates): Remove last NULL argument from
3331         gimple_assign_set_rhs_with_ops call.
3332         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
3333         last NULL argument from gimple_build_assign_with_ops call.
3334         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
3335         from gimple_assign_set_rhs_with_ops call.
3336         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
3337         Remove last NULL argument from gimple_build_assign_with_ops call.
3338         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
3339         of gimple_assign_set_rhs_with_ops_1.
3340         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
3341         instead of gimple_assign_set_rhs_with_ops_1.
3342         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
3343         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
3344         from gimple_build_assign_with_ops call.
3345         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
3346         from gimple_assign_set_rhs_with_ops call.
3347         * tree-vrp.c (simplify_truth_ops_using_ranges,
3348         simplify_bit_ops_using_ranges): Remove last NULL argument from
3349         gimple_assign_set_rhs_with_ops call.
3350         (simplify_float_conversion_using_ranges,
3351         simplify_internal_call_using_ranges): Remove last NULL argument from
3352         gimple_build_assign_with_ops call.
3353
3354 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
3355
3356         PR target/61915
3357         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
3358         cost.
3359
3360 2014-11-19  Marek Polacek  <polacek@redhat.com>
3361
3362         PR sanitizer/63690
3363         * ubsan.c (instrument_object_size): Check for MEM_REF.
3364
3365 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
3366
3367         PR regression/63868
3368         * cgraph.c (cgraph_node::create): Guard g->have_offload with
3369         ifdef ENABLE_OFFLOADING.
3370         * omp-low.c (create_omp_child_function): Likewise.
3371         (expand_omp_target): Guard node->mark_force_output and offload_funcs
3372         with ifdef ENABLE_OFFLOADING.
3373         * varpool.c (varpool_node::get_create): Guard g->have_offload and
3374         offload_vars with ifdef ENABLE_OFFLOADING.
3375
3376 2014-11-19  Felix Yang  <felix.yang@huawei.com>
3377             Shanyao Chen  <chenshanyao@huawei.com>
3378
3379         PR target/59593
3380         * config/arm/arm.md (define_attr "arch"): Add v6t2.
3381         (define_attr "arch_enabled"): Add test for the above.
3382         (*movhi_insn_arch4): Add new alternative.
3383
3384 2014-11-19  Richard Henderson  <rth@redhat.com>
3385
3386         * c-family/c-common.c (c_common_reswords): Add
3387         __builtin_call_with_static_chain.
3388         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
3389         * c/c-parser.c (c_parser_postfix_expression): Handle it.
3390         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
3391
3392         * calls.c (prepare_call_address): Allow decl or type for first arg.
3393         (expand_call): Pass type to prepare_call_address if no decl.
3394         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
3395         the function doesn't use it; fold it otherwise.
3396         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
3397         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
3398         function calls.
3399
3400         * targhooks.c (default_static_chain): Remove check for
3401         DECL_STATIC_CHAIN.
3402         * config/moxie/moxie.c (moxie_static_chain): Likewise.
3403         * config/i386/i386.c (ix86_static_chain): Allow decl or type
3404         as the first argument.
3405         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
3406         of the unused first parameter.
3407         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
3408         may be a type.
3409         * target.def (static_chain): Likewise.
3410
3411 2014-11-19  Renlin Li  <renlin.li@arm.com>
3412
3413     * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
3414         __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
3415
3416 2014-11-19  Marek Polacek  <polacek@redhat.com>
3417
3418         PR sanitizer/63879
3419         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
3420         !TYPE_OVERFLOW_SANITIZED.
3421         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
3422         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
3423         is 0.
3424
3425 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
3426
3427         * collect2.c (main): Don't call fatal_error before
3428         diagnostic_initialize.
3429         * lto-wrapper.c (main): Likewise.
3430
3431 2014-11-19  Tom de Vries  <tom@codesourcery.com>
3432
3433         PR tree-optimization/62167
3434         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
3435         conservatively.
3436         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
3437         assigns.
3438
3439 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
3440
3441         PR tree-optimization/63915
3442         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
3443         true instead of false as last argument to gsi_replace.
3444
3445         PR sanitizer/63520
3446         * internal-fn.c (expand_ubsan_result_store): New function.
3447         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
3448         Use it instead of just emit_move_insn.
3449
3450 2014-11-19  Richard Biener  <rguenther@suse.de>
3451
3452         PR tree-optimization/63844
3453         * omp-low.c (fixup_child_record_type): Use a restrict qualified
3454         referece type for the receiver parameter.
3455
3456 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
3457
3458         PR sanitizer/63913
3459         * ubsan.c: Include tree-eh.h.
3460         (instrument_bool_enum_load): Handle loads that can throw.
3461
3462         PR rtl-optimization/63843
3463         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
3464         optimization of ashiftrt of subreg of lshiftrt, check that code
3465         is ASHIFTRT.
3466
3467 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
3468
3469         * attribs.c (decl_attributes): Remove always true condition,
3470         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
3471
3472 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3473
3474         PR target/63937
3475         * target.def (use_by_pieces_infrastructure_p): Take unsigned
3476         HOST_WIDE_INT as the size parameter.
3477         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
3478         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
3479         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
3480         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
3481         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
3482         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
3483         * config/aarch64/aarch64.c
3484         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
3485         * doc/tm.texi: Regenerate.
3486
3487 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
3488
3489         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
3490         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
3491         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
3492         (good_cloning_opportunity_p): Likewise.
3493         (ipa-cp gate): Enable ipa-cp with LTO.
3494         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
3495         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
3496         inheritance.
3497         * ipa-inline-transform.c (inline_transform): Check if there are inlines
3498         to apply even at -O0.
3499         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
3500         (analyze_functions): Build type inheritance graph.
3501         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
3502         (want_early_inline_function_p, want_inline_small_function_p):
3503         Likewise.
3504         (check_callers): Likewise.
3505         (edge_badness): Likewise.
3506         (inline_small_functions): Always be ready for indirect inlining
3507         to happend.
3508         (ipa_inline): Always use want_inline_function_to_all_callers_p.
3509         (early_inline_small_functions): Use opt_for_fn.
3510         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
3511         (estimate_function_body_sizes): Likewise.
3512         (compute_inline_parameters): Likewise.
3513         (estimate_edge_devirt_benefit): Likewise.
3514         (inline_analyze_function): Likewise.
3515         * ipa-devirt.c (ipa_devirt): Likewise.
3516         (gate): Use in_lto_p.
3517         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
3518         (try_make_edge_direct_virtual_call): Likewise.
3519         (update_indirect_edges_after_inlining): Likewise.
3520         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
3521         * common.opt (findirect-inlining): Turn into optimization.
3522         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
3523         (pure_const_generate_summary): Likewise.
3524         (gate_pure_const): Always enable with in_lto_p.
3525
3526 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
3527
3528         * config/mips/mips.md (compression): Add `micromips32' setting.
3529         (enabled, length): Handle it.
3530         (shift_compression): Replace `micromips' with `micromips32' in
3531         the `compression' attribute.
3532         (*add<mode>3, sub<mode>3): Likewise.
3533
3534 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
3535
3536         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
3537         range, a jump otherwise.
3538
3539 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3540
3541         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
3542         Split into...
3543         (cortex_a15_gp_to_vfp): ...This.
3544         (cortex_a15_fp_to_gp): ...And this.
3545         Define and comment bypass from vfp operations to fp->gp moves.
3546
3547 2014-11-18  Martin Liska  <mliska@suse.cz>
3548
3549         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
3550
3551 2014-11-18  Martin Liska  <mliska@suse.cz>
3552
3553         * bt-load.c (add_btr_def): New fibonacci_heap is used.
3554         (migrate_btr_defs): Likewise.
3555
3556 2014-11-18  Martin Liska  <mliska@suse.cz>
3557
3558         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
3559
3560 2014-11-18  Martin Liska  <mliska@suse.cz>
3561
3562         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
3563         (find_traces): Likewise.
3564         (find_traces_1_round): Likewise.
3565
3566 2014-11-18  Martin Liska  <mliska@suse.cz>
3567
3568         * fibonacci_heap.h: New file.
3569         (fibonacci_heap::insert): Created from fibheap_insert.
3570         (fibonacci_heap::empty): Created from fibheap_empty.
3571         (fibonacci_heap::nodes): Created from fibheap_nodes.
3572         (fibonacci_heap::min_key): Created from fibheap_min_key.
3573         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
3574         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
3575         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
3576         (fibonacci_heap::min): Created from fibheap_min.
3577         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
3578         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
3579         (fibonacci_heap::union_with): Created from fibheap_union.
3580         * ipa-inline.c (update_edge_key): New heap API is used.
3581         (update_caller_keys): Likewise.
3582         (update_callee_keys): Likewise.
3583         (lookup_recursive_calls): Likewise.
3584         (recursive_inlining): Likewise.
3585         (add_new_edges_to_heap): Likewise.
3586         (heap_edge_removal_hook): Likewise.
3587         (inline_small_functions): Likewise.
3588
3589 2014-11-18  Marek Polacek  <polacek@redhat.com>
3590
3591         PR sanitizer/63866
3592         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
3593         put it into TYPE_NAME and TYPE_STUB_DECL.
3594         * ubsan.c (ubsan_type_descriptor_type): New variable.
3595         Function renamed to ...
3596         (ubsan_get_type_descriptor_type): ... this.  Cache
3597         return value in ubsan_type_descriptor_type variable.
3598         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
3599         TYPE_NAME and TYPE_STUB_DECL.
3600         (ubsan_get_source_location_type): Create a TYPE_DECL for
3601         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
3602         (ubsan_type_descriptor, ubsan_create_data): Call
3603         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
3604         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
3605
3606 2014-11-18  Felix Yang  <felix.yang@huawei.com>
3607
3608         * config/aarch64/aarch64.c (doloop_end): New pattern.
3609         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
3610
3611 2014-11-18  Jason Merrill  <jason@redhat.com>
3612
3613         * tree.c (warn_deprecated_use): Show declaration with inform.
3614
3615 2014-11-18  Richard Biener  <rguenther@suse.de>
3616
3617         PR tree-optimization/63914
3618         * tree-ssa-ccp.c (canonicalize_value): Remove float value
3619         canonicalization.
3620         (valid_lattice_transition): Allow (partial) transition
3621         from NaN to non-NaN if !HONOR_NANS.
3622         (set_lattice_value): Check for valid lattice transitions
3623         only when checking is enabled.
3624
3625 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
3626
3627         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
3628
3629 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
3630
3631         * config/arm/neon-testgen.ml (emit_prologue): Handle new
3632         compile_test_optim argument.
3633         (emit_automatics): Rename to emit_variables. Support variable
3634         indentation of its output.
3635         (compile_test_optim): New function.
3636         (test_intrinsic): Call compile_test_optim.
3637         * config/arm/neon.ml (features): Add Compiler_optim.
3638         (ops): Add Compiler_optim feature to Vbic and Vorn.
3639         (type_in_crypto_only): Replace 'or' by '||'.
3640         (reinterp): Likewise.
3641         (reinterpq): Likewise.
3642
3643 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
3644
3645         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
3646         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
3647         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
3648         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
3649         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
3650         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
3651         pointer dereference.
3652
3653 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
3654
3655         * tree.c (element_mode, integer_truep): New functions.
3656         * tree.h (element_mode, integer_truep): Declare them.
3657         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
3658         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
3659         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
3660         fold_strip_sign_ops): Use element_mode.
3661         (fold_binary_loc): Use element_mode and element_precision.
3662         * match.pd: Use integer_truep, element_mode, element_precision,
3663         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
3664         vectors. Simplify A/-A.
3665
3666 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3667
3668         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
3669         manual swapping implementation.
3670         (movcond_addsi): Likewise.
3671         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
3672         (arm_select_dominance_cc_mode): Likewise.
3673         (arm_reload_out_hi): Likewise.
3674         (gen_operands_ldrd_strd): Likewise.
3675         (output_move_double): Likewise.
3676         (arm_print_operand_address): Likewise.
3677         (thumb_output_move_mem_multiple): Likewise.
3678         (SWAP_RTX): Delete.
3679
3680 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3681
3682         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
3683         (COPYSIGNF_QUALIFIERS): Likewise.
3684         (CREATE_QUALIFIERS): Likewise.
3685         (DUP_QUALIFIERS): Likewise.
3686         (FLOAT_WIDEN_QUALIFIERS): Likewise.
3687         (FLOAT_NARROW_QUALIFIERS): Likewise.
3688         (REINTERP_QUALIFIERS): Likewise.
3689         (RINT_QUALIFIERS): Likewise.
3690         (SPLIT_QUALIFIERS): Likewise.
3691         (FIXCONV_QUALIFIERS): Likewise.
3692         (SCALARMUL_QUALIFIERS): Likewise.
3693         (SCALARMULL_QUALIFIERS): Likewise.
3694         (SCALARMULH_QUALIFIERS): Likewise.
3695         (SELECT_QUALIFIERS): Likewise.
3696         (VTBX_QUALIFIERS): Likewise.
3697         (SHIFTIMM_QUALIFIERS): Likewise.
3698         (SCALARMAC_QUALIFIERS): Likewise.
3699         (LANEMUL_QUALIFIERS): Likewise.
3700         (LANEMULH_QUALIFIERS): Likewise.
3701         (LANEMULL_QUALIFIERS): Likewise.
3702         (SHIFTACC_QUALIFIERS): Likewise.
3703         (SHIFTINSERT_QUALIFIERS): Likewise.
3704         (VTBL_QUALIFIERS): Likewise.
3705         (LOADSTRUCT_QUALIFIERS): Likewise.
3706         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
3707         (STORESTRUCT_QUALIFIERS): Likewise.
3708         (STORESTRUCTLANE_QUALIFIERS): Likewise.
3709         (neon_builtin_type_mode): Delete.
3710         (v8qi_UP): Map to V8QImode.
3711         (v8qi_UP): Map to V8QImode.
3712         (v4hi_UP): Map to V4HImode.
3713         (v4hf_UP): Map to V4HFmode.
3714         (v2si_UP): Map to V2SImode.
3715         (v2sf_UP): Map to V2SFmode.
3716         (di_UP): Map to DImode.
3717         (v16qi_UP): Map to V16QImode.
3718         (v8hi_UP): Map to V8HImode.
3719         (v4si_UP): Map to V4SImode.
3720         (v4sf_UP): Map to V4SFmode.
3721         (v2di_UP): Map to V2DImode.
3722         (ti_UP): Map to TImode.
3723         (ei_UP): Map to EImode.
3724         (oi_UP): Map to OImode.
3725         (neon_itype): Delete.
3726         (neon_builtin_datum): Remove itype, make mode a machine_mode.
3727         (VAR1): Update accordingly.
3728         (arm_init_neon_builtins): Use machine_mode directly.
3729         (neon_dereference_pointer): Likewise.
3730         (arm_expand_neon_args): Use qualifiers to decide operand types.
3731         (arm_expand_neon_builtin): Likewise.
3732         * config/arm/arm_neon_builtins.def: Remap operation type for
3733         many builtins.
3734
3735 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3736
3737         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
3738         (enum arm_simd_type): Likewise.
3739         (struct arm_simd_type_info): Likewise
3740         (arm_mangle_builtin_scalar_type): Likewise.
3741         (arm_mangle_builtin_vector_type): Likewise.
3742         (arm_mangle_builtin_type): Likewise.
3743         (arm_simd_builtin_std_type): Likewise.
3744         (arm_lookup_simd_builtin_type): Likewise.
3745         (arm_simd_builtin_type): Likewise.
3746         (arm_init_simd_builtin_types): Likewise.
3747         (arm_init_simd_builtin_scalar_types): Likewise.
3748         (arm_init_neon_builtins): Rewrite using qualifiers.
3749         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
3750         * config/arm/arm-simd-builtin-types.def: New file.
3751         * config/arm/t-arm (arm-builtins.o): Depend on it.
3752         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
3753         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
3754         (int16x4_t): Likewise.
3755         (int32x2_t): Likewise.
3756         (float16x4_t): Likewise.
3757         (float32x2_t): Likewise.
3758         (poly8x8_t): Likewise.
3759         (poly16x4_t): Likewise.
3760         (uint8x8_t): Likewise.
3761         (uint16x4_t): Likewise.
3762         (uint32x2_t): Likewise.
3763         (int8x16_t): Likewise.
3764         (int16x8_t): Likewise.
3765         (int32x4_t): Likewise.
3766         (int64x2_t): Likewise.
3767         (float32x4_t): Likewise.
3768         (poly8x16_t): Likewise.
3769         (poly16x8_t): Likewise.
3770         (uint8x16_t): Likewise.
3771         (uint16x8_t): Likewise.
3772         (uint32x4_t): Likewise.
3773         (uint64x2_t): Likewise.
3774
3775 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3776
3777         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
3778         (neon_itype): Add new types corresponding to the types used in
3779         qualifiers names.
3780         (arm_unop_qualifiers): New.
3781         (arm_bswap_qualifiers): Likewise.
3782         (arm_binop_qualifiers): Likewise.
3783         (arm_ternop_qualifiers): Likewise.
3784         (arm_getlane_qualifiers): Likewise.
3785         (arm_lanemac_qualifiers): Likewise.
3786         (arm_setlane_qualifiers): Likewise.
3787         (arm_combine_qualifiers): Likewise.
3788         (arm_load1_qualifiers): Likewise.
3789         (arm_load1_lane_qualifiers): Likewise.
3790         (arm_store1_qualifiers): Likewise.
3791         (arm_storestruct_lane_qualifiers): Likewise.
3792         (UNOP_QUALIFIERS): Likewise.
3793         (DUP_QUALIFIERS): Likewise.
3794         (SPLIT_QUALIFIERS): Likewise.
3795         (CONVERT_QUALIFIERS): Likewise.
3796         (FLOAT_WIDEN_QUALIFIERS): Likewise.
3797         (FLOAT_NARROW_QUALIFIERS): Likewise.
3798         (RINT_QUALIFIERS): Likewise.
3799         (COPYSIGNF_QUALIFIERS): Likewise.
3800         (CREATE_QUALIFIERS): Likewise.
3801         (REINTERP_QUALIFIERS): Likewise.
3802         (BSWAP_QUALIFIERS): Likewise.
3803         (BINOP_QUALIFIERS): Likewise.
3804         (FIXCONV_QUALIFIERS): Likewise.
3805         (SCALARMUL_QUALIFIERS): Likewise.
3806         (SCALARMULL_QUALIFIERS): Likewise.
3807         (SCALARMULH_QUALIFIERS): Likewise.
3808         (TERNOP_QUALIFIERS): Likewise.
3809         (SELECT_QUALIFIERS): Likewise.
3810         (VTBX_QUALIFIERS): Likewise.
3811         (GETLANE_QUALIFIERS): Likewise.
3812         (SHIFTIMM_QUALIFIERS): Likewise.
3813         (LANEMAC_QUALIFIERS): Likewise.
3814         (SCALARMAC_QUALIFIERS): Likewise.
3815         (SETLANE_QUALIFIERS): Likewise.
3816         (SHIFTINSERT_QUALIFIERS): Likewise.
3817         (SHIFTACC_QUALIFIERS): Likewise.
3818         (LANEMUL_QUALIFIERS): Likewise.
3819         (LANEMULL_QUALIFIERS): Likewise.
3820         (LANEMULH_QUALIFIERS): Likewise.
3821         (COMBINE_QUALIFIERS): Likewise.
3822         (VTBL_QUALIFIERS): Likewise.
3823         (LOAD1_QUALIFIERS): Likewise.
3824         (LOADSTRUCT_QUALIFIERS): Likewise.
3825         (LOAD1LANE_QUALIFIERS): Likewise.
3826         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
3827         (STORE1_QUALIFIERS): Likewise.
3828         (STORESTRUCT_QUALIFIERS): Likewise.
3829         (STORE1LANE_QUALIFIERS): Likewise.
3830         (STORESTRUCTLANE_QUALIFIERS): Likewise.
3831         (neon_builtin_datum): Keep track of qualifiers.
3832         (VAR1): Likewise.
3833
3834 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3835
3836         * config/arm/arm-builtins.c (VAR1): Add a comma.
3837         (VAR2): Rewrite in terms of VAR1.
3838         (VAR3-10): Likewise.
3839         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
3840         * config/arm/arm_neon_builtins.def: Remove trailing commas.
3841
3842 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3843
3844         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
3845         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
3846         * config/arm/arm-builtins.c: New.
3847         * config/arm/t-arm (arm_builtins.o): New.
3848         * config/arm/arm-protos.h (arm_expand_builtin): New.
3849         (arm_builtin_decl): Likewise.
3850         (arm_init_builtins): Likewise.
3851         (arm_atomic_assign_expand_fenv): Likewise.
3852         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
3853         (arm_init_builtins): Likewise.
3854         (arm_init_iwmmxt_builtins): Likewise
3855         (safe_vector_operand): Likewise
3856         (arm_expand_binop_builtin): Likewise
3857         (arm_expand_unop_builtin): Likewise
3858         (arm_expand_builtin): Likewise
3859         (arm_builtin_decl): Likewise
3860         (insn_flags): Remove static.
3861         (tune_flags): Likewise.
3862         (enum arm_builtins): Move to config/arm/arm-builtins.c.
3863         (arm_init_neon_builtins): Likewise.
3864         (struct builtin_description): Likewise.
3865         (arm_init_iwmmxt_builtins): Likewise.
3866         (arm_init_fp16_builtins): Likewise.
3867         (arm_init_crc32_builtins): Likewise.
3868         (arm_init_builtins): Likewise.
3869         (arm_builtin_decl): Likewise.
3870         (safe_vector_operand): Likewise.
3871         (arm_expand_ternop_builtin): Likewise.
3872         (arm_expand_binop_builtin): Likewise.
3873         (arm_expand_unop_builtin): Likewise.
3874         (neon_dereference_pointer): Likewise.
3875         (arm_expand_neon_args): Likewise.
3876         (arm_expand_neon_builtin): Likewise.
3877         (neon_split_vcombine): Likewise.
3878         (arm_expand_builtin): Likewise.
3879         (arm_builtin_vectorized_function): Likewise.
3880         (arm_atomic_assign_expand_fenv): Likewise.
3881
3882 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3883
3884         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
3885         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
3886         (FL_ARCH3M): Likewise.
3887         (FL_MODE26): Likewise.
3888         (FL_MODE32): Likewise.
3889         (FL_ARCH4): Likewise.
3890         (FL_ARCH5): Likewise.
3891         (FL_THUMB): Likewise.
3892         (FL_LDSCHED): Likewise.
3893         (FL_STRONG): Likewise.
3894         (FL_ARCH5E): Likewise.
3895         (FL_XSCALE): Likewise.
3896         (FL_ARCH6): Likewise.
3897         (FL_VFPV2): Likewise.
3898         (FL_WBUF): Likewise.
3899         (FL_ARCH6K): Likewise.
3900         (FL_THUMB2): Likewise.
3901         (FL_NOTM): Likewise.
3902         (FL_THUMB_DIV): Likewise.
3903         (FL_VFPV3): Likewise.
3904         (FL_NEON): Likewise.
3905         (FL_ARCH7EM): Likewise.
3906         (FL_ARCH7): Likewise.
3907         (FL_ARM_DIV): Likewise.
3908         (FL_ARCH8): Likewise.
3909         (FL_CRC32): Likewise.
3910         (FL_SMALLMUL): Likewise.
3911         (FL_IWMMXT): Likewise.
3912         (FL_IWMMXT2): Likewise.
3913         (FL_TUNE): Likewise.
3914         (FL_FOR_ARCH2): Likewise.
3915         (FL_FOR_ARCH3): Likewise.
3916         (FL_FOR_ARCH3M): Likewise.
3917         (FL_FOR_ARCH4): Likewise.
3918         (FL_FOR_ARCH4T): Likewise.
3919         (FL_FOR_ARCH5): Likewise.
3920         (FL_FOR_ARCH5T): Likewise.
3921         (FL_FOR_ARCH5E): Likewise.
3922         (FL_FOR_ARCH5TE): Likewise.
3923         (FL_FOR_ARCH5TEJ): Likewise.
3924         (FL_FOR_ARCH6): Likewise.
3925         (FL_FOR_ARCH6J): Likewise.
3926         (FL_FOR_ARCH6K): Likewise.
3927         (FL_FOR_ARCH6Z): Likewise.
3928         (FL_FOR_ARCH6ZK): Likewise.
3929         (FL_FOR_ARCH6T2): Likewise.
3930         (FL_FOR_ARCH6M): Likewise.
3931         (FL_FOR_ARCH7): Likewise.
3932         (FL_FOR_ARCH7A): Likewise.
3933         (FL_FOR_ARCH7VE): Likewise.
3934         (FL_FOR_ARCH7R): Likewise.
3935         (FL_FOR_ARCH7M): Likewise.
3936         (FL_FOR_ARCH7EM): Likewise.
3937         (FL_FOR_ARCH8A): Likewise.
3938         * config/arm/arm-protos.h: Take definitions moved from arm.c.
3939
3940 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3941
3942         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
3943         parameter, rearrange switch statement accordingly.
3944         (arm_evpc_neon_vrev): Remove "Magic Word".
3945         * config/arm/unspecs.md (unspec): Split many UNSPECs to
3946         rounding, or signed/unsigned variants.
3947         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
3948         (vcondu<mode><mode>): Likewise.
3949         (neon_vadd): Remove "Magic Word" operand.
3950         (neon_vaddl): Remove "Magic Word" operand, convert to use
3951         signed/unsigned iterator.
3952         (neon_vaddw): Likewise.
3953         (neon_vhadd): Likewise, also iterate over "rounding" forms.
3954         (neon_vqadd): Remove "Magic Word" operand, convert to use
3955         signed/unsigned iterator.
3956         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
3957         over "rounding" forms.
3958         (neon_vmul): Remove "Magic Word" operand, iterate over
3959         polynomial/float instruction forms.
3960         (neon_vmla): Remove "Magic Word" operand.
3961         (neon_vfma): Likewise.
3962         (neon_vfms): Likewise.
3963         (neon_vmls): Likewise.
3964         (neon_vmlal): Remove "Magic Word" operand, iterate over
3965         signed/unsigned forms.
3966         (neon_vmlsl): Likewise.
3967         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
3968         forms.
3969         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
3970         signed/unsigned forms.
3971         (neon_vqdmlsl): Likewise.
3972         (neon_vmull): Likewise.
3973         (neon_vqdmull): Remove "Magic Word" operand.
3974         (neon_vsub): Remove "Magic Word" operand.
3975         (neon_vsubl): Remove "Magic Word" operand, convert to use
3976         signed/unsigned iterator.
3977         (neon_vsubw): Likewise.
3978         (neon_vhsub): Likewise.
3979         (neon_vqsub): Likewise.
3980         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
3981         over "rounding" forms.
3982         (neon_vceq): Remove "Magic Word" operand.
3983         (neon_vcge): Likewise.
3984         (neon_vcgeu): Likewise.
3985         (neon_vcgt): Likewise.
3986         (neon_vcgtu): Likewise.
3987         (neon_vcle): Likewise.
3988         (neon_vclt): Likewise.
3989         (neon_vcage): Likewise.
3990         (neon_vcagt): Likewise.
3991         (neon_vabd): Remove "Magic Word" operand, iterate over
3992         signed/unsigned forms, and split out...
3993         (neon_vabdf): ...this as new.
3994         (neon_vabdl): Remove "Magic Word" operand, iterate over
3995         signed/unsigned forms.
3996         (neon_vaba): Likewise.
3997         (neon_vmax): Remove "Magic Word" operand, iterate over
3998         signed/unsigned and max/min forms, and split out...
3999         (neon_v<maxmin>f): ...this as new.
4000         (neon_vmin): Delete.
4001         (neon_vpadd): Remove "Magic Word" operand.
4002         (neon_vpaddl): Remove "Magic Word" operand, iterate over
4003         signed/unsigned variants.
4004         (neon_vpadal): Likewise.
4005         (neon_vpmax): Remove "Magic Word" operand, iterate over
4006         signed/unsigned and max/min forms, and split out...
4007         (neon_vp<maxmin>f): ...this as new.
4008         (neon_vpmin): Delete.
4009         (neon_vrecps): Remove "Magic Word" operand.
4010         (neon_vrsqrts): Likewise.
4011         (neon_vabs): Likewise.
4012         (neon_vqabs): Likewise.
4013         (neon_vneg): Likewise.
4014         (neon_vqneg): Likewise.
4015         (neon_vcls): Likewise.
4016         (neon_vcnt): Likewise.
4017         (neon_vrecpe): Likewise.
4018         (neon_vrsqrte): Likewise.
4019         (neon_vmvn): Likewise.
4020         (neon_vget_lane): Likewise.
4021         (neon_vget_laneu): New.
4022         (neon_vget_lanedi): Remove "Magic Word" operand.
4023         (neon_vget_lanev2di): Likewise.
4024         (neon_vcvt): Remove "Magic Word" operand, iterate over
4025         signed/unsigned variants.
4026         (neon_vcvt_n): Likewise.
4027         (neon_vmovn): Remove "Magic Word" operand.
4028         (neon_vqmovn): Remove "Magic Word" operand, iterate over
4029         signed/unsigned variants.
4030         (neon_vmovun): Remove "Magic Word" operand.
4031         (neon_vmovl): Remove "Magic Word" operand, iterate over
4032         signed/unsigned variants.
4033         (neon_vmul_lane): Remove "Magic Word" operand.
4034         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
4035         signed/unsigned variants.
4036         (neon_vqdmull_lane): Remove "Magic Word" operand.
4037         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
4038         rounding variants.
4039         (neon_vmla_lane): Remove "Magic Word" operand.
4040         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
4041         signed/unsigned variants.
4042         (neon_vqdmlal_lane): Remove "Magic Word" operand.
4043         (neon_vmls_lane): Likewise.
4044         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
4045         signed/unsigned variants.
4046         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
4047         (neon_vmul_n): Remove "Magic Word" operand.
4048         (neon_vmull_n): Rename to...
4049         (neon_vmulls_n): ...this, remove "Magic Word" operand.
4050         (neon_vmullu_n): New.
4051         (neon_vqdmull_n): Remove "Magic Word" operand.
4052         (neon_vqdmulh_n): Likewise.
4053         (neon_vqrdmulh_n): New.
4054         (neon_vmla_n): Remove "Magic Word" operand.
4055         (neon_vmls_n): Likewise.
4056         (neon_vmlal_n): Rename to...
4057         (neon_vmlals_n): ...this, remove "Magic Word" operand.
4058         (neon_vmlalu_n): New.
4059         (neon_vqdmlal_n): Remove "Magic Word" operand.
4060         (neon_vmlsl_n): Rename to...
4061         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
4062         (neon_vmlslu_n): New.
4063         (neon_vqdmlsl_n): Remove "Magic Word" operand.
4064         (neon_vrev64): Remove "Magic Word" operand.
4065         (neon_vrev32): Likewise.
4066         (neon_vrev16): Likewise.
4067         (neon_vshl): Remove "Magic Word" operand, iterate over
4068         signed/unsigned and "rounding" forms.
4069         (neon_vqshl): Likewise.
4070         (neon_vshr_n): Likewise.
4071         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
4072         "rounding" forms.
4073         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
4074         signed/unsigned and "rounding" forms.
4075         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
4076         "rounding" forms.
4077         (neon_vshl_n): Remove "Magic Word" operand.
4078         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
4079         signed/unsigned variants.
4080         (neon_vqshlu_n): Remove "Magic Word" operand.
4081         (neon_vshll_n): Remove "Magic Word" operand, iterate over
4082         signed/unsigned variants.
4083         (neon_vsra_n): Remove "Magic Word" operand, iterate over
4084         signed/unsigned and "rounding" forms.
4085         * config/arm/iterators.md (VPF): New.
4086         (VADDL): Likewise.
4087         (VADDW): Likewise.
4088         (VHADD): Likewise.
4089         (VQADD): Likewise.
4090         (VADDHN): Likewise.
4091         (VMLAL): Likewise.
4092         (VMLAL_LANE): Likewise.
4093         (VLMSL): Likewise.
4094         (VMLSL_LANE): Likewise.
4095         (VQDMULH): Likewise,
4096         (VQDMULH_LANE): Likewise.
4097         (VMULL): Likewise.
4098         (VMULL_LANE): Likewise.
4099         (VSUBL): Likewise.
4100         (VSUBW): Likewise.
4101         (VHSUB): Likewise.
4102         (VQSUB): Likewise.
4103         (VSUBHN): Likewise.
4104         (VABD): Likewise.
4105         (VABDL): Likewise.
4106         (VMAXMIN): Likewise.
4107         (VMAXMINF): Likewise.
4108         (VPADDL): Likewise.
4109         (VPADAL): Likewise.
4110         (VPMAXMIN): Likewise.
4111         (VPMAXMINF): Likewise.
4112         (VCVT_US): Likewise.
4113         (VCVT_US_N): Likewise.
4114         (VQMOVN): Likewise.
4115         (VMOVL): Likewise.
4116         (VSHL): Likewise.
4117         (VQSHL): Likewise.
4118         (VSHR_N): Likewise.
4119         (VSHRN_N): Likewise.
4120         (VQSHRN_N): Likewise.
4121         (VQSHRUN_N): Likewise.
4122         (VQSHL_N): Likewise.
4123         (VSHLL_N): Likewise.
4124         (VSRA_N): Likewise.
4125         (pf): Likewise.
4126         (sup): Likewise.
4127         (r): Liekwise.
4128         (maxmin): Likewise.
4129         (shift_op): Likewise.
4130         * config/arm/arm_neon_builtins.def (vaddl): Split to...
4131         (vaddls): ...this and...
4132         (vaddlu): ...this.
4133         (vaddw): Split to...
4134         (vaddws): ...this and...
4135         (vaddwu): ...this.
4136         (vhadd): Split to...
4137         (vhadds): ...this and...
4138         (vhaddu): ...this and...
4139         (vrhadds): ...this and...
4140         (vrhaddu): ...this.
4141         (vqadd): Split to...
4142         (vqadds): ...this and...
4143         (vqaddu): ...this.
4144         (vaddhn): Split to itself and...
4145         (vraddhn): ...this.
4146         (vmul): Split to...
4147         (vmulf): ...this and...
4148         (vmulp): ...this.
4149         (vmlal): Split to...
4150         (vmlals): ...this and...
4151         (vmlalu): ...this.
4152         (vmlsl): Split to...
4153         (vmlsls): ...this and...
4154         (vmlslu): ...this.
4155         (vqdmulh): Split to itself and...
4156         (vqrdmulh): ...this.
4157         (vmull): Split to...
4158         (vmullp): ...this and...
4159         (vmulls): ...this and...
4160         (vmullu): ...this.
4161         (vmull_n): Split to...
4162         (vmulls_n): ...this and...
4163         (vmullu_n): ...this.
4164         (vmull_lane): Split to...
4165         (vmulls_lane): ...this and...
4166         (vmullu_lane): ...this.
4167         (vqdmulh_n): Split to itself and...
4168         (vqrdmulh_n): ...this.
4169         (vqdmulh_lane): Split to itself and...
4170         (vqrdmulh_lane): ...this.
4171         (vshl): Split to...
4172         (vshls): ...this and...
4173         (vshlu): ...this and...
4174         (vrshls): ...this and...
4175         (vrshlu): ...this.
4176         (vqshl): Split to...
4177         (vqshls): ...this and...
4178         (vqrshlu): ...this and...
4179         (vqrshls): ...this and...
4180         (vqrshlu): ...this.
4181         (vshr_n): Split to...
4182         (vshrs_n): ...this and...
4183         (vshru_n): ...this and...
4184         (vrshrs_n): ...this and...
4185         (vrshru_n): ...this.
4186         (vshrn_n): Split to itself and...
4187         (vrshrn_n): ...this.
4188         (vqshrn_n): Split to...
4189         (vqshrns_n): ...this and...
4190         (vqshrnu_n): ...this and...
4191         (vqrshrns_n): ...this and...
4192         (vqrshrnu_n): ...this.
4193         (vqshrun_n): Split to itself and...
4194         (vqrshrun_n): ...this.
4195         (vqshl_n): Split to...
4196         (vqshl_s_n): ...this and...
4197         (vqshl_u_n): ...this.
4198         (vshll_n): Split to...
4199         (vshlls_n): ...this and...
4200         (vshllu_n): ...this.
4201         (vsra_n): Split to...
4202         (vsras_n): ...this and...
4203         (vsrau_n): ...this and.
4204         (vrsras_n): ...this and...
4205         (vrsrau_n): ...this and.
4206         (vsubl): Split to...
4207         (vsubls): ...this and...
4208         (vsublu): ...this.
4209         (vsubw): Split to...
4210         (vsubws): ...this and...
4211         (vsubwu): ...this.
4212         (vqsub): Split to...
4213         (vqsubs): ...this and...
4214         (vqsubu): ...this.
4215         (vhsub): Split to...
4216         (vhsubs): ...this and...
4217         (vhsubu): ...this.
4218         (vsubhn): Split to itself and...
4219         (vrsubhn): ...this.
4220         (vabd): Split to...
4221         (vabds): ...this and...
4222         (vabdu): ...this and...
4223         (vabdf): ...this.
4224         (vabdl): Split to...
4225         (vabdls): ...this and...
4226         (vabdlu): ...this.
4227         (vaba): Split to...
4228         (vabas): ...this and...
4229         (vabau): ...this and...
4230         (vabal): Split to...
4231         (vabals): ...this and...
4232         (vabalu): ...this.
4233         (vmax): Split to...
4234         (vmaxs): ...this and...
4235         (vmaxu): ...this and...
4236         (vmaxf): ...this.
4237         (vmin): Split to...
4238         (vmins): ...this and...
4239         (vminu): ...this and...
4240         (vminf): ...this.
4241         (vpmax): Split to...
4242         (vpmaxs): ...this and...
4243         (vpmaxu): ...this and...
4244         (vpmaxf): ...this.
4245         (vpmin): Split to...
4246         (vpmins): ...this and...
4247         (vpminu): ...this and...
4248         (vpminf): ...this.
4249         (vpaddl): Split to...
4250         (vpaddls): ...this and...
4251         (vpaddlu): ...this.
4252         (vpadal): Split to...
4253         (vpadals): ...this and...
4254         (vpadalu): ...this.
4255         (vget_laneu): New.
4256         (vqmovn): Split to...
4257         (vqmovns): ...this and...
4258         (vqmovnu): ...this.
4259         (vmovl): Split to...
4260         (vmovls): ...this and...
4261         (vmovlu): ...this.
4262         (vmlal_lane): Split to...
4263         (vmlals_lane): ...this and...
4264         (vmlalu_lane): ...this.
4265         (vmlsl_lane): Split to...
4266         (vmlsls_lane): ...this and...
4267         (vmlslu_lane): ...this.
4268         (vmlal_n): Split to...
4269         (vmlals_n): ...this and...
4270         (vmlalu_n): ...this.
4271         (vmlsl_n): Split to...
4272         (vmlsls_n): ...this and...
4273         (vmlslu_n): ...this.
4274         (vext): Make type "SHIFTINSERT".
4275         (vcvt): Split to...
4276         (vcvts): ...this and...
4277         (vcvtu): ...this.
4278         (vcvt_n): Split to...
4279         (vcvts_n): ...this and...
4280         (vcvtu_n): ...this.
4281         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
4282         (vaddl_s16): Likewise.
4283         (vaddl_s32): Likewise.
4284         (vaddl_u8): Likewise.
4285         (vaddl_u16): Likewise.
4286         (vaddl_u32): Likewise.
4287         (vaddw_s8): Likewise.
4288         (vaddw_s16): Likewise.
4289         (vaddw_s32): Likewise.
4290         (vaddw_u8): Likewise.
4291         (vaddw_u16): Likewise.
4292         (vaddw_u32): Likewise.
4293         (vhadd_s8): Likewise.
4294         (vhadd_s16): Likewise.
4295         (vhadd_s32): Likewise.
4296         (vhadd_u8): Likewise.
4297         (vhadd_u16): Likewise.
4298         (vhadd_u32): Likewise.
4299         (vhaddq_s8): Likewise.
4300         (vhaddq_s16): Likewise.
4301         (vhaddq_s32): Likewise.
4302         (vhaddq_u8): Likewise.
4303         (vhaddq_u16): Likewise.
4304         (vrhadd_s8): Likewise.
4305         (vrhadd_s16): Likewise.
4306         (vrhadd_s32): Likewise.
4307         (vrhadd_u8): Likewise.
4308         (vrhadd_u16): Likewise.
4309         (vrhadd_u32): Likewise.
4310         (vrhaddq_s8): Likewise.
4311         (vrhaddq_s16): Likewise.
4312         (vrhaddq_s32): Likewise.
4313         (vrhaddq_u8): Likewise.
4314         (vrhaddq_u16): Likewise.
4315         (vrhaddq_u32): Likewise.
4316         (vqadd_s8): Likewise.
4317         (vqadd_s16): Likewise.
4318         (vqadd_s32): Likewise.
4319         (vqadd_s64): Likewise.
4320         (vqadd_u8): Likewise.
4321         (vqadd_u16): Likewise.
4322         (vqadd_u32): Likewise.
4323         (vqadd_u64): Likewise.
4324         (vqaddq_s8): Likewise.
4325         (vqaddq_s16): Likewise.
4326         (vqaddq_s32): Likewise.
4327         (vqaddq_s64): Likewise.
4328         (vqaddq_u8): Likewise.
4329         (vqaddq_u16): Likewise.
4330         (vqaddq_u32): Likewise.
4331         (vqaddq_u64): Likewise.
4332         (vaddhn_s16): Likewise.
4333         (vaddhn_s32): Likewise.
4334         (vaddhn_s64): Likewise.
4335         (vaddhn_u16): Likewise.
4336         (vaddhn_u32): Likewise.
4337         (vaddhn_u64): Likewise.
4338         (vraddhn_s16): Likewise.
4339         (vraddhn_s32): Likewise.
4340         (vraddhn_s64): Likewise.
4341         (vraddhn_u16): Likewise.
4342         (vraddhn_u32): Likewise.
4343         (vraddhn_u64): Likewise.
4344         (vmul_p8): Likewise.
4345         (vmulq_p8): Likewise.
4346         (vqdmulh_s16): Likewise.
4347         (vqdmulh_s32): Likewise.
4348         (vqdmulhq_s16): Likewise.
4349         (vqdmulhq_s32): Likewise.
4350         (vqrdmulh_s16): Likewise.
4351         (vqrdmulh_s32): Likewise.
4352         (vqrdmulhq_s16): Likewise.
4353         (vqrdmulhq_s32): Likewise.
4354         (vmull_s8): Likewise.
4355         (vmull_s16): Likewise.
4356         (vmull_s32): Likewise.
4357         (vmull_u8): Likewise.
4358         (vmull_u16): Likewise.
4359         (vmull_u32): Likewise.
4360         (vmull_p8): Likewise.
4361         (vqdmull_s16): Likewise.
4362         (vqdmull_s32): Likewise.
4363         (vmla_s8): Likewise.
4364         (vmla_s16): Likewise.
4365         (vmla_s32): Likewise.
4366         (vmla_f32): Likewise.
4367         (vmla_u8): Likewise.
4368         (vmla_u16): Likewise.
4369         (vmla_u32): Likewise.
4370         (vmlaq_s8): Likewise.
4371         (vmlaq_s16): Likewise.
4372         (vmlaq_s32): Likewise.
4373         (vmlaq_f32): Likewise.
4374         (vmlaq_u8): Likewise.
4375         (vmlaq_u16): Likewise.
4376         (vmlaq_u32): Likewise.
4377         (vmlal_s8): Likewise.
4378         (vmlal_s16): Likewise.
4379         (vmlal_s32): Likewise.
4380         (vmlal_u8): Likewise.
4381         (vmlal_u16): Likewise.
4382         (vmlal_u32): Likewise.
4383         (vqdmlal_s16): Likewise.
4384         (vqdmlal_s32): Likewise.
4385         (vmls_s8): Likewise.
4386         (vmls_s16): Likewise.
4387         (vmls_s32): Likewise.
4388         (vmls_f32): Likewise.
4389         (vmls_u8): Likewise.
4390         (vmls_u16): Likewise.
4391         (vmls_u32): Likewise.
4392         (vmlsq_s8): Likewise.
4393         (vmlsq_s16): Likewise.
4394         (vmlsq_s32): Likewise.
4395         (vmlsq_f32): Likewise.
4396         (vmlsq_u8): Likewise.
4397         (vmlsq_u16): Likewise.
4398         (vmlsq_u32): Likewise.
4399         (vmlsl_s8): Likewise.
4400         (vmlsl_s16): Likewise.
4401         (vmlsl_s32): Likewise.
4402         (vmlsl_u8): Likewise.
4403         (vmlsl_u16): Likewise.
4404         (vmlsl_u32): Likewise.
4405         (vqdmlsl_s16): Likewise.
4406         (vqdmlsl_s32): Likewise.
4407         (vfma_f32): Likewise.
4408         (vfmaq_f32): Likewise.
4409         (vfms_f32): Likewise.
4410         (vfmsq_f32): Likewise.
4411         (vsubl_s8): Likewise.
4412         (vsubl_s16): Likewise.
4413         (vsubl_s32): Likewise.
4414         (vsubl_u8): Likewise.
4415         (vsubl_u16): Likewise.
4416         (vsubl_u32): Likewise.
4417         (vsubw_s8): Likewise.
4418         (vsubw_s16): Likewise.
4419         (vsubw_s32): Likewise.
4420         (vsubw_u8): Likewise.
4421         (vsubw_u16): Likewise.
4422         (vsubw_u32): Likewise.
4423         (vhsub_s8): Likewise.
4424         (vhsub_s16): Likewise.
4425         (vhsub_s32): Likewise.
4426         (vhsub_u8): Likewise.
4427         (vhsub_u16): Likewise.
4428         (vhsub_u32): Likewise.
4429         (vhsubq_s8): Likewise.
4430         (vhsubq_s16): Likewise.
4431         (vhsubq_s32): Likewise.
4432         (vhsubq_u8): Likewise.
4433         (vhsubq_u16): Likewise.
4434         (vhsubq_u32): Likewise.
4435         (vqsub_s8): Likewise.
4436         (vqsub_s16): Likewise.
4437         (vqsub_s32): Likewise.
4438         (vqsub_s64): Likewise.
4439         (vqsub_u8): Likewise.
4440         (vqsub_u16): Likewise.
4441         (vqsub_u32): Likewise.
4442         (vqsub_u64): Likewise.
4443         (vqsubq_s8): Likewise.
4444         (vqsubq_s16): Likewise.
4445         (vqsubq_s32): Likewise.
4446         (vqsubq_s64): Likewise.
4447         (vqsubq_u8): Likewise.
4448         (vqsubq_u16): Likewise.
4449         (vqsubq_u32): Likewise.
4450         (vqsubq_u64): Likewise.
4451         (vsubhn_s16): Likewise.
4452         (vsubhn_s32): Likewise.
4453         (vsubhn_s64): Likewise.
4454         (vsubhn_u16): Likewise.
4455         (vsubhn_u32): Likewise.
4456         (vsubhn_u64): Likewise.
4457         (vrsubhn_s16): Likewise.
4458         (vrsubhn_s32): Likewise.
4459         (vrsubhn_s64): Likewise.
4460         (vrsubhn_u16): Likewise.
4461         (vrsubhn_u32): Likewise.
4462         (vrsubhn_u64): Likewise.
4463         (vceq_s8): Likewise.
4464         (vceq_s16): Likewise.
4465         (vceq_s32): Likewise.
4466         (vceq_f32): Likewise.
4467         (vceq_u8): Likewise.
4468         (vceq_u16): Likewise.
4469         (vceq_u32): Likewise.
4470         (vceq_p8): Likewise.
4471         (vceqq_s8): Likewise.
4472         (vceqq_s16): Likewise.
4473         (vceqq_s32): Likewise.
4474         (vceqq_f32): Likewise.
4475         (vceqq_u8): Likewise.
4476         (vceqq_u16): Likewise.
4477         (vceqq_u32): Likewise.
4478         (vceqq_p8): Likewise.
4479         (vcge_s8): Likewise.
4480         (vcge_s16): Likewise.
4481         (vcge_s32): Likewise.
4482         (vcge_f32): Likewise.
4483         (vcge_u8): Likewise.
4484         (vcge_u16): Likewise.
4485         (vcge_u32): Likewise.
4486         (vcgeq_s8): Likewise.
4487         (vcgeq_s16): Likewise.
4488         (vcgeq_s32): Likewise.
4489         (vcgeq_f32): Likewise.
4490         (vcgeq_u8): Likewise.
4491         (vcgeq_u16): Likewise.
4492         (vcgeq_u32): Likewise.
4493         (vcle_s8): Likewise.
4494         (vcle_s16): Likewise.
4495         (vcle_s32): Likewise.
4496         (vcle_f32): Likewise.
4497         (vcle_u8): Likewise.
4498         (vcle_u16): Likewise.
4499         (vcle_u32): Likewise.
4500         (vcleq_s8): Likewise.
4501         (vcleq_s16): Likewise.
4502         (vcleq_s32): Likewise.
4503         (vcleq_f32): Likewise.
4504         (vcleq_u8): Likewise.
4505         (vcleq_u16): Likewise.
4506         (vcleq_u32): Likewise.
4507         (vcgt_s8): Likewise.
4508         (vcgt_s16): Likewise.
4509         (vcgt_s32): Likewise.
4510         (vcgt_f32): Likewise.
4511         (vcgt_u8): Likewise.
4512         (vcgt_u16): Likewise.
4513         (vcgt_u32): Likewise.
4514         (vcgtq_s8): Likewise.
4515         (vcgtq_s16): Likewise.
4516         (vcgtq_s32): Likewise.
4517         (vcgtq_f32): Likewise.
4518         (vcgtq_u8): Likewise.
4519         (vcgtq_u16): Likewise.
4520         (vcgtq_u32): Likewise.
4521         (vclt_s8): Likewise.
4522         (vclt_s16): Likewise.
4523         (vclt_s32): Likewise.
4524         (vclt_f32): Likewise.
4525         (vclt_u8): Likewise.
4526         (vclt_u16): Likewise.
4527         (vclt_u32): Likewise.
4528         (vcltq_s8): Likewise.
4529         (vcltq_s16): Likewise.
4530         (vcltq_s32): Likewise.
4531         (vcltq_f32): Likewise.
4532         (vcltq_u8): Likewise.
4533         (vcltq_u16): Likewise.
4534         (vcltq_u32): Likewise.
4535         (vcage_f32): Likewise.
4536         (vcageq_f32): Likewise.
4537         (vcale_f32): Likewise.
4538         (vcaleq_f32): Likewise.
4539         (vcagt_f32): Likewise.
4540         (vcagtq_f32): Likewise.
4541         (vcalt_f32): Likewise.
4542         (vcaltq_f32): Likewise.
4543         (vtst_s8): Likewise.
4544         (vtst_s16): Likewise.
4545         (vtst_s32): Likewise.
4546         (vtst_u8): Likewise.
4547         (vtst_u16): Likewise.
4548         (vtst_u32): Likewise.
4549         (vtst_p8): Likewise.
4550         (vtstq_s8): Likewise.
4551         (vtstq_s16): Likewise.
4552         (vtstq_s32): Likewise.
4553         (vtstq_u8): Likewise.
4554         (vtstq_u16): Likewise.
4555         (vtstq_u32): Likewise.
4556         (vtstq_p8): Likewise.
4557         (vabd_s8): Likewise.
4558         (vabd_s16): Likewise.
4559         (vabd_s32): Likewise.
4560         (vabd_f32): Likewise.
4561         (vabd_u8): Likewise.
4562         (vabd_u16): Likewise.
4563         (vabd_u32): Likewise.
4564         (vabdq_s8): Likewise.
4565         (vabdq_s16): Likewise.
4566         (vabdq_s32): Likewise.
4567         (vabdq_f32): Likewise.
4568         (vabdq_u8): Likewise.
4569         (vabdq_u16): Likewise.
4570         (vabdq_u32): Likewise.
4571         (vabdl_s8): Likewise.
4572         (vabdl_s16): Likewise.
4573         (vabdl_s32): Likewise.
4574         (vabdl_u8): Likewise.
4575         (vabdl_u16): Likewise.
4576         (vabdl_u32): Likewise.
4577         (vaba_s8): Likewise.
4578         (vaba_s16): Likewise.
4579         (vaba_s32): Likewise.
4580         (vaba_u8): Likewise.
4581         (vaba_u16): Likewise.
4582         (vaba_u32): Likewise.
4583         (vabaq_s8): Likewise.
4584         (vabaq_s16): Likewise.
4585         (vabaq_s32): Likewise.
4586         (vabaq_u8): Likewise.
4587         (vabaq_u16): Likewise.
4588         (vabaq_u32): Likewise.
4589         (vabal_s8): Likewise.
4590         (vabal_s16): Likewise.
4591         (vabal_s32): Likewise.
4592         (vabal_u8): Likewise.
4593         (vabal_u16): Likewise.
4594         (vabal_u32): Likewise.
4595         (vmax_s8): Likewise.
4596         (vmax_s16): Likewise.
4597         (vmax_s32): Likewise.
4598         (vmax_f32): Likewise.
4599         (vmax_u8): Likewise.
4600         (vmax_u16): Likewise.
4601         (vmax_u32): Likewise.
4602         (vmaxq_s8): Likewise.
4603         (vmaxq_s16): Likewise.
4604         (vmaxq_s32): Likewise.
4605         (vmaxq_f32): Likewise.
4606         (vmaxq_u8): Likewise.
4607         (vmaxq_u16): Likewise.
4608         (vmaxq_u32): Likewise.
4609         (vmin_s8): Likewise.
4610         (vmin_s16): Likewise.
4611         (vmin_s32): Likewise.
4612         (vmin_f32): Likewise.
4613         (vmin_u8): Likewise.
4614         (vmin_u16): Likewise.
4615         (vmin_u32): Likewise.
4616         (vminq_s8): Likewise.
4617         (vminq_s16): Likewise.
4618         (vminq_s32): Likewise.
4619         (vminq_f32): Likewise.
4620         (vminq_u8): Likewise.
4621         (vminq_u16): Likewise.
4622         (vminq_u32): Likewise.
4623         (vpadd_s8): Likewise.
4624         (vpadd_s16): Likewise.
4625         (vpadd_s32): Likewise.
4626         (vpadd_f32): Likewise.
4627         (vpadd_u8): Likewise.
4628         (vpadd_u16): Likewise.
4629         (vpadd_u32): Likewise.
4630         (vpaddl_s8): Likewise.
4631         (vpaddl_s16): Likewise.
4632         (vpaddl_s32): Likewise.
4633         (vpaddl_u8): Likewise.
4634         (vpaddl_u16): Likewise.
4635         (vpaddl_u32): Likewise.
4636         (vpaddlq_s8): Likewise.
4637         (vpaddlq_s16): Likewise.
4638         (vpaddlq_s32): Likewise.
4639         (vpaddlq_u8): Likewise.
4640         (vpaddlq_u16): Likewise.
4641         (vpaddlq_u32): Likewise.
4642         (vpadal_s8): Likewise.
4643         (vpadal_s16): Likewise.
4644         (vpadal_s32): Likewise.
4645         (vpadal_u8): Likewise.
4646         (vpadal_u16): Likewise.
4647         (vpadal_u32): Likewise.
4648         (vpadalq_s8): Likewise.
4649         (vpadalq_s16): Likewise.
4650         (vpadalq_s32): Likewise.
4651         (vpadalq_u8): Likewise.
4652         (vpadalq_u16): Likewise.
4653         (vpadalq_u32): Likewise.
4654         (vpmax_s8): Likewise.
4655         (vpmax_s16): Likewise.
4656         (vpmax_s32): Likewise.
4657         (vpmax_f32): Likewise.
4658         (vpmax_u8): Likewise.
4659         (vpmax_u16): Likewise.
4660         (vpmax_u32): Likewise.
4661         (vpmin_s8): Likewise.
4662         (vpmin_s16): Likewise.
4663         (vpmin_s32): Likewise.
4664         (vpmin_f32): Likewise.
4665         (vpmin_u8): Likewise.
4666         (vpmin_u16): Likewise.
4667         (vpmin_u32): Likewise.
4668         (vrecps_f32): Likewise.
4669         (vrecpsq_f32): Likewise.
4670         (vrsqrts_f32): Likewise.
4671         (vrsqrtsq_f32): Likewise.
4672         (vshl_s8): Likewise.
4673         (vshl_s16): Likewise.
4674         (vshl_s32): Likewise.
4675         (vshl_s64): Likewise.
4676         (vshl_u8): Likewise.
4677         (vshl_u16): Likewise.
4678         (vshl_u32): Likewise.
4679         (vshl_u64): Likewise.
4680         (vshlq_s8): Likewise.
4681         (vshlq_s16): Likewise.
4682         (vshlq_s32): Likewise.
4683         (vshlq_s64): Likewise.
4684         (vshlq_u8): Likewise.
4685         (vshlq_u16): Likewise.
4686         (vshlq_u32): Likewise.
4687         (vshlq_u64): Likewise.
4688         (vrshl_s8): Likewise.
4689         (vrshl_s16): Likewise.
4690         (vrshl_s32): Likewise.
4691         (vrshl_s64): Likewise.
4692         (vrshl_u8): Likewise.
4693         (vrshl_u16): Likewise.
4694         (vrshl_u32): Likewise.
4695         (vrshl_u64): Likewise.
4696         (vrshlq_s8): Likewise.
4697         (vrshlq_s16): Likewise.
4698         (vrshlq_s32): Likewise.
4699         (vrshlq_s64): Likewise.
4700         (vrshlq_u8): Likewise.
4701         (vrshlq_u16): Likewise.
4702         (vrshlq_u32): Likewise.
4703         (vrshlq_u64): Likewise.
4704         (vqshl_s8): Likewise.
4705         (vqshl_s16): Likewise.
4706         (vqshl_s32): Likewise.
4707         (vqshl_s64): Likewise.
4708         (vqshl_u8): Likewise.
4709         (vqshl_u16): Likewise.
4710         (vqshl_u32): Likewise.
4711         (vqshl_u64): Likewise.
4712         (vqshlq_s8): Likewise.
4713         (vqshlq_s16): Likewise.
4714         (vqshlq_s32): Likewise.
4715         (vqshlq_s64): Likewise.
4716         (vqshlq_u8): Likewise.
4717         (vqshlq_u16): Likewise.
4718         (vqshlq_u32): Likewise.
4719         (vqshlq_u64): Likewise.
4720         (vqrshl_s8): Likewise.
4721         (vqrshl_s16): Likewise.
4722         (vqrshl_s32): Likewise.
4723         (vqrshl_s64): Likewise.
4724         (vqrshl_u8): Likewise.
4725         (vqrshl_u16): Likewise.
4726         (vqrshl_u32): Likewise.
4727         (vqrshl_u64): Likewise.
4728         (vqrshlq_s8): Likewise.
4729         (vqrshlq_s16): Likewise.
4730         (vqrshlq_s32): Likewise.
4731         (vqrshlq_s64): Likewise.
4732         (vqrshlq_u8): Likewise.
4733         (vqrshlq_u16): Likewise.
4734         (vqrshlq_u32): Likewise.
4735         (vqrshlq_u64): Likewise.
4736         (vshr_n_s8): Likewise.
4737         (vshr_n_s16): Likewise.
4738         (vshr_n_s32): Likewise.
4739         (vshr_n_s64): Likewise.
4740         (vshr_n_u8): Likewise.
4741         (vshr_n_u16): Likewise.
4742         (vshr_n_u32): Likewise.
4743         (vshr_n_u64): Likewise.
4744         (vshrq_n_s8): Likewise.
4745         (vshrq_n_s16): Likewise.
4746         (vshrq_n_s32): Likewise.
4747         (vshrq_n_s64): Likewise.
4748         (vshrq_n_u8): Likewise.
4749         (vshrq_n_u16): Likewise.
4750         (vshrq_n_u32): Likewise.
4751         (vshrq_n_u64): Likewise.
4752         (vrshr_n_s8): Likewise.
4753         (vrshr_n_s16): Likewise.
4754         (vrshr_n_s32): Likewise.
4755         (vrshr_n_s64): Likewise.
4756         (vrshr_n_u8): Likewise.
4757         (vrshr_n_u16): Likewise.
4758         (vrshr_n_u32): Likewise.
4759         (vrshr_n_u64): Likewise.
4760         (vrshrq_n_s8): Likewise.
4761         (vrshrq_n_s16): Likewise.
4762         (vrshrq_n_s32): Likewise.
4763         (vrshrq_n_s64): Likewise.
4764         (vrshrq_n_u8): Likewise.
4765         (vrshrq_n_u16): Likewise.
4766         (vrshrq_n_u32): Likewise.
4767         (vrshrq_n_u64): Likewise.
4768         (vshrn_n_s16): Likewise.
4769         (vshrn_n_s32): Likewise.
4770         (vshrn_n_s64): Likewise.
4771         (vshrn_n_u16): Likewise.
4772         (vshrn_n_u32): Likewise.
4773         (vshrn_n_u64): Likewise.
4774         (vrshrn_n_s16): Likewise.
4775         (vrshrn_n_s32): Likewise.
4776         (vrshrn_n_s64): Likewise.
4777         (vrshrn_n_u16): Likewise.
4778         (vrshrn_n_u32): Likewise.
4779         (vrshrn_n_u64): Likewise.
4780         (vqshrn_n_s16): Likewise.
4781         (vqshrn_n_s32): Likewise.
4782         (vqshrn_n_s64): Likewise.
4783         (vqshrn_n_u16): Likewise.
4784         (vqshrn_n_u32): Likewise.
4785         (vqshrn_n_u64): Likewise.
4786         (vqrshrn_n_s16): Likewise.
4787         (vqrshrn_n_s32): Likewise.
4788         (vqrshrn_n_s64): Likewise.
4789         (vqrshrn_n_u16): Likewise.
4790         (vqrshrn_n_u32): Likewise.
4791         (vqrshrn_n_u64): Likewise.
4792         (vqshrun_n_s16): Likewise.
4793         (vqshrun_n_s32): Likewise.
4794         (vqshrun_n_s64): Likewise.
4795         (vqrshrun_n_s16): Likewise.
4796         (vqrshrun_n_s32): Likewise.
4797         (vqrshrun_n_s64): Likewise.
4798         (vshl_n_s8): Likewise.
4799         (vshl_n_s16): Likewise.
4800         (vshl_n_s32): Likewise.
4801         (vshl_n_s64): Likewise.
4802         (vshl_n_u8): Likewise.
4803         (vshl_n_u16): Likewise.
4804         (vshl_n_u32): Likewise.
4805         (vshl_n_u64): Likewise.
4806         (vshlq_n_s8): Likewise.
4807         (vshlq_n_s16): Likewise.
4808         (vshlq_n_s32): Likewise.
4809         (vshlq_n_s64): Likewise.
4810         (vshlq_n_u8): Likewise.
4811         (vshlq_n_u16): Likewise.
4812         (vshlq_n_u32): Likewise.
4813         (vshlq_n_u64): Likewise.
4814         (vqshl_n_s8): Likewise.
4815         (vqshl_n_s16): Likewise.
4816         (vqshl_n_s32): Likewise.
4817         (vqshl_n_s64): Likewise.
4818         (vqshl_n_u8): Likewise.
4819         (vqshl_n_u16): Likewise.
4820         (vqshl_n_u32): Likewise.
4821         (vqshl_n_u64): Likewise.
4822         (vqshlq_n_s8): Likewise.
4823         (vqshlq_n_s16): Likewise.
4824         (vqshlq_n_s32): Likewise.
4825         (vqshlq_n_s64): Likewise.
4826         (vqshlq_n_u8): Likewise.
4827         (vqshlq_n_u16): Likewise.
4828         (vqshlq_n_u32): Likewise.
4829         (vqshlq_n_u64): Likewise.
4830         (vqshlu_n_s8): Likewise.
4831         (vqshlu_n_s16): Likewise.
4832         (vqshlu_n_s32): Likewise.
4833         (vqshlu_n_s64): Likewise.
4834         (vqshluq_n_s8): Likewise.
4835         (vqshluq_n_s16): Likewise.
4836         (vqshluq_n_s32): Likewise.
4837         (vqshluq_n_s64): Likewise.
4838         (vshll_n_s8): Likewise.
4839         (vshll_n_s16): Likewise.
4840         (vshll_n_s32): Likewise.
4841         (vshll_n_u8): Likewise.
4842         (vshll_n_u16): Likewise.
4843         (vshll_n_u32): Likewise.
4844         (vsra_n_s8): Likewise.
4845         (vsra_n_s16): Likewise.
4846         (vsra_n_s32): Likewise.
4847         (vsra_n_s64): Likewise.
4848         (vsra_n_u8): Likewise.
4849         (vsra_n_u16): Likewise.
4850         (vsra_n_u32): Likewise.
4851         (vsra_n_u64): Likewise.
4852         (vsraq_n_s8): Likewise.
4853         (vsraq_n_s16): Likewise.
4854         (vsraq_n_s32): Likewise.
4855         (vsraq_n_s64): Likewise.
4856         (vsraq_n_u8): Likewise.
4857         (vsraq_n_u16): Likewise.
4858         (vsraq_n_u32): Likewise.
4859         (vsraq_n_u64): Likewise.
4860         (vrsra_n_s8): Likewise.
4861         (vrsra_n_s16): Likewise.
4862         (vrsra_n_s32): Likewise.
4863         (vrsra_n_s64): Likewise.
4864         (vrsra_n_u8): Likewise.
4865         (vrsra_n_u16): Likewise.
4866         (vrsra_n_u32): Likewise.
4867         (vrsra_n_u64): Likewise.
4868         (vrsraq_n_s8): Likewise.
4869         (vrsraq_n_s16): Likewise.
4870         (vrsraq_n_s32): Likewise.
4871         (vrsraq_n_s64): Likewise.
4872         (vrsraq_n_u8): Likewise.
4873         (vrsraq_n_u16): Likewise.
4874         (vrsraq_n_u32): Likewise.
4875         (vrsraq_n_u64): Likewise.
4876         (vabs_s8): Likewise.
4877         (vabs_s16): Likewise.
4878         (vabs_s32): Likewise.
4879         (vabs_f32): Likewise.
4880         (vabsq_s8): Likewise.
4881         (vabsq_s16): Likewise.
4882         (vabsq_s32): Likewise.
4883         (vabsq_f32): Likewise.
4884         (vqabs_s8): Likewise.
4885         (vqabs_s16): Likewise.
4886         (vqabs_s32): Likewise.
4887         (vqabsq_s8): Likewise.
4888         (vqabsq_s16): Likewise.
4889         (vqabsq_s32): Likewise.
4890         (vneg_s8): Likewise.
4891         (vneg_s16): Likewise.
4892         (vneg_s32): Likewise.
4893         (vneg_f32): Likewise.
4894         (vnegq_s8): Likewise.
4895         (vnegq_s16): Likewise.
4896         (vnegq_s32): Likewise.
4897         (vnegq_f32): Likewise.
4898         (vqneg_s8): Likewise.
4899         (vqneg_s16): Likewise.
4900         (vqneg_s32): Likewise.
4901         (vqnegq_s8): Likewise.
4902         (vqnegq_s16): Likewise.
4903         (vqnegq_s32): Likewise.
4904         (vmvn_s8): Likewise.
4905         (vmvn_s16): Likewise.
4906         (vmvn_s32): Likewise.
4907         (vmvn_u8): Likewise.
4908         (vmvn_u16): Likewise.
4909         (vmvn_u32): Likewise.
4910         (vmvn_p8): Likewise.
4911         (vmvnq_s8): Likewise.
4912         (vmvnq_s16): Likewise.
4913         (vmvnq_s32): Likewise.
4914         (vmvnq_u8): Likewise.
4915         (vmvnq_u16): Likewise.
4916         (vmvnq_u32): Likewise.
4917         (vmvnq_p8): Likewise.
4918         (vcls_s8): Likewise.
4919         (vcls_s16): Likewise.
4920         (vcls_s32): Likewise.
4921         (vclsq_s8): Likewise.
4922         (vclsq_s16): Likewise.
4923         (vclsq_s32): Likewise.
4924         (vclz_s8): Likewise.
4925         (vclz_s16): Likewise.
4926         (vclz_s32): Likewise.
4927         (vclz_u8): Likewise.
4928         (vclz_u16): Likewise.
4929         (vclz_u32): Likewise.
4930         (vclzq_s8): Likewise.
4931         (vclzq_s16): Likewise.
4932         (vclzq_s32): Likewise.
4933         (vclzq_u8): Likewise.
4934         (vclzq_u16): Likewise.
4935         (vclzq_u32): Likewise.
4936         (vcnt_s8): Likewise.
4937         (vcnt_u8): Likewise.
4938         (vcnt_p8): Likewise.
4939         (vcntq_s8): Likewise.
4940         (vcntq_u8): Likewise.
4941         (vcntq_p8): Likewise.
4942         (vrecpe_f32): Likewise.
4943         (vrecpe_u32): Likewise.
4944         (vrecpeq_f32): Likewise.
4945         (vrecpeq_u32): Likewise.
4946         (vrsqrte_f32): Likewise.
4947         (vrsqrte_u32): Likewise.
4948         (vrsqrteq_f32): Likewise.
4949         (vrsqrteq_u32): Likewise.
4950         (vget_lane_s8): Likewise.
4951         (vget_lane_s16): Likewise.
4952         (vget_lane_s32): Likewise.
4953         (vget_lane_f32): Likewise.
4954         (vget_lane_u8): Likewise.
4955         (vget_lane_u16): Likewise.
4956         (vget_lane_u32): Likewise.
4957         (vget_lane_p8): Likewise.
4958         (vget_lane_p16): Likewise.
4959         (vget_lane_s64): Likewise.
4960         (vget_lane_u64): Likewise.
4961         (vgetq_lane_s8): Likewise.
4962         (vgetq_lane_s16): Likewise.
4963         (vgetq_lane_s32): Likewise.
4964         (vgetq_lane_f32): Likewise.
4965         (vgetq_lane_u8): Likewise.
4966         (vgetq_lane_u16): Likewise.
4967         (vgetq_lane_u32): Likewise.
4968         (vgetq_lane_p8): Likewise.
4969         (vgetq_lane_p16): Likewise.
4970         (vgetq_lane_s64): Likewise.
4971         (vgetq_lane_u64): Likewise.
4972         (vcvt_s32_f32): Likewise.
4973         (vcvt_f32_s32): Likewise.
4974         (vcvt_f32_u32): Likewise.
4975         (vcvt_u32_f32): Likewise.
4976         (vcvtq_s32_f32): Likewise.
4977         (vcvtq_f32_s32): Likewise.
4978         (vcvtq_f32_u32): Likewise.
4979         (vcvtq_u32_f32): Likewise.
4980         (vcvt_n_s32_f32): Likewise.
4981         (vcvt_n_f32_s32): Likewise.
4982         (vcvt_n_f32_u32): Likewise.
4983         (vcvt_n_u32_f32): Likewise.
4984         (vcvtq_n_s32_f32): Likewise.
4985         (vcvtq_n_f32_s32): Likewise.
4986         (vcvtq_n_f32_u32): Likewise.
4987         (vcvtq_n_u32_f32): Likewise.
4988         (vmovn_s16): Likewise.
4989         (vmovn_s32): Likewise.
4990         (vmovn_s64): Likewise.
4991         (vmovn_u16): Likewise.
4992         (vmovn_u32): Likewise.
4993         (vmovn_u64): Likewise.
4994         (vqmovn_s16): Likewise.
4995         (vqmovn_s32): Likewise.
4996         (vqmovn_s64): Likewise.
4997         (vqmovn_u16): Likewise.
4998         (vqmovn_u32): Likewise.
4999         (vqmovn_u64): Likewise.
5000         (vqmovun_s16): Likewise.
5001         (vqmovun_s32): Likewise.
5002         (vqmovun_s64): Likewise.
5003         (vmovl_s8): Likewise.
5004         (vmovl_s16): Likewise.
5005         (vmovl_s32): Likewise.
5006         (vmovl_u8): Likewise.
5007         (vmovl_u16): Likewise.
5008         (vmovl_u32): Likewise.
5009         (vmul_lane_s16): Likewise.
5010         (vmul_lane_s32): Likewise.
5011         (vmul_lane_f32): Likewise.
5012         (vmul_lane_u16): Likewise.
5013         (vmul_lane_u32): Likewise.
5014         (vmulq_lane_s16): Likewise.
5015         (vmulq_lane_s32): Likewise.
5016         (vmulq_lane_f32): Likewise.
5017         (vmulq_lane_u16): Likewise.
5018         (vmulq_lane_u32): Likewise.
5019         (vmla_lane_s16): Likewise.
5020         (vmla_lane_s32): Likewise.
5021         (vmla_lane_f32): Likewise.
5022         (vmla_lane_u16): Likewise.
5023         (vmla_lane_u32): Likewise.
5024         (vmlaq_lane_s16): Likewise.
5025         (vmlaq_lane_s32): Likewise.
5026         (vmlaq_lane_f32): Likewise.
5027         (vmlaq_lane_u16): Likewise.
5028         (vmlaq_lane_u32): Likewise.
5029         (vmlal_lane_s16): Likewise.
5030         (vmlal_lane_s32): Likewise.
5031         (vmlal_lane_u16): Likewise.
5032         (vmlal_lane_u32): Likewise.
5033         (vqdmlal_lane_s16): Likewise.
5034         (vqdmlal_lane_s32): Likewise.
5035         (vmls_lane_s16): Likewise.
5036         (vmls_lane_s32): Likewise.
5037         (vmls_lane_f32): Likewise.
5038         (vmls_lane_u16): Likewise.
5039         (vmls_lane_u32): Likewise.
5040         (vmlsq_lane_s16): Likewise.
5041         (vmlsq_lane_s32): Likewise.
5042         (vmlsq_lane_f32): Likewise.
5043         (vmlsq_lane_u16): Likewise.
5044         (vmlsq_lane_u32): Likewise.
5045         (vmlsl_lane_s16): Likewise.
5046         (vmlsl_lane_s32): Likewise.
5047         (vmlsl_lane_u16): Likewise.
5048         (vmlsl_lane_u32): Likewise.
5049         (vqdmlsl_lane_s16): Likewise.
5050         (vqdmlsl_lane_s32): Likewise.
5051         (vmull_lane_s16): Likewise.
5052         (vmull_lane_s32): Likewise.
5053         (vmull_lane_u16): Likewise.
5054         (vmull_lane_u32): Likewise.
5055         (vqdmull_lane_s16): Likewise.
5056         (vqdmull_lane_s32): Likewise.
5057         (vqdmulhq_lane_s16): Likewise.
5058         (vqdmulhq_lane_s32): Likewise.
5059         (vqdmulh_lane_s16): Likewise.
5060         (vqdmulh_lane_s32): Likewise.
5061         (vqrdmulhq_lane_s16): Likewise.
5062         (vqrdmulhq_lane_s32): Likewise.
5063         (vqrdmulh_lane_s16): Likewise.
5064         (vqrdmulh_lane_s32): Likewise.
5065         (vmul_n_s16): Likewise.
5066         (vmul_n_s32): Likewise.
5067         (vmul_n_f32): Likewise.
5068         (vmul_n_u16): Likewise.
5069         (vmul_n_u32): Likewise.
5070         (vmulq_n_s16): Likewise.
5071         (vmulq_n_s32): Likewise.
5072         (vmulq_n_f32): Likewise.
5073         (vmulq_n_u16): Likewise.
5074         (vmulq_n_u32): Likewise.
5075         (vmull_n_s16): Likewise.
5076         (vmull_n_s32): Likewise.
5077         (vmull_n_u16): Likewise.
5078         (vmull_n_u32): Likewise.
5079         (vqdmull_n_s16): Likewise.
5080         (vqdmull_n_s32): Likewise.
5081         (vqdmulhq_n_s16): Likewise.
5082         (vqdmulhq_n_s32): Likewise.
5083         (vqdmulh_n_s16): Likewise.
5084         (vqdmulh_n_s32): Likewise.
5085         (vqrdmulhq_n_s16): Likewise.
5086         (vqrdmulhq_n_s32): Likewise.
5087         (vqrdmulh_n_s16): Likewise.
5088         (vqrdmulh_n_s32): Likewise.
5089         (vmla_n_s16): Likewise.
5090         (vmla_n_s32): Likewise.
5091         (vmla_n_f32): Likewise.
5092         (vmla_n_u16): Likewise.
5093         (vmla_n_u32): Likewise.
5094         (vmlaq_n_s16): Likewise.
5095         (vmlaq_n_s32): Likewise.
5096         (vmlaq_n_f32): Likewise.
5097         (vmlaq_n_u16): Likewise.
5098         (vmlaq_n_u32): Likewise.
5099         (vmlal_n_s16): Likewise.
5100         (vmlal_n_s32): Likewise.
5101         (vmlal_n_u16): Likewise.
5102         (vmlal_n_u32): Likewise.
5103         (vqdmlal_n_s16): Likewise.
5104         (vqdmlal_n_s32): Likewise.
5105         (vmls_n_s16): Likewise.
5106         (vmls_n_s32): Likewise.
5107         (vmls_n_f32): Likewise.
5108         (vmls_n_u16): Likewise.
5109         (vmls_n_u32): Likewise.
5110         (vmlsq_n_s16): Likewise.
5111         (vmlsq_n_s32): Likewise.
5112         (vmlsq_n_f32): Likewise.
5113         (vmlsq_n_u16): Likewise.
5114         (vmlsq_n_u32): Likewise.
5115         (vmlsl_n_s16): Likewise.
5116         (vmlsl_n_s32): Likewise.
5117         (vmlsl_n_u16): Likewise.
5118         (vmlsl_n_u32): Likewise.
5119         (vqdmlsl_n_s16): Likewise.
5120         (vqdmlsl_n_s32): Likewise.
5121
5122 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5123
5124         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
5125         Add cost of alu.arith in simple SImode case.
5126
5127 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
5128
5129         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
5130         registers.
5131
5132 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
5133
5134         * opts.c (finish_options): Disable aggressive opts for sanitizer.  
5135         (common_handle_option): Move code to finish_options.  
5136
5137 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
5138
5139         PR sanitizer/63802
5140         * stor-layout.c (min_align_of_type): Respect user alignment
5141         more.
5142
5143 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
5144
5145         * passes.c (remove_cgraph_node_from_order): New.
5146         (do_per_function_toporder): Register cgraph removal
5147         hook.
5148
5149 2014-11-17  Terry Guo  <terry.guo@arm.com>
5150
5151         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
5152         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
5153         (generic_vfp): Likewise.
5154         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
5155
5156 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
5157
5158         PR rtl-optimization/63906
5159         * lra-remat.c (operand_to_remat): Check SP and
5160         frame_pointer_required.
5161
5162 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
5163
5164         * doc/invoke.texi (floop-unroll-and-jam): Document
5165         (loop-unroll-jam-size): Likewise.
5166         (loop-unroll-jam-depth): Likewise.
5167         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
5168         (getScheduleForBandList): Replaced unsafe union_map reuse.
5169
5170 2014-11-17  Andrew Pinski  <apinski@cavium.com>
5171
5172         * config/aarch64/thunderx.md: Remove copyright which should not
5173         have been there.
5174
5175 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
5176             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5177
5178         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
5179         Altivec style vector loads that ignore the bottom 3 bits of the
5180         address.
5181         (rs6000_debug_addr_mask): New function to print the addr_mask
5182         values if debugging.
5183         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
5184         out addr_mask.
5185         (rs6000_setup_reg_addr_masks): Add support for Altivec style
5186         vector loads that ignore the bottom 3 bits of the address.  Allow
5187         pre-increment and pre-decrement on floating point, even if the
5188         -mupper-regs-{sf,df} options were used.
5189         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
5190         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
5191         placement for direct move support.
5192         (rs6000_option_override_internal): Add checks for -mupper-regs-df
5193         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
5194         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
5195         depending on the underlying cpu.
5196         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
5197         (rs6000_secondary_reload_toc_costs): Helper function to identify
5198         costs of a TOC load for secondary reload support.
5199         (rs6000_secondary_reload_memory): Helper function for secondary
5200         reload, to determine if a particular memory operation is directly
5201         handled by the hardware, or if it needs support from secondary
5202         reload to create a valid address.
5203         (rs6000_secondary_reload): Rework code, to be clearer.  If the
5204         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
5205         reload scalar values, since the FPR registers have D-form
5206         addressing. Move most of the code handling memory to the function
5207         rs6000_secondary_reload_memory, and use the reg_addr structure to
5208         determine what type of address modes are supported.  Print more
5209         debug information if -mdebug=addr.
5210         (rs6000_secondary_reload_inner): Rework entire function to be more
5211         general.  Use the reg_addr bits to determine what type of
5212         addressing is supported.
5213         (rs6000_preferred_reload_class): Rework.  Move constant handling
5214         into a single place.  Prefer using FLOAT_REGS for scalar floating
5215         point.
5216         (rs6000_secondary_reload_class): Use a FPR register to move a
5217         value from an Altivec register to a GPR, and vice versa.  Move VSX
5218         handling above traditional floating point.
5219
5220         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
5221         Delete some spaces in the constraints.
5222         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
5223         allow using FPR registers to load/store an Altivec register for
5224         scalar floating point types.
5225         (SF->SF move peephole2): Likewise.
5226         (DFmode splitter): Add a define_split to move floating point
5227         constants to the constant pool before register allocation.
5228         Normally constants are put into the pool immediately, but
5229         -ffast-math delays putting them into the constant pool for the
5230         reciprocal approximation support.
5231         (SFmode splitter): Likewise.
5232
5233         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
5234         (-mupper-regs-sf): Likewise.
5235
5236         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
5237         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
5238         -mupper-regs-sf.
5239         (-mupper-regs): New combination option that sets -mupper-regs-sf
5240         and -mupper-regs-df by default if the cpu supports the instructions.
5241
5242         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5243         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
5244
5245         * config/rs6000/predicates.md (memory_fp_constant): New predicate
5246         to return true if the operand is a floating point constant that
5247         must be put into the constant pool, before register allocation
5248         occurs.
5249
5250         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
5251         -mupper-regs-df by default.
5252         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
5253         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
5254         various -mcpu=... options.
5255         (power7 cpu): Enable -mupper-regs-df by default.
5256
5257         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5258         -mupper-regs.
5259
5260 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
5261
5262         * ira-conflicts.c (build_conflict_bit_table): Add the current
5263         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
5264
5265 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
5266
5267         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
5268         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
5269         (devirtualization_time_bonus): Use it.
5270         (ipcp_discover_new_direct_edges): Likewise.
5271         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
5272         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
5273
5274 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
5275
5276         * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
5277         to optimization_default_node.
5278
5279 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
5280
5281         * cgraphunit.c (analyze_functions): Use opt_for_fn.
5282         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
5283
5284 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
5285
5286         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
5287         (cgraph_node::cannot_return_p): Likewise.
5288         (cgraph_edge::cannot_lead_to_return_p): Likewise.
5289         (cgraph_edge::maybe_hot_p): Likewise.
5290
5291 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
5292
5293         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
5294         (optimize_function_for_size_p): Likewise.
5295         (probably_never_executed): Likewise; replace cfun by fun.
5296
5297 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
5298
5299         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
5300         variant reading from memory and assembling to ld1.
5301
5302         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
5303         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
5304         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
5305         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
5306         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
5307         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
5308         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
5309
5310 2014-11-17  Jason Merrill  <jason@redhat.com>
5311
5312         * tree-inline.c (copy_fn): New.
5313         * tree-inline.h: Declare it.
5314
5315 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
5316
5317         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
5318         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
5319         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
5320         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
5321         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
5322         * config/aarch64/iterators.md (VD1): Remove.
5323
5324 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5325
5326         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
5327         AARCH64_FL_CRYPTO from feature flags.
5328         (cortex-a57): Likewise.
5329         (cortex-a57.cortex-a53): Likewise.
5330
5331 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
5332
5333         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
5334         DECL_FUNCTION_SPECIFIC_TARGET.
5335         * i386.c (ix86_set_current_function): Handle explicit default options.
5336
5337 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5338
5339         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
5340         instead of BNDmode.
5341         (expand_builtin_mempcpy_with_bounds): Likewise.
5342         (expand_builtin_memset_with_bounds): Likewise.
5343
5344 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5345
5346         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
5347         ipa-ref.h, plugin-api.h.
5348         (get_string_length): Handle calls with bounds.
5349         (adjust_last_stmt): Likewise.
5350         (handle_builtin_strchr): Likewise.
5351         (handle_builtin_strcpy): Likewise.
5352         (handle_builtin_memcpy): Likewise.
5353         (handle_builtin_strcat): Likewise.
5354
5355 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5356
5357         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
5358         (chkp_get_nochk_fndecl): New.
5359         (chkp_optimize_string_function_calls): New.
5360         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
5361         * tree-cfg.h (insert_cond_bb): New.
5362         * tree-cfg.c (insert_cond_bb): New.
5363
5364 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5365
5366         * tree-core.h (built_in_class): Add builtin codes to be used
5367         by Pointer Bounds Checker for instrumented builtin functions.
5368         * tree-streamer-in.c: Include ipa-chkp.h.
5369         (streamer_get_builtin_tree): Created instrumented decl if
5370         required.
5371         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
5372         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
5373         function decls.
5374         (chkp_maybe_clone_builtin_fndecl): New.
5375         (chkp_maybe_create_clone): Support builtin function decls.
5376         (chkp_versioning): Clone builtin functions.
5377         * tree-chkp.c (chkp_instrument_normal_builtin): New.
5378         (chkp_add_bounds_to_call_stmt): Support builtin functions.
5379         (chkp_replace_function_pointer): Likewise.
5380         * builtins.c (expand_builtin_memcpy_args): New.
5381         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
5382         (expand_builtin_memcpy_with_bounds): New.
5383         (expand_builtin_mempcpy_with_bounds): New.
5384         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
5385         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
5386         (expand_builtin_memset_with_bounds): New.
5387         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
5388         (expand_builtin_with_bounds): New.
5389         * builtins.h (expand_builtin_with_bounds): New.
5390         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
5391
5392 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
5393
5394         * gimple.h (gimple_set_visited, gimple_visited_p)
5395         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
5396         comments to these accessors.
5397
5398 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
5399
5400         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
5401         Set avr_log_details to "all".
5402
5403 2014-11-17  Richard Biener  <rguenther@suse.de>
5404
5405         PR middle-end/63898
5406         * match.pd: Guard X / CST -> X * CST' transform against
5407         zero CST.
5408
5409 2014-11-17  Terry Guo  <terry.guo@arm.com>
5410
5411         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
5412         format.
5413
5414 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
5415
5416         * ifcvt.c (HAVE_cbranchcc4): Define.
5417         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
5418         Use HAVE_cbranchcc4.
5419
5420 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5421
5422         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
5423         aarch64_convert_mode, aarch64_gen_ccmp_first,
5424         aarch64_gen_ccmp_next): New functions.
5425         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
5426
5427 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5428
5429         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
5430         * aarch64.c (aarch64_nzcv_codes): New data.
5431         (aarch64_ccmp_mode_to_code): New.
5432         (aarch64_print_operand): Output nzcv.
5433         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
5434         New patterns.
5435         (cstore<mode>4): Handle ccmp_cc_register.
5436         * config/aarch64/predicates.md (const0_operand): New.
5437
5438 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5439
5440         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
5441         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
5442         extacted from aarch64_get_condition_code.
5443         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
5444         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
5445
5446 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5447
5448         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
5449         aarch64_ccmp_operand): New constraints.
5450
5451 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5452
5453         * Makefile.in: Add ccmp.o.
5454         * ccmp.c: New file.
5455         * ccmp.h: New file.
5456         * expr.c: include "ccmp.h"
5457         (expand_cond_expr_using_cmove): Handle VOIDmode.
5458         (expand_expr_real_1): Try to expand ccmp.
5459
5460 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5461
5462         * cfgexpand.c (expand_gimple_cond): Check ccmp.
5463         * expmed.c (emit_cstore): Make it global.
5464         * expmed.h: #include "insn-codes.h"
5465         (emit_cstore): New prototype.
5466         * expr.c (expand_operands): Make it global.
5467         * expr.h (expand_operands): New prototype.
5468         * optabs.c (get_rtx_code): Make it global.
5469         * optabs.h (get_rtx_code): New prototype.
5470
5471 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5472
5473         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
5474         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
5475         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
5476
5477 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
5478
5479         PR middle-end/63790
5480         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
5481         Always combine comparisons or conversions from booleans.
5482
5483 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
5484
5485         * ipa-polymorphic-call.c
5486         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
5487         (ipa_polymorphic_call_context::meet_speculation_with): New function.
5488         (ipa_polymorphic_call_context::combine_with): Handle types in construction
5489         better.
5490         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
5491         speculation.
5492         (ipa_polymorphic_call_context::meet_with): New function.
5493         * cgraph.h (class ipa_polymorphic_call_context): Add
5494         meet_width, meet_speculation_with; constify speculation_consistent_p.
5495         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
5496         context.
5497         (propagate_context_accross_jump_function): Likewise; be more cureful.
5498         about set_contains_variable.
5499         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
5500         (find_more_scalar_values_for_callers_subset): Fix.
5501         (find_more_contexts_for_caller_subset): Perform meet operation.
5502
5503 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
5504
5505         * passes.c (execute_one_pass): Do not apply all transforms prior
5506         every simple IPA pass.
5507         * cgraphunit.c: Do not include fibheap.h
5508         (expand_thunk): Use get_untransformed_body.
5509         (cgraph_node::expand): Likewise.
5510         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
5511         * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
5512         (cgraph_node::get_untransformed_body): Break out from ...
5513         (cgraph_node::get_body): ... here; add code to apply all transforms.
5514         * cgraph.h (cgraph_node): Add get_untransformed_body.
5515         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
5516         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
5517         * tree-inline.c (expand_call_inline): LIkewise.
5518         * i386.c (ix86_reset_to_default_globals): Break out from ...
5519         (ix86_set_current_function): ... here;
5520         (ix86_reset_previous_fndecl): Use it.
5521         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
5522
5523 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
5524
5525         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
5526         * doc/tm.texi: Regenerate.
5527
5528 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
5529
5530         * config/sh/sh.c: Do not include algorithm.
5531         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
5532         to swap values.
5533         (sh_emit_compare_and_branch): Ditto.
5534         (sh_emit_compare_and_set): Ditto.
5535         * config/sh/sh.md (replacement peephole2): Ditto.
5536         (cstore4_media): Ditto.
5537         (*fmasf4): Ditto.
5538
5539 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
5540
5541         * lra-remat.c (cand_transf_func): Process regno for
5542         rematerialization too.
5543         * lra.c (lra): Switch on rematerialization pass.
5544
5545 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
5546
5547         * lra.c (lra): Switch off rematerialization pass.
5548
5549 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
5550
5551         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
5552         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
5553         instead of builtins.
5554         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
5555         typedefs.
5556         (_mm_sqrt_sd): Fix comment.
5557         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
5558         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
5559         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
5560         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
5561         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
5562         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
5563         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
5564         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
5565         Use vector extensions instead of builtins.
5566         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
5567         _mm_mullo_epi32): Likewise.
5568         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
5569         New typedefs.
5570         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
5571         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
5572         Use vector extensions instead of builtins.
5573         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
5574         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
5575         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
5576         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
5577         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
5578         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
5579         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
5580         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
5581         New typedefs.
5582         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
5583         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
5584         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
5585         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
5586         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
5587         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
5588         _mm512_div_ps): Use vector extensions instead of builtins.
5589         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
5590         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
5591         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
5592         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
5593         Likewise.
5594
5595 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
5596
5597         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
5598         * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
5599         * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
5600         * opth-gen.awk: Add prototype of cl_optimization_hash.
5601         * tree-streamer-in.c (unpack_ts_optimization): Remove.
5602         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
5603         * tree-streamer-out.c (pack_ts_optimization): Remove.
5604         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
5605
5606 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
5607
5608         * common.opt (flag_loop_unroll_and_jam): New flag.
5609         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
5610         jam flag.
5611         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
5612         * graphite-poly.h (struct poly_bb:map_sepclass): New field
5613         * graphite-poly.c (new_poly_bb): Initialization for new field.
5614         (apply_poly_transforms): Support for unroll and jam flag.
5615         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
5616         separation class.
5617         (generate_luj_sepclass_opt): Build the separation class option.
5618         (generate_luj_options): Set unroll and jam options.
5619         (set_options): Support for unroll and jam options.
5620         (scop_to_isl_ast): Likewise
5621         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
5622         computing the separating class map.
5623         (optimize_isl): Support for the separating class map.
5624         (apply_schedule_map_to_scop): Likewise.
5625         (getScheduleMap): Likewise.
5626         (getScheduleForBand): Likewise.
5627         (getScheduleForBandList): Likewise.
5628         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
5629         * toplev.c (process_options) Likewise.
5630
5631 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
5632
5633         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
5634         from...
5635         (replace_loop_annotate): ...here.  Call it on the header and on the
5636         latch block, if any.  Restore proper behavior of final cleanup.
5637
5638 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
5639
5640         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
5641         for max-completely-peeled-insns limit.
5642
5643 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
5644
5645         * ipa-prop.h (ipa_known_type_data): Remove.
5646         (ipa_binfo_from_known_type_jfunc): Remove.
5647
5648 2014-11-14  Andrew Pinski  <apinski@cavium.com>
5649
5650         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
5651         over to thunderx.
5652         * config/aarch64/aarch64.md: Include thunderx.md.
5653         (generic_sched): Set to no for thunderx.
5654         * config/aarch64/thunderx.md: New file.
5655
5656 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5657
5658         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
5659         tests for 0.0.
5660
5661         * config/rs6000/vector.md (VEC_R): Move secondary reload support
5662         insns to rs6000.md from vector.md.
5663         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
5664         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
5665         (vec_reload_and_plus_<mptrsize>): Likewise.
5666
5667         * config/rs6000/rs6000.md (Fa): New mode attribute to give
5668         constraint for the Altivec registers for a type.
5669         (RELOAD): New mode iterator for all of the types that have
5670         secondary reload address support to load up a base register.
5671         (extendsfdf2_fpr): Use correct constraint.
5672         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
5673         instruction.
5674         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
5675         Generate the non-VSX instruction if all registers were FPRs.  Do
5676         not use the patterns in vsx.md for scalar operations.
5677         (floatsi<mode>2_lfiwax_mem): Likewise.
5678         (floatunssi<mode>2_lfiwzx): Likewise.
5679         (floatunssi<mode>2_lfiwzx_mem): Likewise.
5680         (fix_trunc<mode>di2_fctidz): Likewise.
5681         (fixuns_trunc<mode>di2_fctiduz): Likewise.
5682         (fctiwz_<mode>): Likewise.
5683         (fctiwuz_<mode>): Likewise.
5684         (friz): Likewise.
5685         (floatdidf2_fpr): Likewise.
5686         (floatdidf2_mem): Likewise.
5687         (floatunsdidf2): Likewise.
5688         (floatunsdidf2_fcfidu): Likewise.
5689         (floatunsdidf2_mem): Likewise.
5690         (floatdisf2_fcfids): Likewise.
5691         (floatdisf2_mem): Likewise.
5692         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
5693         it more obvious that the code is for pre-ISA 2.06 machines.
5694         (floatdisf2_internal2): Likewise.
5695         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
5696         Generate the non-VSX instruction if all registers were FPRs.  Do
5697         not use the patterns in vsx.md for scalar operations.
5698         (floatunsdisf2_mem): Likewise.
5699         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
5700         handlers here from vector.md, and expand the types we generate
5701         reload handlers for.
5702         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
5703         (vec_reload_and_plus_<mptrsize>): Likewise.
5704
5705         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
5706         vector forms of the instructions.  Move VSX scalar forms to
5707         rs6000.md, and add support for -mupper-regs-sf.
5708         (vsx_floatuns<VSi><mode>2): Likewise.
5709         (vsx_fix_trunc<mode><VSi>2): Likewise.
5710         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
5711         (vsx_float_fix_<mode>2): Delete DF version, rename to
5712         vsx_float_fix_v2df2.
5713         (vsx_float_fix_v2df2): Likewise.
5714
5715 2014-11-14  Martin Jambor  <mjambor@suse.cz>
5716
5717         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
5718         (ipa_pass_through_data): Removed field type_preserved.
5719         (ipa_ancestor_jf_data): removed fields type and type_preserved.
5720         (ipa_jump_func): Removed field known_type.
5721         (ipa_get_jf_known_type_offset): Removed.
5722         (ipa_get_jf_known_type_base_type): Likewise.
5723         (ipa_get_jf_known_type_component_type): Likewise.
5724         (ipa_get_jf_ancestor_type): Likewise.
5725         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
5726         (ipa_get_jf_pass_through_result): Likewise.
5727         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
5728         (values_equal_for_ipcp_p): Removed BINFO handling.
5729         (ipa_get_indirect_edge_target_1): Updated comment.
5730         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
5731         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
5732         (ipa_set_jf_known_type): Removed.
5733         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
5734         all callers.
5735         (ipa_set_jf_arith_pass_through): Likewise.
5736         (ipa_set_ancestor_jf): Likewise.
5737         (ipa_binfo_from_known_type_jfunc): Removed.
5738         (prop_type_change_info): Removed fields known_current_type and
5739         multiple_types_encountered.
5740         (extr_type_from_vtbl_ptr_store): Removed.
5741         (check_stmt_for_type_change): Do not attempt to identify changed type.
5742         (detect_type_change_from_memory_writes): Do not set the removed fields,
5743         always set jfunc to unknown.
5744         (compute_complex_assign_jump_func): Do not detect dynamic type change.
5745         (compute_complex_ancestor_jump_func): Likewise.
5746         (compute_known_type_jump_func): Removed.
5747         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
5748         change.  Do not comute known type jump functions.
5749         (combine_known_type_and_ancestor_jfs): Removed.
5750         (update_jump_functions_after_inlining): Removed handling of
5751         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
5752         (ipa_write_jump_function): Do not stream removed fields or known type
5753         jump functions.
5754         (ipa_read_jump_function): Likewise.
5755
5756 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
5757
5758         * lra-int.h (lra_create_live_ranges): Add parameter.
5759         * lra-lives.c (temp_bitmap): Move higher.
5760         (initiate_live_solver): Move temp_bitmap initialization into
5761         lra_live_ranges_init.
5762         (finish_live_solver): Move temp_bitmap clearing into
5763         live_ranges_finish.
5764         (process_bb_lives): Add parameter.  Use it to control live info
5765         update and dead insn elimination.  Pass it to mark_regno_live and
5766         mark_regno_dead.
5767         (lra_create_live_ranges): Add parameter.  Pass it to
5768         process_bb_lives.
5769         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
5770         initiate_live_solver and finish_live_solver.
5771         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
5772         Use temp_bitmap to update avail_cands.
5773         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
5774         check with lra_need_for_spill_p after live range pass.  Switch on
5775         rematerialization pass.
5776
5777 2014-11-14  Martin Jambor  <mjambor@suse.cz>
5778
5779         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
5780         agg_preserved flag instead.
5781         (ipa_get_jf_ancestor_type_preserved): Likewise.
5782         (ipa_node_params): Rename known_vals to known_csts, update all users.
5783         New field known_contexts.
5784         (ipa_get_indirect_edge_target): Update prototype.
5785         (ipcp_poly_ctx_values_pool): Declare.
5786         (ipa_context_from_jfunc): Likewise.
5787         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
5788         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
5789         parameter newline of method dump.
5790         * ipa-cp.c (ctxlat): New field.
5791         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
5792         (ipcp_poly_ctx_values_pool):New variable.
5793         (ipa_get_poly_ctx_lat): New function.
5794         (print_ipcp_constant_value): New overloaded function for contexts.
5795         (print_all_lattices): Also print contexts.
5796         (ipa_topo_info): New field contexts;
5797         (set_all_contains_variable): Also set the flag in the context lattice.
5798         (initialize_node_lattices): Likewise for flag bottom.
5799         (ipa_get_jf_ancestor_result): Removed BINFO handling.
5800         (ipa_value_from_jfunc): Likewise.
5801         (ipa_context_from_jfunc): New function.
5802         (values_equal_for_ipcp_p): New overloaded function for contexts.
5803         (allocate_and_init_ipcp_value): Construct the value.
5804         (allocate_and_init_ipcp_value): New overloaded function for contexts.
5805         (propagate_scalar_accross_jump_function): Removed handling of
5806         KNOWN_TYPE jump functions.
5807         (propagate_context_accross_jump_function): New function.
5808         (propagate_constants_accross_call): Also propagate contexts.
5809         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
5810         (ipa_get_indirect_edge_target): Likewise.
5811         (devirtualization_time_bonus): Likewise.
5812         (gather_context_independent_values): Create and populate known_contexts
5813         vector rather than known_binfos.
5814         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
5815         (estimate_local_effects): Likewise.
5816         (add_all_node_vals_to_toposort): Also add contexts to teir topological
5817         sort.
5818         (ipcp_propagate_stage): Also propagate effects of contexts.
5819         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
5820         ipa_get_indirect_edge_target_1.
5821         (cgraph_edge_brings_value_p): New overloaded function for contexts.
5822         (create_specialized_node): Work on contexts rather than BINFOs.
5823         (find_more_contexts_for_caller_subset): New function.
5824         (known_contexts_useful_p): New function.
5825         (copy_useful_known_contexts): Likewise.
5826         (modify_known_vectors_with_val): Likewise.
5827         (ipcp_val_in_agg_replacements_p): Renamed to
5828         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
5829         non-aggregate.
5830         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
5831         (decide_about_value): Work on contexts rather than BINFOs.
5832         (decide_whether_version_node): Likewise.
5833         (ipcp_driver): Initialize the new alloc pool.
5834         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
5835         printing of edge contexts.
5836         (ipa_set_ancestor_jf): Replace assert with conditional setting of
5837         type_preserved to false.
5838         (update_jump_functions_after_inlining): Use access function instead of
5839         reading agg_preserved directly.  Store combined context in the ancestor
5840         case.
5841         (try_make_edge_direct_virtual_call): Work on contexts rather than
5842         BINFOs.
5843         (update_indirect_edges_after_inlining): Get context from
5844         ipa_context_from_jfunc.
5845         (ipa_free_node_params_substructures): Free also known_contexts.
5846         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
5847         (ipa_free_all_structures_after_iinln): Likewise.
5848         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
5849         contexts rather than BINFOs.
5850         (estimate_edge_devirt_benefit): Likewise.
5851         (estimate_edge_size_and_time): Likewise.
5852         (estimate_calls_size_and_time): Likewise.
5853         (estimate_node_size_and_time): Likewise.
5854         (estimate_ipcp_clone_size_and_time): Likewise.
5855         (do_estimate_edge_time): Likewise.
5856         (do_estimate_edge_size): Likewise.
5857         (do_estimate_edge_hints): Likewise.
5858         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
5859         parameter newline, ouput newline only when it is set.
5860         (ipa_polymorphic_call_context::equal_to): New method.
5861
5862 2014-11-14  Martin Jambor  <mjambor@suse.cz>
5863
5864         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
5865         users converted to the same specialization as the using class/function
5866         or specialization on tree.
5867         (ipcp_value): Likewise.
5868         (ipcp_lattice): Likewise.
5869         (ipcp_agg_lattice): Now derived from tree specialization of
5870         ipcp_lattice.
5871         (values_topo): Moved to new class value_topo_info.
5872         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
5873         Updated all callers.
5874         (print_lattice): Turned into ipcp_lattice::print.  Updated all
5875         callers.
5876         (value_topo_info): New class template.
5877         (ipa_topo_info): New field constants.  New constructor.
5878         (build_toporder_info): Do not clear stack_top, only checkign assert
5879         it.
5880         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
5881         Updated all callers.
5882         (set_lattice_contains_variable): Turned into
5883         ipcp_lattice::set_contains_variable.  Updated all callers.
5884         (add_value_source): Turned into ipcp_value::add_source.  Updated all
5885         callers.
5886         (allocate_and_init_ipcp_value): New function.
5887         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
5888         parameter got default a value.  Updated all callers.
5889         (add_scalar_value_to_lattice): Removed, users converted to using
5890         ipcp_lattice::add_value with default value of the last parameter.
5891         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
5892         all callers.
5893         (propagate_effects): Made method of value_topo_info.
5894         (cgraph_edge_brings_value_p): Now a template function.
5895         (get_info_about_necessary_edges): Likewise.
5896         (gather_edges_for_value): Likewise.
5897         (perhaps_add_new_callers): Likewise.
5898         (decide_about_value): Likewise.
5899         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
5900
5901 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
5902
5903         * doc/install.texi (--with-diagnostics-color=): Document.
5904
5905         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
5906         IFN_GOMP_SIMD_LANE without lhs as useless.
5907
5908         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
5909         (varying_state): Add true for can_free.
5910         (check_call): For builtin or internal !nonfreeing_call_p set
5911         local->can_free.
5912         (check_stmt): For asm volatile and asm with "memory" set
5913         local->can_free.
5914         (analyze_function): Clear local->can_free initially, continue
5915         calling check_stmt until all flags are computed, dump can_free
5916         flag.
5917         (pure_const_write_summary): Write can_free flag.
5918         (pure_const_read_summary): Read it back.
5919         (propagate_pure_const): Propagate also can_free flag, set
5920         w->nonfreeing_fn if it is false after propagation.
5921         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
5922         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
5923         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
5924         Also return true for IFN_ABNORMAL_DISPATCHER.
5925         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
5926         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
5927         (input_overwrite_node): Read it back.
5928
5929 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
5930             Marek Polacek  <polacek@redhat.com>
5931
5932         * sanopt.c: Include tree-ssa-operands.h.
5933         (struct sanopt_info): Add has_freeing_call_p,
5934         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
5935         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
5936         being_visited_p fields.
5937         (struct sanopt_ctx): Add asan_check_map field.
5938         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
5939         maybe_optimize_asan_check_ifn): New functions.
5940         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
5941         internal calls.
5942         (pass_sanopt::execute): Call sanopt_optimize even for
5943         -fsanitize=address.
5944         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
5945         internal calls.
5946
5947 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
5948
5949         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
5950         'if (extract_scalar_result)' to the only place that it is true.
5951
5952 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
5953
5954         * config.gcc (default_gnu_indirect_function): Set to yes
5955         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
5956         Android nor uclibc.
5957
5958 2014-11-14  Felix Yang  <felix.yang@huawei.com>
5959             Jiji Jiang  <jiangjiji@huawei.com>
5960
5961         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
5962         VALL mode iterator instead of VALLDI.
5963
5964
5965 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
5966
5967         * optc-save-gen.awk: Output cl_target_option_eq,
5968         cl_target_option_hash, cl_target_option_stream_out,
5969         cl_target_option_stream_in functions.
5970         * opth-gen.awk: Output prototypes for
5971         cl_target_option_eq and cl_target_option_hash.
5972         * lto-streamer.h (cl_target_option_stream_out,
5973         cl_target_option_stream_in): Declare.
5974         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
5975         (cl_option_hash_eq): Use cl_target_option_eq.
5976         * tree-streamer-in.c (unpack_value_fields): Stream in
5977         TREE_TARGET_OPTION.
5978         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
5979         DECL_FUNCTION_SPECIFIC_TARGET.
5980         (hash_tree): Hash TREE_TARGET_OPTION; visit
5981         DECL_FUNCTION_SPECIFIC_TARGET.
5982         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
5983         TS_TARGET_OPTION.
5984         (streamer_write_tree_body): Output TS_TARGET_OPTION.
5985
5986 2014-11-14  Richard Biener  <rguenther@suse.de>
5987
5988         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
5989         valueization hook defaulted to no_follow_ssa_edges.
5990         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
5991         2nd valueization hook to gimple_simplify.
5992         * tree-ssa-ccp.c (valueize_op_1): New function to be
5993         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
5994         (ccp_fold): Adjust.
5995         * tree-vrp.c (vrp_valueize_1): New function to be
5996         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
5997         (vrp_visit_assignment_or_call): Adjust.
5998
5999 2014-11-14  Marek Polacek  <polacek@redhat.com>
6000
6001         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
6002         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
6003         folding with TYPE_OVERFLOW_SANITIZED.
6004
6005 2014-11-14  Marek Polacek  <polacek@redhat.com>
6006
6007         PR sanitizer/63839
6008         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
6009         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
6010         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
6011         Define.
6012         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
6013         instrument BUILT_IN_UNREACHABLE here.
6014         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
6015         const.
6016         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
6017         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
6018         SANITIZE_UNREACHABLE.
6019         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
6020         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
6021
6022 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6023
6024         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
6025         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
6026
6027 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6028
6029         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
6030         BYTES_BIG_ENDIAN.
6031         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
6032         vect_create_epilog_for_reduction): Likewise.
6033         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
6034
6035 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6036
6037         PR target/63724
6038         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
6039         numerical immediate handling to...
6040         (aarch64_internal_mov_immediate): ...this. New.
6041         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
6042         (aarch64_mov_operand_p): Relax predicate.
6043         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
6044         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
6045         for 'n'.
6046         (*movdi_aarch64): Likewise.
6047
6048 2014-11-14  Richard Biener  <rguenther@suse.de>
6049
6050         * match.pd: Implement more binary patterns exercised by
6051         fold_stmt.
6052         * fold-const.c (sing_bit_p): Export.
6053         (exact_inverse): Likewise.
6054         (fold_binary_loc): Remove patterns here.
6055         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
6056         * fold-const.h (sing_bit_p): Declare.
6057         (exact_inverse): Likewise.
6058
6059 2014-11-14  Marek Polacek  <polacek@redhat.com>
6060
6061         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
6062
6063 2014-11-14  Richard Biener  <rguenther@suse.de>
6064
6065         * genmatch.c (add_operator): Allow CONSTRUCTOR.
6066         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
6067         (parser::parse_op): Allow to iterate over predicates.
6068
6069 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6070
6071         * configure.ac (--with-diagnostics-color): New configure
6072         option, default to --with-diagnostics-color=auto.
6073         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
6074         to determine -fdiagnostics-color= option default.
6075         * doc/invoke.texi (-fdiagnostics-color=): Document new
6076         default.
6077         * configure: Regenerated.
6078         * config.in: Regenerated.
6079
6080 2014-11-13  Teresa Johnson  <tejohnson@google.com>
6081
6082         PR tree-optimization/63841
6083         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
6084
6085 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
6086
6087         * timevar.def (TV_SCHED_FUSION): New time var.
6088         * passes.def (pass_sched_fusion): New pass.
6089         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
6090         (extract_base_offset_in_addr, fusion_load_store): New.
6091         (arm_sched_fusion_priority): New.
6092         (arm_option_override): Disable scheduling fusion by default
6093         on non-armv7 processors or ldrd/strd isn't preferred.
6094         * sched-int.h (struct _haifa_insn_data): New field.
6095         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
6096         * sched-rgn.c (rest_of_handle_sched_fusion): New.
6097         (pass_data_sched_fusion, pass_sched_fusion): New.
6098         (make_pass_sched_fusion): New.
6099         * haifa-sched.c (sched_fusion): New.
6100         (insn_cost): Handle sched_fusion.
6101         (priority): Handle sched_fusion by calling target hook.
6102         (enum rfs_decision): New enum value.
6103         (rfs_str): New element for RFS_FUSION.
6104         (rank_for_schedule): Support sched_fusion.
6105         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
6106         (schedule_block, fix_tick_ready): Handle sched_fusion.
6107         * common.opt (flag_schedule_fusion): New.
6108         * tree-pass.h (make_pass_sched_fusion): New.
6109         * target.def (fusion_priority): New.
6110         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
6111         * doc/tm.texi: Regenerated.
6112         * doc/invoke.texi (-fschedule-fusion): New.
6113
6114 2014-11-13  Rong Xu  <xur@google.com>
6115
6116         PR debug/63581
6117         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
6118         footer, instead of unconditionally overwritten.
6119
6120 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6121
6122         * cgraph.h (clear_outer_type): Make public.  Fix comment.
6123         * ipa-devirt.c (possible_polymorphic_call_targets): Use
6124         clear_outer_type when resetting the context.
6125
6126 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
6127
6128         PR bootstrap/63853
6129         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
6130         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
6131
6132 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
6133
6134         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
6135         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
6136         * tree-inline.c (estimate_operator_cost): Likewise.
6137         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
6138         Likewise.
6139
6140         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
6141         against VEC_RSHIFT_EXPR.
6142
6143         * optabs.h (expand_vec_shift_expr): Remove.
6144         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
6145         (expand_vec_shift_expr): Remove.
6146         * tree.def (VEC_RSHIFT_EXPR): Remove
6147
6148 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
6149
6150         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
6151         (shift_amt_for_vec_perm_mask): New.
6152         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
6153         and mask appropriate.
6154
6155         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
6156         (have_whole_vector_shift): New.
6157         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
6158         looking for vec_shr_optab.
6159         (vect_create_epilog_for_reduction): Likewise; also rename local variable
6160         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
6161         instead of VEC_RSHIFT_EXPRs.
6162
6163         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
6164
6165 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
6166
6167         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
6168         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
6169
6170         * tree_vec_data_refs.c (vect_permute_load_chain,
6171         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
6172         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
6173
6174         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
6175         Likewise.
6176         (vect_gen_perm_mask_checked): New.
6177         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
6178         (vect_gen_perm_mask_any): ...this.
6179         (perm_mask_for_reverse): Call can_vec_perm_p and
6180         vect_gen_perm_mask_checked.
6181
6182 2014-11-13  Felix Yang  <felix.yang@huawei.com>
6183
6184         * ipa-utils.h: Fix typo in comments.
6185         * ipa-profile.c: Likewise.
6186         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
6187
6188 2014-11-13  Teresa Johnson  <tejohnson@google.com>
6189
6190         PR tree-optimization/63841
6191         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
6192
6193 2014-11-13  Teresa Johnson  <tejohnson@google.com>
6194
6195         PR tree-optimization/63841
6196         * tree.c (initializer_zerop): A clobber does not zero initialize.
6197
6198 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6199
6200         * optabs.c (prepare_operand): Gracefully fail if the mode of X
6201         does not match the operand mode expected by the insn pattern.
6202
6203 2014-11-13  Richard Biener  <rguenther@suse.de>
6204
6205         * match.pd: Add tcc_comparison, inverted_tcc_comparison
6206         and inverted_tcc_comparison_with_nans operator lists.
6207         Use tcc_comparison in the truth_valued_p predicate definition.
6208         Restrict logical_inverted_value with bit_xor to integral types.
6209         Build a boolean true for simplifying x |^ !x because of
6210         vector types.  Implement patterns from forward_propagate_comparison
6211         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
6212         (get_prop_dest_stmt): Likewise.
6213         (pass_forwprop::execute): Do not call it.
6214         * fold-const.c (fold_unary_loc): Remove the pattern here.
6215
6216 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
6217             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6218
6219         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
6220         tmake_file.
6221         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
6222         accelerator compiler.
6223         * config/i386/intelmic-mkoffload.c: New file.
6224         * config/i386/t-intelmic: Ditto.
6225
6226 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
6227             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6228             Ilya Verbin  <ilya.verbin@intel.com>
6229
6230         * common.opt (foffload, foffload-abi): New options.
6231         * config/i386/i386.c (ix86_offload_options): New static function.
6232         (TARGET_OFFLOAD_OPTIONS): Define.
6233         * coretypes.h (enum offload_abi): New enum.
6234         * doc/tm.texi: Regenerate.
6235         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
6236         * gcc.c (offload_targets): New static variable.
6237         (handle_foffload_option): New static function.
6238         (driver_handle_option): Handle OPT_foffload_.
6239         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
6240         according to offload_targets.
6241         * hooks.c (hook_charptr_void_null): New hook.
6242         * hooks.h (hook_charptr_void_null): Declare.
6243         * lto-opts.c: Include lto-section-names.h.
6244         (lto_write_options): Append options from target offload_options hook and
6245         store them to offload_lto section.  Do not store target-specific,
6246         driver and diagnostic options in offload_lto section.
6247         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
6248         OPT_foffload_abi_.
6249         (append_compiler_options, append_linker_options)
6250         (append_offload_options): New static functions.
6251         (compile_offload_image): Add new arguments with options.
6252         Call append_compiler_options and append_offload_options.
6253         (compile_images_for_offload_targets): Add new arguments with options.
6254         (find_and_merge_options): New static function.
6255         (run_gcc): Outline options handling into the new functions:
6256         find_and_merge_options, append_compiler_options, append_linker_options.
6257         * opts.c (common_handle_option): Don't handle OPT_foffload_.
6258         Forbid OPT_foffload_abi_ for non-offload compiler.
6259         * target.def (offload_options): New target hook.
6260
6261 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
6262             Bernd Schmidt  <bernds@codesourcery.com>
6263             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6264             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6265
6266         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
6267         (process_command): Tweak path construction for the possibility
6268         of being configured as an offload compiler.
6269         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
6270         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
6271         (driver::set_up_specs): Tweak path construction for the possibility of
6272         being configured as an offload compiler.
6273         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
6274         (offload_names, offloadbegin, offloadend): New static variables.
6275         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
6276         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
6277         New static functions.
6278         (run_gcc): Determine whether offload sections are present.  If so, run
6279         compile_images_for_offload_targets and return the names of new generated
6280         objects to linker.  If there are offload sections, but no LTO sections,
6281         then return the copies of input objects without link-time recompilation.
6282
6283 2014-11-13  Richard Biener  <rguenther@suse.de>
6284
6285         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
6286
6287 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
6288             Bernd Schmidt  <bernds@codesourcery.com>
6289             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6290             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6291
6292         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
6293         * cgraphunit.c: Include omp-low.h.
6294         * doc/tm.texi: Regenerate.
6295         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
6296         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
6297         * lto-cgraph.c (output_offload_tables): New function.
6298         (input_offload_tables): Likewise.
6299         * lto-section-in.c (lto_section_name): Add "offload_table".
6300         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
6301         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
6302         * lto-streamer-out.c (lto_output): Call output_offload_tables.
6303         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
6304         (output_offload_tables, input_offload_tables): Declare.
6305         * omp-low.c: Include common/common-target.h and lto-section-names.h.
6306         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
6307         (expand_omp_target): Add child_fn into offload_funcs vector.
6308         (add_decls_addresses_to_decl_constructor): New function.
6309         (omp_finish_file): Likewise.
6310         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
6311         * target.def (record_offload_symbol): New DEFHOOK.
6312         * toplev.c: Include omp-low.h.
6313         (compile_file): Call omp_finish_file.
6314         * varpool.c: Include omp-low.h.
6315         (varpool_node::get_create): Add decl into offload_vars vector.
6316
6317 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
6318             Ilya Tocar  <ilya.tocar@intel.com>
6319             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6320             Bernd Schmidt  <bernds@codesourcery.com>
6321
6322         * cgraph.c: Include context.h.
6323         (cgraph_node::create): Set node->offloadable and g->have_offload if
6324         decl have "omp declare target" attribute.
6325         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
6326         * cgraphunit.c: Include lto-section-names.h.
6327         (ipa_passes): Call ipa_write_summaries if there is something to write to
6328         OFFLOAD_SECTION_NAME_PREFIX sections.
6329         (symbol_table::compile): Set flag_generate_lto if there is something to
6330         offload.
6331         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
6332         * context.c (gcc::context::context): Initialize have_offload with false.
6333         * context.h (class context): Add have_offload flag.
6334         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
6335         flag_generate_lto.
6336         (inline_free_summary): Always remove hooks.
6337         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
6338         from non-offloadable nodes while streaming a node into offload section.
6339         (reachable_from_other_partition_p): Likewise.
6340         (select_what_to_stream): New function.
6341         (compute_ltrans_boundary): Do not call
6342         lto_set_symtab_encoder_in_partition if the node should not be streamed.
6343         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
6344         (section_name_prefix): Declare.
6345         * lto-streamer.c (section_name_prefix): New variable.
6346         (lto_get_section_name): Use section_name_prefix instead of
6347         LTO_SECTION_NAME_PREFIX.
6348         * lto-streamer.h (select_what_to_stream): Declare.
6349         * omp-low.c: Include context.h.
6350         (is_targetreg_ctx): New function.
6351         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
6352         (create_omp_child_function, check_omp_nesting_restrictions): Use new
6353         is_targetreg_ctx function.  Replace usage of "omp declare target"
6354         attribute with a cgraph_node flag offloadable.
6355         (expand_omp_target): Set mark_force_output for offloadable functions.
6356         (lower_omp_critical): Set offloadable flag for omp critical symbol.
6357         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
6358         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
6359         if the node should not be streamed out.
6360         * tree-pass.h (ipa_write_summaries): New bool argument.
6361         * varpool.c: Include context.h.
6362         (varpool_node::get_create): Set node->offloadable and g->have_offload if
6363         decl have "omp declare target" attribute.
6364
6365 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
6366             Thomas Schwinge  <thomas@codesourcery.com>
6367             Ilya Verbin  <ilya.verbin@intel.com>
6368             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6369
6370         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
6371         (enable_as_accelerator): New variables substituted by configure.
6372         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
6373         being configured as an offload compiler.
6374         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
6375         ACCEL_DIR_SUFFIX.
6376         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
6377         install for the offload compiler.
6378         * config.in: Regenerate.
6379         * configure: Regenerate.
6380         * configure.ac (real_target_noncanonical, accel_dir_suffix)
6381         (enable_as_accelerator): Compute new variables.
6382         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
6383         (OFFLOAD_TARGETS): List of target names suitable for offloading.
6384         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
6385         * doc/install.texi (Options specification): Document
6386         --enable-as-accelerator-for and --enable-offload-targets.
6387
6388 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
6389
6390         PR tree-optimization/63828
6391         * ipa-polymorphic-call.c (possible_placement_new): Check
6392         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
6393
6394 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6395
6396         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
6397         (REVERSIBLE_CC_MODE): Fix example.
6398         (REVERSE_CONDITION): Fix typo.
6399         * doc/tm.texi: Regenerate.
6400
6401 2014-11-13  Tom de Vries  <tom@codesourcery.com>
6402
6403         * omp-low.c (pass_data_expand_omp): Set properties_provided to
6404         PROP_gimple_eomp.
6405         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
6406         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
6407         exit if gate is false.
6408         (pass_data pass_data_expand_omp_ssa): New pass_data.
6409         (class pass_expand_omp_ssa): New pass.
6410         (make_pass_expand_omp_ssa): New function.
6411         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
6412         instead of NEXT_PASS.
6413         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
6414         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
6415         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
6416         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
6417         cfun->omp_expand_needed.
6418         * tree-pass.h: Add define PROP_gimple_eomp.
6419         (make_pass_expand_omp_ssa): Declare.
6420
6421 2014-11-13  Marek Polacek  <polacek@redhat.com>
6422
6423         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
6424         * fold-const.c (fold_binary_loc): Use it.
6425         * match.pd: Likewise.
6426
6427 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
6428
6429         * lra-lives.c (struct bb_data): Rename to ...
6430         (struct bb_data_pseudos): ... this.
6431         (initiate_live_solver): Update struct name.
6432
6433 2014-11-13  Richard Biener  <rguenther@suse.de>
6434
6435         * match.pd: Implement conditional expression patterns.
6436         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
6437         them here.
6438         (combine_cond_exprs): Remove.
6439         (pass_forwprop::execute): Do not call combine_cond_exprs.
6440         * fold-const.c (fold_ternary_loc): Remove patterns here.
6441         (pedantic_omit_one_operand_loc): Remove.
6442
6443 2014-12-13  Richard Biener  <rguenther@suse.de>
6444
6445         PR middle-end/61559
6446         * match.pd: Implement bswap patterns for transforms checked by
6447         gcc.dg/builtin-bswap-8.c.
6448
6449 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
6450
6451         * lra.c (lra): Switch off rematerialization pass.
6452
6453 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
6454
6455         * common.opt (flra-remat): New.
6456         * opts.c (default_options_table): Add entry for flra_remat.
6457         * timevar_def (TV_LRA_REMAT): New.
6458         * doc/invoke.texi (-flra-remat): Add description of the new
6459         option.
6460         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
6461         lra-saves.c.  Add lra-remat.c.
6462         * Makefile.in (OBJS): Add lra-remat.o.
6463         * lra-remat.c: New file.
6464         * lra.c: Add info about the rematerialization pass in the top
6465         comment.
6466         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
6467         Process unallocatable regs too.
6468         (lra_constraint_new_insn_uid_start): Remove.
6469         (lra): Add code for calling rematerialization sub-pass.
6470         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
6471         (lra_constrain_insn, lra_remat): New prototypes.
6472         (lra_eliminate_regs_1): Add parameter.
6473         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
6474         Process unallocatable hard regs too.
6475         (process_bb_lives): Ditto.
6476         * lra-spills.c (remove_pseudos): Add argument to
6477         lra_eliminate_regs_1 call.
6478         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
6479         for sp offset calculation.
6480         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
6481         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
6482         calculation.
6483         (process_insn_for_elimination): Add argument for
6484         eliminate_regs_in_insn call.
6485         * lra-constraints.c (get_equiv_with_elimination):  Add argument
6486         for lra_eliminate_regs_1 call.
6487         (process_addr_reg): Add parameter.  Use it.
6488         (process_address_1): Ditto.  Add argument for process_addr_reg
6489         call.
6490         (process_address): Ditto.
6491         (curr_insn_transform): Add parameter.  Use it.  Add argument for
6492         process_address calls.
6493         (lra_constrain_insn): New function.
6494         (lra_constraints): Add argument for curr_insn_transform call.
6495
6496 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6497
6498         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
6499         (print_ignored_options): Fix quoting.
6500         * opts.c (common_handle_option): Likewise.
6501         (set_debug_level): Likewise.
6502         * toplev.c (process_options): Likewise.
6503
6504 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
6505
6506         PR ipa/63838
6507         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
6508         chain instead of node->indirect_calls.  Put !can_throw into
6509         conditions of all the loops.
6510
6511 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
6512
6513         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
6514         set pic_offset_table_rtx.
6515
6516 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
6517
6518         * common/config/mips/mips-common.c (mips_handle_option): Ensure
6519         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
6520         * config.gcc (--with-fp-32): New option.
6521         (--with-odd-spreg-32): Likewise.
6522         * config.in (HAVE_AS_DOT_MODULE): New config define.
6523         * config/mips/mips-protos.h
6524         (mips_secondary_memory_needed): New prototype.
6525         (mips_hard_regno_caller_save_mode): Likewise.
6526         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
6527         (mips_get_arg_info): Assert that V2SFmode is only handled specially
6528         with TARGET_PAIRED_SINGLE_FLOAT.
6529         (mips_return_mode_in_fpr_p): Likewise.
6530         (mips16_call_stub_mode_suffix): Likewise.
6531         (mips_get_reg_raw_mode): New static function.
6532         (mips_return_fpr_pair): O32 return values span two registers.
6533         (mips16_build_call_stub): Likewise.
6534         (mips_function_value_regno_p): Support both FP return registers.
6535         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
6536         specific cases for TARGET_FPXX to move via memory.
6537         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
6538         than UNITS_PER_FPREG 'span' one register.
6539         (mips_dwarf_frame_reg_mode): New static function.
6540         (mips_file_start): Switch to using .module instead of .gnu_attribute.
6541         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
6542         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
6543         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
6544         slots with two CFI directives even for O32 FP64.
6545         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
6546         saving/restoring callee-saved registers.
6547         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
6548         (mips_secondary_memory_needed): New function.
6549         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
6550         odd-numbered single-precision registers when using TARGET_FLOATXX.
6551         Implement -modd-spreg and defaults.
6552         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
6553         callee-saved behaviour.
6554         (mips_hard_regno_caller_save_mode): Implement.
6555         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
6556         (TARGET_GET_RAW_ARG_MODE): Define target hook.
6557         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
6558         * config/mips/mips.h (TARGET_FLOAT32): New macro.
6559         (TARGET_O32_FP64A_ABI): Likewise.
6560         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
6561         _MIPS_SPFPSET builtin define.
6562         (MIPS_FPXX_OPTION_SPEC): New macro.
6563         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
6564         --with-odd-spreg-32=* to -m[no-]odd-spreg.
6565         (ISA_HAS_ODD_SPREG): New macro.
6566         (ISA_HAS_MXHC1): True for anything other than -mfp32.
6567         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
6568         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
6569         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
6570         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
6571         (SECONDARY_MEMORY_NEEDED): Likewise.
6572         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
6573         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
6574         FP64A ABI extensions.
6575         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
6576         TARGET_FLOAT64.
6577         * config/mips/mips.opt (mfpxx): New target option.
6578         (modd-spreg): Likewise.
6579         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
6580         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
6581         fp64 sysroot.
6582         * config/mips/t-mti-elf: Remove fp64 multilib.
6583         * config/mips/t-mti-linux: Likewise.
6584         * configure.ac: Detect .module support.
6585         * configure: Regenerate.
6586         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
6587         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
6588         options.
6589
6590 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
6591
6592         PR target/63815
6593         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
6594         from ...
6595         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
6596         (x86_output_mi_thunk): Set PIC register to %r11.  Call
6597         ix86_init_large_pic_reg to initialize PIC register.
6598
6599 2014-11-12  Kai Tietz  <ktietz@redhat.com>
6600
6601         * sdbout.c (sdbout_symbol): Eliminate register only
6602         if decl isn't a global variable.
6603
6604 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
6605
6606         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
6607
6608         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
6609         qualifier_lane_index.
6610         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
6611         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
6612         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
6613
6614         (aarch64_types_getlane_qualifiers): Rename to...
6615         (aarch64_types_binop_imm_qualifiers): ...this.
6616         (TYPES_SHIFTIMM): Follow renaming.
6617         (TYPES_GETLANE): Rename to...
6618         (TYPE_GETREG): ...this.
6619
6620         (aarch64_types_setlane_qualifiers): Rename to...
6621         (aarch64_type_ternop_imm_qualifiers): ...this.
6622         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
6623         (TYPES_SETLANE): Follow renaming above, and rename self to...
6624         (TYPE_SETREG): ...this.
6625
6626         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
6627         (aarch64_simd_expand_args): Add range check and endianness-flip.
6628
6629         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
6630
6631         * config/aarch64/aarch64-simd.md
6632         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
6633         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
6634         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
6635
6636         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
6637         (aarch64_sq<r>dmulh_lane<mode>): ...this.
6638
6639         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
6640         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
6641
6642         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
6643         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
6644
6645         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
6646         (aarch64_sqdmull_lane<mode>): ...this.
6647
6648         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
6649         (aarch64_sqdmull_laneq<mode>): ...this.
6650
6651         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
6652         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
6653         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
6654         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
6655
6656         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
6657         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
6658         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
6659         bounds check and lane flip.
6660
6661         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
6662         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
6663         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
6664
6665         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
6666         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
6667         renaming of TERNOP_LANE to QUADOP_LANE.
6668
6669         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
6670         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
6671         qualifiers to TERNOP_LANE.
6672
6673 2014-11-12  Tobias Burnus  <burnus@net-b.de>
6674
6675         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
6676         * configure.ac: Ditto.
6677         * graphite-interchange.c: Remove HAVE_CLOOG block.
6678         * config.in: Regenerate.
6679         * configure: Regenerate.
6680
6681 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
6682
6683         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
6684         caller-save.
6685         (EPILOGUE_USES): Guard the check by epilogue_completed.
6686         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
6687         LR.
6688         (aarch64_can_eliminate): Check LR_REGNUM liveness.
6689
6690 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6691
6692         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
6693
6694 2014-11-12  Marek Polacek  <polacek@redhat.com>
6695
6696         * fold-const.c (fold_binary_loc): Don't fold if the result
6697         is undefined.
6698         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
6699         -(-A) -> A): Likewise.
6700
6701 2014-11-12  Richard Biener  <rguenther@suse.de>
6702
6703         Merge from match-and-simplify branch
6704         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
6705
6706         * genmatch.c (user_id): Add new member is_oper_list.
6707         (user_id::user_id): Add new default argument.
6708         (parser::parse_operator_list): New function.
6709         (parser::parse_for): Allow operator-list.
6710         (parser::parse_pattern): Call parser::parse_operator_list.
6711         (parser::parse_operation): Reject operator-list.
6712         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
6713
6714         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
6715
6716         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
6717
6718         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
6719
6720         * genmatch.c (parser::parse_op): Check if predicate is used in
6721         result operand.
6722
6723         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
6724
6725         * genmatch.c (parser::parse_for): Make sure to have a valid
6726         token to report errors at.
6727
6728         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
6729
6730         * genmatch.c (parser): Add new member parsing_match_operand.
6731         (parser::parse_operation): Check for conditional convert in result
6732         operand.
6733         (parser::parse_expr): Check for commutative operator in result operand.
6734         Check for :type in match operand.
6735         (parser::parse_simplify): Set/unset parsing_match_operand.
6736         (parser::parser): Initialize parsing_match_operand.
6737
6738         2014-10-28  Richard Biener  <rguenther@suse.de>
6739
6740         * genmatch.c (parser::parse_for): Properly check for already
6741         defined operators.
6742
6743         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
6744
6745         * genmatch.c (error_cb): Adjust for printing warnings.
6746         (warning_at): New function.
6747         (user_id): Add new member used.
6748         (get_operator): Mark user_id as used.
6749         (parse_for): Warn for unused operators.
6750
6751 2014-11-12  Richard Biener  <rguenther@suse.de>
6752
6753         * match.pd: Implement simple complex operations cancelling.
6754         * fold-const.c (fold_unary_loc): Remove them here.
6755
6756 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
6757
6758         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
6759         Define __NO_MATH_ERRNO__ if -fno-math-errno.
6760         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
6761
6762 2014-11-12  Richard Biener  <rguenther@suse.de>
6763
6764         * genmatch.c (::gen_transform): Add capture_info and
6765         expand_compares arguments.
6766         (struct expr): Add is_generic flag.
6767         (lower_cond): New functions lowering [VEC_]COND_EXPR
6768         conditions to a GENERIC and a GIMPLE variant.
6769         (lower): Call lower_cond.
6770         (cmp_operand): Also compare the is_generic flag.
6771         (capture_info::cinfo): Add cond_expr_cond_p flag.
6772         (capture_info::capture_info): Pass down whether the
6773         expression argument is a COND_EXPR condition.
6774         (capture_info::walk_match): Likewise, mark captures
6775         capturing COND_EXPR conditions with cond_expr_cond_p.
6776         (expr::gen_transform): Pass down whether we need to
6777         expand compares from COND_EXPR conditions.
6778         (capture::gen_transform): Expand compares substituted
6779         from COND_EXPR conditions into non-COND_EXPR conditions.
6780         (dt_operand::gen_gimple_expr): Handle explicitely marked
6781         GENERIC expressions as generic.
6782         (dt_simplify::gen): Pass whether we need to expand
6783         conditions to gen_transform.  Handle capture results
6784         which are from COND_EXPR conditions.
6785         (main): Pass gimple flag down to lower.
6786
6787 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
6788
6789         PR c/59708
6790         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
6791         * builtins.c (fold_builtin_arith_overflow): New function.
6792         (fold_builtin_3): Use it.
6793         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
6794         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
6795         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
6796         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
6797         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
6798         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
6799         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
6800         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
6801         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
6802         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
6803         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
6804         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
6805         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
6806         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
6807         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
6808         * expr.c (write_complex_part): Remove prototype, no longer static.
6809         * expr.h (write_complex_part): New prototype.
6810         * function.c (aggregate_value_p): For internal functions return 0.
6811         * gimple-fold.c (arith_overflowed_p): New functions.
6812         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
6813         * gimple-fold.h (arith_overflowed_p): New prototype.
6814         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
6815         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
6816         functions.
6817         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
6818         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
6819         never used.
6820         * gimplify.c (gimplify_call_expr): Handle gimplification of
6821         internal calls with lhs.
6822         * internal-fn.c (get_range_pos_neg, get_min_precision,
6823         expand_arith_overflow_result_store): New functions.
6824         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
6825         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
6826         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
6827         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
6828         (ubsan_expand_si_overflow_neg_check): Renamed to ...
6829         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
6830         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
6831         0 as first argument expansion.
6832         (ubsan_expand_si_overflow_mul_check): Renamed to ...
6833         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
6834         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
6835         Handle MUL_OVERFLOW expansion.
6836         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
6837         arguments for it.
6838         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
6839         expand_neg_overflow, prepare arguments for it.
6840         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
6841         for it.
6842         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
6843         expand_MUL_OVERFLOW): New functions.
6844         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
6845         internal functions.
6846         * tree-vrp.c (check_for_binary_op_overflow): New function.
6847         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
6848         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
6849         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
6850         internal functions.
6851         * optabs.def (umulv4_optab): New optab.
6852         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
6853         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
6854         * doc/extend.texi (Integer Overflow Builtins): Document
6855         __builtin_*_overflow.
6856
6857 2014-11-12  Richard Biener  <rguenther@suse.de>
6858
6859         * genmatch.c (capture_info::capture_info): Add missing
6860         COND_EXPR handling.
6861         (capture_info::walk_match): Fix COND_EXPR handling.
6862         (capture_info::walk_result): Likewise.
6863
6864 2014-11-12  Richard Biener  <rguenther@suse.de>
6865
6866         PR middle-end/63821
6867         * match.pd: Add missing conversion to the -(T)-X pattern.
6868
6869 2014-11-12  Richard Biener  <rguenther@suse.de>
6870
6871         PR bootstrap/63819
6872         * hash-table.h: Include ggc.h also for generator programs.
6873         * genmatch.c (ggc_internal_cleared_alloc): Properly define
6874         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
6875
6876 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6877
6878         PR tree-optimization/63761
6879         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
6880         rather than taking it as a parameter. Add some comments to explain the
6881         gsi_move_before in case of load and why canonicalization of bswap into
6882         a rotation is only done for 16bit values.
6883         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
6884         refer to the statement just before cur_stmt. Ignore 16bit bswap that
6885         are already in canonical form. Adapt bswap_replace to removal of its
6886         gsi parameter.
6887
6888 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
6889
6890         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
6891         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
6892         (for_each_rtx_in_insn): Delete.
6893         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
6894         * df-core.c: Remove reference to for_each_rtx in comment.
6895
6896 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
6897
6898         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
6899         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
6900         * doc/aarch64-acle-intrinsics.texi: Remove.
6901         * doc/arm-acle-intrinsics.texi: Remove.
6902         * doc/arm-neon-intrinsics.texi: Remove.
6903         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
6904         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
6905         Extension section. Add references to public ACLE specification.
6906
6907 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
6908
6909         * tree-vrp.c (register_edge_assert_for_2): Change return type to
6910         void and adjust accordingly.
6911         (register_edge_assert_for_1): Likewise.
6912         (register_edge_assert_for): Likewise.
6913         (find_conditional_asserts): Likewise.
6914         (find_switch_asserts): Likewise.
6915         (find_assert_locations_1): Likewise.
6916         (find_assert_locations): Likewise.
6917         (insert_range_insertions): Inspect the need_assert_for bitmap.
6918
6919 2014-11-11  Andrew Pinski  <apinski@cavium.com>
6920
6921         Bug target/61997
6922         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
6923         aarch64-builtins.c.
6924         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
6925         at the end of the file.
6926
6927 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
6928             Manuel López-Ibáñez  <manu@gcc.gnu.org>
6929
6930         PR driver/36312
6931         * diagnostic-core.h: Add prototype for fatal_error.
6932         * diagnostic.c (fatal_error): New function fatal_error.
6933         * gcc.c (store_arg): Remove have_o_argbuf_index.
6934         (process_command): Check if input and output files are the same.
6935         * toplev.c (init_asm_output): Check if input and output files are
6936         the same.
6937
6938 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
6939
6940         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
6941
6942 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
6943
6944         PR target/61535
6945         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
6946         smaller than 8 bytes.
6947         (sparc_function_arg_1): Tweak.
6948         (sparc_function_value_1): Tweak.
6949
6950 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
6951
6952         * ChangeLog.jit: New.
6953         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
6954         sphinx is installed, falling back to "texinfo" otherwise.
6955         (FULL_DRIVER_NAME): New variable, adapted from the
6956         install-driver target.  New target, a symlink within the builddir,
6957         linked to "xgcc", for use when running the JIT library from the
6958         builddir.
6959         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
6960         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
6961         out.
6962         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
6963         sphinx is installed, falling back to "texinfo" otherwise.
6964         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
6965         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
6966         * configure: Regenerate.
6967         * doc/install.texi (--enable-host-shared): Specify that this is
6968         required when building libgccjit.
6969         (Tools/packages necessary for modifying GCC): Add Sphinx.
6970         * timevar.def (TV_JIT_REPLAY): New.
6971         (TV_ASSEMBLE): New.
6972         (TV_LINK): New.
6973         (TV_LOAD): New.
6974
6975 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6976
6977         PR target/63610
6978         * configure: Regenerate.
6979
6980 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
6981
6982         * config/aarch64/aarch64-simd.md
6983         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
6984         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
6985         are punning between float vectors and integer vectors.
6986
6987 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
6988
6989         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
6990         open-coded swap with std::swap to swap values.
6991         (alpha_emit_setcc): Ditto.
6992         (alpha_emit_conditional_move): Ditto.
6993         (alpha_split_tmode_pair): Ditto.
6994
6995 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
6996
6997         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
6998         permutations on power of 2 cases.
6999
7000 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7001
7002         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
7003         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
7004
7005 2014-11-11  Richard Biener  <rguenther@suse.de>
7006
7007         * tree-core.h (pedantic_lvalues): Remove.
7008         * fold-const.c (pedantic_lvalues): Likewise.
7009         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
7010
7011 2014-11-11  Martin Liska  <mliska@suse.cz>
7012
7013         PR ipa/63622
7014         PR ipa/63795
7015         * ipa-icf.c (sem_function::merge): Add new target symbol alias
7016         support guard.
7017         (sem_variable::merge): Likewise.
7018         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
7019
7020 2014-11-11  Richard Biener  <rguenther@suse.de>
7021
7022         * match.pd: Implement patterns from associate_plusminus
7023         and factor in differences from the fold-const.c implementation.
7024         * fold-const.c (fold_binary_loc): Remove patterns here.
7025         * tree-ssa-forwprop.c (associate_plusminus): Remove.
7026         (pass_forwprop::execute): Don't call it.
7027         * tree.c (tree_nop_conversion_p): New function, factored
7028         from tree_nop_conversion.
7029         * tree.h (tree_nop_conversion_p): Declare.
7030
7031 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7032
7033         * system.h: Include algorithm and utility.
7034         * rtl.h: Do not include utility here.
7035         * wide-int.h: Ditto.
7036         * tree-vect-data-refs.c (swap): Remove template.
7037         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
7038
7039 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7040
7041         PR bootstrap/63699
7042         PR bootstrap/63750
7043         * system.h: Include <string> before "safe-ctype.h"
7044         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
7045         calls to min/max with wi namespace.
7046         * ipa-chkp.c: Don't include <string>.
7047
7048 2014-11-11  Terry Guo  <terry.guo@arm.com>
7049
7050         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
7051         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
7052         registers.
7053         (*thumb1_movhf): Likewise.
7054
7055 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7056
7057         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
7058         instead of INT64_MAX.
7059
7060 2014-11-11  Tobias Burnus  <burnus@net-b.de>
7061
7062         * doc/install.texi (Prerequisites): Remove CLooG.
7063
7064 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
7065
7066         * ipa-inline.c (edge_badness): Adjust.
7067         (inline_small_functions): Likewise.
7068         * predict.c (propagate_freq): Likewise.
7069         (estimate_bb_frequencies): Likewise.
7070         * sreal.c (sreal::dump): Rename from dump_sreal.
7071         (debug): Adjust.
7072         (copy): Remove function.
7073         (sreal::shift_right): Rename from sreal_sift_right.
7074         (sreal::normalize): Rename from normalize.
7075         (sreal_init): Remove function.
7076         (sreal::to_int): Rename from sreal_to_int.
7077         (sreal_compare): Remove function.
7078         (sreal::operator+): Rename from sreal_add.
7079         (sreal::operator-): Rename from sreal_sub.
7080         (sreal::operator*): Rename from sreal_mul.
7081         (sreal::operator/): Rename from sreal_div.
7082         * sreal.h (class sreal): Adjust.
7083         (inline sreal &operator+=): New operator.
7084         (inline sreal &operator-=): Likewise.
7085         (inline sreal &operator/=): Likewise.
7086         (inline sreal &operator*=): Likewise.
7087         (inline bool operator!=): Likewise.
7088         (inline bool operator>): Likewise.
7089         (inline bool operator<=): Likewise.
7090         (inline bool operator>=): Likewise.
7091
7092 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
7093
7094         * sched-deps.c (sched_analyze_1): Check pending list if it is not
7095         less than MAX_PENDING_LIST_LENGTH.
7096         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
7097
7098 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7099
7100         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
7101         swap with std::swap to swap values.
7102         (ix86_fixup_binary_operands): Ditto.
7103         (ix86_binary_operator_ok): Ditto.
7104         (ix86_prepare_fp_compare_args): Ditto.
7105         (ix86_expand_branch): Ditto.
7106         (ix86_expand_carry_flag_compare): Ditto.
7107         (ix86_expand_int_movcc): Ditto.
7108         (ix86_prepare_sse_fp_compare_args): Ditto.
7109         (ix86_expand_sse_fp_minmax): Ditto.
7110         (ix86_expand_int_vcond): Ditto.
7111         (ix86_split_long_move): Ditto.
7112         (ix86_expand_sse_comi): Ditto.
7113         (ix86_expand_sse_compare_and_jump): Ditto.
7114         (ix86_expand_sse_compare_mask): Ditto.
7115         * config/i386/i386.md (*add<mode>_1): Ditto.
7116         (addsi_1_zext): Ditto.
7117         (*addhi_1): Ditto.
7118         (*addqi_1): Ditto.
7119         (*add<mode>_2): Ditto.
7120         (*addsi_2_zext): Ditto.
7121         (*add<mode>_3): Ditto.
7122         (*addsi_3_zext): Ditto.
7123         (*add<mode>_5): Ditto.
7124         (absneg splitter): Ditto.
7125
7126 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7127
7128         Revert:
7129         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
7130
7131         PR target/63620
7132         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
7133         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
7134         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
7135         be reloaded through memory.
7136         (*pushxf): Ditto.
7137         (*pushdf): Ditto.
7138
7139 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
7140             Martin Liska  <mliska@suse.cz>
7141
7142         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
7143         (func_checker::compare_gimple_call): Compare gimple_call_fn,
7144         gimple_call_chain, gimple_call_fntype and call flags.
7145
7146 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
7147
7148         PR rtl-optimization/63620
7149         PR rtl-optimization/63799
7150         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
7151         and setting PIC pseudo insns.
7152         (lra_create_live_ranges): Fix the typo.
7153
7154 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
7155
7156         PR middle-end/63748
7157         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
7158         SSA copies whose source and destination names both occur in
7159         abnormal PHIs.
7160
7161 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
7162
7163         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
7164         * common.opt: Remove using of fgraphite-code-generator flag.
7165         * flag-types.h: Likewise.
7166         * graphite.c: Remove using of CLooG.
7167         * graphite-blocking.c: Likewise.
7168         * graphite-dependences.c: Likewise.
7169         * graphite-poly.c: Likewise.
7170         * graphite-poly.h: Likewise.
7171         * graphite-scop-detection.c: Likewise.
7172         * graphite-sese-to-poly.c: Likewise.
7173         * graphite-clast-to-gimple.c: Removed.
7174         * graphite-clast-to-gimple.h: Likewise.
7175         * graphite-htab.h: Likewise.
7176
7177 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
7178
7179         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
7180         Add.
7181
7182 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
7183
7184         * config/frv/frv.c (frv_io_handle_use_1): Delete.
7185         (frv_io_handle_use): Use find_all_hard_regs.
7186
7187 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
7188
7189         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
7190         than an rtx *.  Take the regstate_t directly rather than via a void *.
7191         Return a bool rather than an int.  Iterate over all subrtxes here.
7192         (frv_registers_conflict_p): Update accordingly.
7193
7194 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
7195
7196         * config/frv/frv.c: Include rtl-iter.h.
7197         (frv_acc_group_1): Delete.
7198         (frv_acc_group): Use FOR_EACH_SUBRTX.
7199
7200 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
7201
7202         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
7203         (frv_clear_registers_used): Delete.
7204         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
7205
7206 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
7207
7208         PR bootstrap/63573
7209         * calls.c (initialize_argument_information): When emitting thunk call
7210         use original memory placement of the argument.
7211
7212 2014-11-10  Renlin Li  <renlin.li@arm.com>
7213
7214         PR middle-end/61529
7215         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
7216
7217 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7218
7219         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
7220         bswaphi if available.
7221
7222 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
7223
7224         * config/nvptx/nvptx.c: New file.
7225         * config/nvptx/nvptx.h: New file.
7226         * config/nvptx/nvptx-protos.h: New file.
7227         * config/nvptx/nvptx.md: New file.
7228         * config/nvptx/t-nvptx: New file.
7229         * config/nvptx/nvptx.opt: New file.
7230         * common/config/nvptx/nvptx-common.c: New file.
7231         * config.gcc: Handle nvptx-*-*.
7232
7233 2014-11-10  Richard Biener  <rguenther@suse.de>
7234
7235         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
7236         released operands on the free list.
7237
7238 2014-11-10  Richard Biener  <rguenther@suse.de>
7239
7240         * match.pd: Implement pattern from simplify_mult.
7241         * tree-ssa-forwprop.c (simplify_mult): Remove.
7242         (pass_forwprop::execute): Do not call simplify_mult.
7243
7244 2014-11-10  Richard Biener  <rguenther@suse.de>
7245
7246         PR tree-optimization/63800
7247         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
7248         we can restore the previous availability in after_dom_children.
7249         (eliminate_dom_walker::after_dom_children): Restore
7250         previous availability.
7251
7252 2014-11-10  Richard Biener  <rguenther@suse.de>
7253
7254         PR middle-end/63798
7255         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
7256         properly treat the embedded multiplication as commutative
7257         when looking for feeding negates.
7258
7259 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
7260
7261         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
7262
7263 2014-11-10  Martin Liska  <mliska@suse.cz>
7264
7265         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
7266         for the test because of default char signedness
7267         on powerpc64 target.
7268
7269 2014-11-10  Richard Biener  <rguenther@suse.de>
7270
7271         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
7272         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
7273         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
7274
7275 2014-11-10  Richard Biener  <rguenther@suse.de>
7276
7277         * match.pd: Move rest of the conversion combining patterns
7278         from tree-ssa-forwprop.c.
7279         * tree-ssa-forwprop.c (combine_conversions): Remove.
7280         (pass_forwprop::execute): Do not call it.
7281
7282 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
7283
7284         * gimple-low.c (lower_function_body): Clear the location of the first
7285         inserted representative return if it also fills in for the fallthru.
7286
7287 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
7288
7289         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
7290         that bb is always executed to early exit. Use predicate of
7291         cd-equivalent block for join blocks if it exists.
7292         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
7293         (tree_if_conversion): Free post-dominance information.
7294
7295 2014-11-09  Jason Merrill  <jason@redhat.com>
7296
7297         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
7298         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
7299         (_mm_mask_cvtusepi32_storeu_epi16)
7300         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
7301
7302 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
7303
7304         * config/avr/predicates.md (low_io_address_operand): Fix typo.
7305
7306 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
7307
7308         PR rtl-optimization/63620
7309         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
7310         name.  Move to lra.c.  Make it external.
7311         (substitute_pseudo_within_insn): Ditto.
7312         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
7313         the new names.
7314         (undo_optional_reloads): Ditto.
7315         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
7316         New prototypes.
7317         (lra_substitute_pseudo_within_insn): Ditto.
7318         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
7319         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
7320         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
7321         bb_killed_pseudos.
7322         (struct bb_data, bb_data_t, bb_data): New.
7323         (get_bb_data, get_bb_data_by_index): Ditto.
7324         (all_hard_regs_bitmap): New.
7325         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
7326         (initiate_live_solver, finish_live_solver): New.
7327         (process_bb_lives): Change return type.  Add code updating local
7328         live data and removing dead insns.  Pass new argument to
7329         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
7330         life info.  Return the result.
7331         (lra_create_live_ranges): Add code to do global pseudo live
7332         analysis.
7333         (lra_live_ranges_init): Call initiate_live_solver.
7334         (lra_live_ranges_finish): Call finish_live_solver.
7335         * lra.c (lra_dump_bitmap_with_title): New.
7336         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
7337         from lra-constraints.c.
7338
7339 2014-11-09  Richard Biener  <rguenther@suse.de>
7340
7341         * match.pd: Add patterns convering two conversions in a row
7342         from fold-const.c.
7343         * fold-const.c (fold_unary_loc): Remove them here.
7344         * tree-ssa-forwprop.c (combine_conversions): Likewise.
7345         * genmatch.c (dt_node::gen_kids): Check whether we may
7346         follow SSA use-def chains.
7347
7348 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
7349
7350         * config/aarch64/aarch64.c: Include rtl-iter.h.
7351         (aarch64_tls_operand_p_1): Delete.
7352         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
7353
7354 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
7355
7356         * config/arm/arm.c (arm_note_pic_base): Delete.
7357         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
7358
7359 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
7360
7361         * config/arm/arm.c: Include rtl-iter.h.
7362         (arm_tls_referenced_p_1): Delete.
7363         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
7364
7365 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
7366
7367         * config/arm/aarch-common.c: Include rtl-iter.h.
7368         (search_term, arm_find_sub_rtx_with_search_term): Delete.
7369         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
7370         (arm_get_set_operands): Pass the insn pattern rather than the
7371         insn itself.
7372         (arm_no_early_store_addr_dep): Likewise.
7373
7374 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
7375
7376         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
7377         related, if any.
7378         (thumb_set_return_address): Likewise.
7379
7380 2014-11-07  Jeff Law  <law@redhat.com>
7381
7382         PR tree-optimization/61515
7383         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
7384         stack rather than looking at every SSA_NAME's value.
7385
7386 2014-11-07  Richard Biener  <rguenther@suse.de>
7387
7388         PR tree-optimization/63605
7389         * fold-const.c (fold_binary_loc): Properly use element_precision
7390         for types that may not be scalar.
7391
7392 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
7393
7394         PR target/63534
7395         * config/i386/i386.md (builtin_setjmp_receiver): Use
7396         pic_offset_table_rtx for PIC register.
7397         (nonlocal_goto_receiver): Delete.
7398
7399 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
7400
7401         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
7402         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
7403
7404 2014-11-07  Martin Liska  <mliska@suse.cz>
7405
7406         PR ipa/63580
7407         * cgraphunit.c (cgraph_node::create_wrapper):
7408         TREE_ADDRESSABLE is set to false for a newly created thunk.
7409
7410 2014-11-07  Martin Liska  <mliska@suse.cz>
7411
7412         PR ipa/63747
7413         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
7414         Missing checking for CASE_LOW and CASE_HIGH added.
7415
7416 2014-11-07  Martin Liska  <mliska@suse.cz>
7417
7418         PR ipa/63595
7419         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
7420         is correctly handled for thunks created by IPA ICF.
7421
7422 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
7423 2014-11-07  Richard Biener  <rguenther@suse.de>
7424
7425         PR tree-optimization/63676
7426         * gimple-fold.c (fold_gimple_assign): Do not fold node when
7427         TREE_CLOBBER_P be true.
7428
7429 2014-11-07  Richard Biener  <rguenther@suse.de>
7430
7431         PR middle-end/63770
7432         * match.pd: Guard conflicting GENERIC pattern properly.
7433
7434 2014-11-07  Richard Biener  <rguenther@suse.de>
7435
7436         * match.pd: Add patterns for POINTER_PLUS_EXPR association
7437         and special patterns from tree-ssa-forwprop.c
7438         * fold-const.c (fold_binary_loc): Remove them here.
7439         * tree-ssa-forwprop.c (to_purge): New global bitmap.
7440         (fwprop_set_lattice_val): New function.
7441         (fwprop_invalidate_lattice): Likewise.
7442         (remove_prop_source_from_use): Instead of purging dead EH
7443         edges record blocks to do that in to_purge.
7444         (tidy_after_forward_propagate_addr): Likewise.
7445         (forward_propagate_addr_expr): Invalidate the lattice for
7446         SSA names we release.
7447         (simplify_conversion_from_bitmask): Likewise.
7448         (simplify_builtin_call): Likewise.
7449         (associate_pointerplus_align): Remove.
7450         (associate_pointerplus_diff): Likewise.
7451         (associate_pointerplus): Likewise.
7452         (fold_all_stmts): Merge with ...
7453         (pass_forwprop::execute): ... the original loop over all
7454         basic-blocks.  Delay purging dead EH edges and invalidate
7455         the lattice for SSA names we release.
7456
7457 2014-11-07  Terry Guo  <terry.guo@arm.com>
7458
7459         * config/arm/arm.opt (masm-syntax-unified): New option.
7460         * doc/invoke.texi (-masm-syntax-unified): Document new option.
7461         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
7462         (ASM_APP_ON): Redefined.
7463         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
7464         code always use UAL syntax.
7465         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
7466         * config/arm/thumb1.md: Likewise.
7467
7468 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
7469
7470         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
7471         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
7472         or in_call_delay.
7473         
7474 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
7475
7476         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
7477         Set default_mips_arch and default_mips_abi instead of tm_defines.
7478         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
7479         of tm_defines.
7480         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
7481         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
7482         based on MIPS_ABI_DEFAULT.
7483         (STANDARD_STARTFILE_PREFIX_2): Ditto.
7484
7485 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
7486
7487         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
7488         cases of extended identifiers.
7489
7490 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
7491
7492         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
7493
7494 2014-11-06  DJ Delorie  <dj@redhat.com>
7495
7496         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
7497         conditional.
7498         (movhicc_<code>_<mode>): Likewise.
7499         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
7500         subregs.
7501         (m32c_eh_return_data_regno): Change to using memregs to avoid
7502         tying up all the compute regs.
7503         (m32c_legitimate_address_p) Subregs are not valid addresses.
7504
7505 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
7506
7507         * function.c (thread_prologue_and_epilogue_insns): No longer static.
7508         * function.h (thread_prologue_and_epilogue_insns): Declare.
7509
7510         * target.def (assemble_undefined_decl): New hooks.
7511         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
7512         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
7513         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
7514         * doc/tm.texi: Regenerate.
7515         * output.h (assemble_undefined_decl): Declare.
7516         (get_fnname_from_decl): Declare.
7517         * varasm.c (assemble_undefined_decl): New function.
7518         (get_fnname_from_decl): New function.
7519         * final.c (rest_of_handle_final): Use it.
7520         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
7521         for nodes without a definition.
7522
7523         * target.def (call_args, end_call_args): New hooks.
7524         * hooks.c (hook_void_rtx_tree): New empty function.
7525         * hooks.h (hook_void_rtx_tree): Declare.
7526         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
7527         * doc/tm.texi: Regenerate.
7528         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
7529         hooks.
7530         (expand_library_call_value_1): Use the two new hooks.
7531
7532         * expr.c (use_reg_mode): Just return for pseudo registers.
7533
7534         * combine.c (try_combine): Don't allow a call as one of the source
7535         insns.
7536
7537         * target.def (decl_end): New hook.
7538         * varasm.c (assemble_variable_contents, assemble_constant_contents):
7539         Use it.
7540         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
7541         * doc/tm.texi: Regenerate.
7542
7543 2014-11-06  Renlin Li  <renlin.li@arm.com>
7544
7545         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
7546         (processor): New architecture_version field.
7547         (aarch64_override_options): Initialize aarch64_architecture_version.
7548         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
7549         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
7550
7551 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
7552
7553         * params.def (sra-max-scalarization-size-Ospeed): New.
7554         (sra-max-scalarization-size-Osize): Likewise.
7555         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
7556         (sra-max-scalarization-size-Osize): Likewise.
7557         * toplev.c (process_options): Set default values for new
7558         parameters.
7559         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
7560         * targhooks.c (get_move_ratio): Remove static designator.
7561         * target.h (get_move_ratio): Declare.
7562
7563 2014-11-06  Marek Polacek  <polacek@redhat.com>
7564
7565         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
7566         Remove vector limit.
7567
7568 2014-11-06  Richard Biener  <rguenther@suse.de>
7569
7570         * match.pd: Implement bitwise binary and unary simplifications
7571         from tree-ssa-forwprop.c.
7572         * fold-const.c (fold_unary_loc): Remove them here.
7573         (fold_binary_loc): Likewise.
7574         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
7575         (truth_valued_ssa_name): Likewise.
7576         (lookup_logical_inverted_value): Likewise.
7577         (simplify_bitwise_binary_1): Likewise.
7578         (hoist_conversion_for_bitop_p): Likewise.
7579         (simplify_bitwise_binary_boolean): Likewise.
7580         (simplify_bitwise_binary): Likewise.
7581         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
7582         and simplify_bitwise_binary.
7583         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
7584         (decision_tree::insert): Also insert non-expressions.
7585
7586 2014-11-06  Hale Wang  <hale.wang@arm.com>
7587
7588         * config/arm/arm-cores.def: Add support for
7589         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
7590         cortex-m1.small-multiply.
7591         * config/arm/arm-tables.opt: Regenerate.
7592         * config/arm/arm-tune.md: Regenerate.
7593         * config/arm/arm.c: Update the rtx-costs for MUL.
7594         * config/arm/bpabi.h: Handle
7595         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
7596         cortex-m1.small-multiply.
7597         * doc/invoke.texi: Document
7598         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
7599         cortex-m1.small-multiply.
7600
7601 2014-11-06  Hale Wang  <hale.wang@arm.com>
7602
7603         * config/arm/arm.c: Add cortex-m7 tune.
7604         * config/arm/arm-cores.def: Use cortex-m7 tune.
7605
7606 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
7607
7608         PR target/63538
7609         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
7610         (ix86_encode_section_info): Do not check for non-automatic varibles
7611         when setting SYMBOL_FLAG_FAR_ADDR flag.
7612         (x86_64_elf_select_section): Do not check ix86_cmodel here.
7613         (x86_64_elf_unique_section): Ditto.
7614         (x86_elf_aligned_common): Emit tab before .largecomm.
7615
7616 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
7617
7618         PR preprocessor/9449
7619         * doc/cpp.texi (Character sets, Tokenization)
7620         (Implementation-defined behavior): Don't refer to UCNs in
7621         identifiers requiring -fextended-identifiers.
7622         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
7623         by default for C99 and later and C++.
7624         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
7625         identifiers needing -fextended-identifiers.
7626
7627 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
7628
7629         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
7630         for 512-bit wide modes.
7631         (expand_vec_perm_1): Use correct versions of patterns.
7632         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
7633         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
7634
7635 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
7636
7637         * ipa-chkp.c: New.
7638         * ipa-chkp.h: New.
7639         * tree-chkp.c: New.
7640         * tree-chkp.h: New.
7641         * tree-chkp-opt.c: New.
7642         * rtl-chkp.c: New.
7643         * rtl-chkp.h: New.
7644         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
7645         tree-chkp-opt.o.
7646         (GTFILES): Add tree-chkp.c.
7647         * mode-classes.def (MODE_POINTER_BOUNDS): New.
7648         * tree.def (POINTER_BOUNDS_TYPE): New.
7649         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
7650         (POINTER_BOUNDS_MODE): New.
7651         (make_pointer_bounds_mode): New.
7652         * machmode.h (POINTER_BOUNDS_MODE_P): New.
7653         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
7654         (layout_type): Support POINTER_BOUNDS_TYPE.
7655         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
7656         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
7657         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
7658         (type_contains_placeholder_1): Likewise.
7659         (build_common_tree_nodes): Initialize
7660         pointer_bounds_type_node.
7661         * tree.h (POINTER_BOUNDS_TYPE_P): New.
7662         (pointer_bounds_type_node): New.
7663         (POINTER_BOUNDS_P): New.
7664         (BOUNDED_TYPE_P): New.
7665         (BOUNDED_P): New.
7666         (CALL_WITH_BOUNDS_P): New.
7667         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
7668         (gimple_call_with_bounds_p): New.
7669         (gimple_call_set_with_bounds): New.
7670         (gimple_return_retbnd): New.
7671         (gimple_return_set_retbnd): New
7672         * gimple.c (gimple_build_return): Increase number of ops
7673         for return statement.
7674         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
7675         flag.
7676         * gimple-pretty-print.c (dump_gimple_return): Print second op.
7677         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
7678         * gimplify.c (gimplify_init_constructor): Avoid infinite
7679         loop during gimplification of bounds initializer.
7680         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
7681         (special_function_p): Use original decl name when analyzing
7682         instrumentation clone.
7683         (arg_data): Add fields special_slot, pointer_arg and
7684         pointer_offset.
7685         (store_bounds): New.
7686         (emit_call_1): Propagate instrumentation flag for CALL.
7687         (initialize_argument_information): Compute pointer_arg,
7688         pointer_offset and special_slot for pointer bounds arguments.
7689         (finalize_must_preallocate): Preallocate when storing bounds
7690         in bounds table.
7691         (compute_argument_addresses): Skip pointer bounds.
7692         (expand_call): Store bounds into tables separately.  Return
7693         result joined with resulting bounds.
7694         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
7695         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
7696         (expand_return): Add returned bounds arg.  Handle returned bounds.
7697         (expand_gimple_stmt_1): Adjust to new expand_return signature.
7698         (gimple_expand_cfg): Reset rtx bounds map.
7699         * expr.c: Include tree-chkp.h, rtl-chkp.h.
7700         (expand_assignment): Handle returned bounds.
7701         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
7702         target argument.  Handle bounds returned by calls.
7703         (store_expr): Now wraps store_expr_with_bounds.
7704         * expr.h (store_expr_with_bounds): New.
7705         * function.c: Include tree-chkp.h, rtl-chkp.h.
7706         (bounds_parm_data): New.
7707         (use_register_for_decl): Do not registerize decls used for bounds
7708         stores and loads.
7709         (assign_parms_augmented_arg_list): Add bounds of the result
7710         structure pointer as the second argument.
7711         (assign_parm_find_entry_rtl): Mark bounds are never passed on
7712         the stack.
7713         (assign_parm_is_stack_parm): Likewise.
7714         (assign_parm_load_bounds): New.
7715         (assign_bounds): New.
7716         (assign_parms): Load bounds and determine a location for
7717         returned bounds.
7718         (diddle_return_value_1): New.
7719         (diddle_return_value): Handle returned bounds.
7720         * function.h (rtl_data): Add field for returned bounds.
7721         * varasm.c: Include tree-chkp.h.
7722         (output_constant): Support POINTER_BOUNDS_TYPE.
7723         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
7724         (ultimate_transparent_alias_target): Move up.
7725         (make_decl_rtl): For instrumented function use
7726         name of the original decl.
7727         (assemble_start_function): Mark function as global
7728         in case it is instrumentation clone of the global
7729         function.
7730         (do_assemble_alias): Follow transparent alias chain
7731         for identifier.  Check if original alias is public.
7732         (maybe_assemble_visibility): Use visibility of the
7733         original function for instrumented version.
7734         (default_unique_section): Likewise.
7735         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
7736         (init_emit_once): Build pointer bounds zero constants.
7737         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
7738         * target.def (builtin_chkp_function): New.
7739         (chkp_bound_type): New.
7740         (chkp_bound_mode): New.
7741         (chkp_make_bounds_constant): New.
7742         (chkp_initialize_bounds): New.
7743         (load_bounds_for_arg): New.
7744         (store_bounds_for_arg): New.
7745         (load_returned_bounds): New.
7746         (store_returned_bounds): New.
7747         (chkp_function_value_bounds): New.
7748         (setup_incoming_vararg_bounds): New.
7749         (function_arg): Update hook description with new possible return
7750         value CONST_INT.
7751         * targhooks.h (default_load_bounds_for_arg): New.
7752         (default_store_bounds_for_arg): New.
7753         (default_load_returned_bounds): New.
7754         (default_store_returned_bounds): New.
7755         (default_chkp_bound_type): New.
7756         (default_chkp_bound_mode): New.
7757         (default_builtin_chkp_function): New.
7758         (default_chkp_function_value_bounds): New.
7759         (default_chkp_make_bounds_constant): New.
7760         (default_chkp_initialize_bounds): New.
7761         (default_setup_incoming_vararg_bounds): New.
7762         * targhooks.c (default_load_bounds_for_arg): New.
7763         (default_store_bounds_for_arg): New.
7764         (default_load_returned_bounds): New.
7765         (default_store_returned_bounds): New.
7766         (default_chkp_bound_type): New.
7767         (default_chkp_bound_mode); New.
7768         (default_builtin_chkp_function): New.
7769         (default_chkp_function_value_bounds): New.
7770         (default_chkp_make_bounds_constant): New.
7771         (default_chkp_initialize_bounds): New.
7772         (default_setup_incoming_vararg_bounds): New.
7773         * builtin-types.def (BT_BND): New.
7774         (BT_FN_PTR_CONST_PTR): New.
7775         (BT_FN_CONST_PTR_CONST_PTR): New.
7776         (BT_FN_BND_CONST_PTR): New.
7777         (BT_FN_CONST_PTR_BND): New.
7778         (BT_FN_PTR_CONST_PTR_SIZE): New.
7779         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
7780         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
7781         (BT_FN_VOID_CONST_PTR_SIZE): New.
7782         (BT_FN_VOID_PTR_BND): New.
7783         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
7784         (BT_FN_BND_CONST_PTR_SIZE): New.
7785         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
7786         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
7787         * chkp-builtins.def: New.
7788         * builtins.def: include chkp-builtins.def.
7789         (DEF_CHKP_BUILTIN): New.
7790         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
7791         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
7792         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
7793         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
7794         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
7795         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
7796         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
7797         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
7798         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
7799         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
7800         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
7801         (std_expand_builtin_va_start): Init bounds for va_list.
7802         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
7803         __CHKP__ macro when Pointer Bounds Checker is on.
7804         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
7805         * passes.def (pass_ipa_chkp_versioning): New.
7806         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
7807         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
7808         (pass_chkp_instrumentation_passes): New.
7809         (pass_ipa_chkp_produce_thunks): New.
7810         (pass_local_optimization_passes): New.
7811         (pass_chkp_opt): New.
7812         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
7813         (make_pass_ipa_chkp_produce_thunks): New.
7814         (make_pass_chkp): New.
7815         (make_pass_chkp_opt): New.
7816         (make_pass_early_local_passes): Renamed to ...
7817         (make_pass_build_ssa_passes): This.
7818         (make_pass_chkp_instrumentation_passes): New.
7819         (make_pass_local_optimization_passes): New.
7820         * passes.c (pass_manager::execute_early_local_passes): Execute
7821         early passes in three steps.
7822         (execute_all_early_local_passes): Renamed to ...
7823         (execute_build_ssa_passes): This.
7824         (pass_data_early_local_passes): Renamed to ...
7825         (pass_data_build_ssa_passes): This.
7826         (pass_early_local_passes): Renamed to ...
7827         (pass_build_ssa_passes): This.
7828         (pass_data_chkp_instrumentation_passes): New.
7829         (pass_chkp_instrumentation_passes): New.
7830         (pass_data_local_optimization_passes): New.
7831         (pass_local_optimization_passes): New.
7832         (make_pass_early_local_passes): Renamed to ...
7833         (make_pass_build_ssa_passes): This.
7834         (make_pass_chkp_instrumentation_passes): New.
7835         (make_pass_local_optimization_passes): New.
7836         * c-family/c.opt (fcheck-pointer-bounds): New.
7837         (fchkp-check-incomplete-type): New.
7838         (fchkp-zero-input-bounds-for-main): New.
7839         (fchkp-first-field-has-own-bounds): New.
7840         (fchkp-narrow-bounds): New.
7841         (fchkp-narrow-to-innermost-array): New.
7842         (fchkp-optimize): New.
7843         (fchkp-use-fast-string-functions): New.
7844         (fchkp-use-nochk-string-functions): New.
7845         (fchkp-use-static-bounds): New.
7846         (fchkp-use-static-const-bounds): New.
7847         (fchkp-treat-zero-dynamic-size-as-infinite): New.
7848         (fchkp-check-read): New.
7849         (fchkp-check-write): New.
7850         (fchkp-store-bounds): New.
7851         (fchkp-instrument-calls): New.
7852         (fchkp-instrument-marked-only): New.
7853         (Wchkp): New.
7854         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
7855         (handle_bnd_legacy): New.
7856         (handle_bnd_instrument): New.
7857         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
7858         and bnd_instrument.  Fix documentation.
7859         (c_common_format_attribute_table): Likewsie.
7860         * toplev.c: include tree-chkp.h.
7861         (process_options): Check Pointer Bounds Checker is supported.
7862         (compile_file): Add chkp_finish_file call.
7863         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
7864         to handle instrumentation clones properly.
7865         (propagate_constants_accross_call): Do not propagate
7866         through instrumentation thunks.
7867         * ipa-pure-const.c (propagate_pure_const): Support
7868         IPA_REF_CHKP.
7869         * ipa-inline.c (early_inliner): Check edge has summary allocated.
7870         * ipa-split.c: Include tree-chkp.h.
7871         (find_retbnd): New.
7872         (split_part_set_ssa_name_p): New.
7873         (consider_split): Do not split retbnd and retval
7874         producers.
7875         (insert_bndret_call_after): new.
7876         (split_function): Propagate Pointer Bounds Checker
7877         instrumentation marks and handle returned bounds.
7878         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
7879         into bit field and add with_bounds field.
7880         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
7881         with_bounds field for instrumented calls.
7882         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
7883         CALL_WITH_BOUNDS_P flag for calls.
7884         * tree-ssa-ccp.c: Include tree-chkp.h.
7885         (insert_clobber_before_stack_restore): Handle
7886         BUILT_IN_CHKP_BNDRET calls.
7887         * tree-ssa-dce.c: Include tree-chkp.h.
7888         (propagate_necessity): For free call fed by alloc check
7889         bounds are also provided by the same alloc.
7890         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
7891         used by free calls.
7892         * tree-inline.c: Include tree-chkp.h.
7893         (declare_return_variable): Add arg holding
7894         returned bounds slot.  Create and initialize returned bounds var.
7895         (remap_gimple_stmt): Handle returned bounds.
7896         Return sequence of statements instead of a single statement.
7897         (insert_init_stmt): Add declaration.
7898         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
7899         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
7900         Properly handle bounds in va_arg_pack and va_arg_pack_len.
7901         (expand_call_inline): Handle returned bounds.  Add bounds copy
7902         for generated mem to mem assignments.
7903         * tree-inline.h (copy_body_data): Add fields retbnd and
7904         assign_stmts.
7905         * value-prof.c: Include tree-chkp.h.
7906         (gimple_ic): Support returned bounds.
7907         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
7908         with "chkp ctor" and "bnd_legacy" attributes.
7909         (symtab_remove_unreachable_nodes): Keep initial values for
7910         pointer bounds to be used for checks eliminations.
7911         (process_references): Handle IPA_REF_CHKP.
7912         (walk_polymorphic_call_targets): Likewise.
7913         * ipa-visibility.c (cgraph_externally_visible_p): Mark
7914         instrumented 'main' as externally visible.
7915         (function_and_variable_visibility): Filter instrumentation
7916         thunks.
7917         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
7918         field.
7919         (cgraph_node): Add instrumented_version, orig_decl and
7920         instrumentation_clone fields.
7921         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
7922         (varpool_node): Add need_bounds_init field.
7923         (cgraph_local_p): New.
7924         * cgraph.c: Include tree-chkp.h.
7925         (cgraph_node::remove): Fix instrumented_version
7926         of the referenced node if any.
7927         (cgraph_node::dump): Dump instrumentation_clone and
7928         instrumented_version fields.
7929         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
7930         references and instrumentation thunks.
7931         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
7932         all not instrumented instrumentation clones alive.
7933         (cgraph_redirect_edge_call_stmt_to_callee): Support
7934         returned bounds.
7935         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
7936         reference.
7937         (cgraph_rebuild_references): Likewise.
7938         * cgraphunit.c: Include tree-chkp.h.
7939         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
7940         function version.
7941         (varpool_finalize_decl): Register statically initialized decls
7942         in Pointer Bounds Checker.
7943         (walk_polymorphic_call_targets): Do not mark generated call to
7944         __builtin_unreachable as with_bounds.
7945         (output_weakrefs): If there are both instrumented and original
7946         versions, output only one of them.
7947         (cgraph_node::expand_thunk): Set with_bounds flag
7948         for created call statement.
7949         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
7950         (ipa_ref): increase size of use field.
7951         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
7952         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
7953         (ctor_for_folding): Do not fold constant bounds vars.
7954         * lto-streamer.h (LTO_minor_version): Change minor version from
7955         0 to 1.
7956         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
7957         pointer bounds.
7958         (lto_output_node): Output instrumentation_clone,
7959         thunk.add_pointer_bounds_args and orig_decl field.
7960         (lto_output_ref): Adjust to new ipa_ref::use field size.
7961         (input_overwrite_node): Read instrumentation_clone field.
7962         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
7963         fields.
7964         (input_ref): Adjust to new ipa_ref::use field size.
7965         (input_cgraph_1): Compute instrumented_version fields and restore
7966         IDENTIFIER_TRANSPARENT_ALIAS chains.
7967         (lto_output_varpool_node): Output
7968         need_bounds_init value.
7969         (input_varpool_node): Read need_bounds_init value.
7970         * lto-partition.c (add_symbol_to_partition_1): Keep original
7971         and instrumented versions together.
7972         (privatize_symbol_name): Restore transparent alias chain if required.
7973         (add_references_to_partition): Add references to pointer bounds vars.
7974         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
7975         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
7976         (gen_type_die_with_usage): Skip pointer bounds.
7977         (dwarf2out_global_decl): Likewise.
7978         (is_base_type): Support POINTER_BOUNDS_TYPE.
7979         (gen_formal_types_die): Skip pointer bounds.
7980         (gen_decl_die): Likewise.
7981         * var-tracking.c (vt_add_function_parameters): Skip
7982         bounds parameters.
7983         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
7984         thunk still exists.
7985         (sem_variable::merge): Reset need_bounds_init flag.
7986         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
7987         and attributes.
7988         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
7989         (TARGET_STORE_BOUNDS_FOR_ARG): New.
7990         (TARGET_LOAD_RETURNED_BOUNDS): New.
7991         (TARGET_STORE_RETURNED_BOUNDS): New.
7992         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
7993         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
7994         (TARGET_BUILTIN_CHKP_FUNCTION): New.
7995         (TARGET_CHKP_BOUND_TYPE): New.
7996         (TARGET_CHKP_BOUND_MODE): New.
7997         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
7998         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
7999         * doc/tm.texi: Regenerated.
8000         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
8001         (BND32mode): New.
8002         (BND64mode): New.
8003         * doc/invoke.texi (-mmpx): New.
8004         (-mno-mpx): New.
8005         (chkp-max-ctor-size): New.
8006         * config/i386/constraints.md (w): New.
8007         (Ti): New.
8008         (Tb): New.
8009         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
8010         * config/i386/i386-modes.def (BND32): New.
8011         (BND64): New.
8012         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
8013         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
8014         (regclass_map): Add bound registers.
8015         (dbx_register_map): Likewise.
8016         (dbx64_register_map): Likewise.
8017         (svr4_dbx_register_map): Likewise.
8018         (isa_opts): Add -mmpx.
8019         (PTA_MPX): New.
8020         (ix86_option_override_internal): Support MPX ISA.
8021         (ix86_conditional_register_usage): Support bound registers.
8022         (ix86_code_end): Add MPX bnd prefix.
8023         (output_set_got): Likewise.
8024         (print_reg): Avoid prefixes for bound registers.
8025         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
8026         (ix86_print_operand_punct_valid_p): Likewise.
8027         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
8028         UNSPEC_BNDLDX_ADDR.
8029         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
8030         (ix86_class_likely_spilled_p): Add bound regs support.
8031         (ix86_hard_regno_mode_ok): Likewise.
8032         (x86_order_regs_for_local_alloc): Likewise.
8033         (ix86_bnd_prefixed_insn_p): New.
8034         (ix86_builtins): Add
8035         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
8036         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
8037         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
8038         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
8039         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
8040         IX86_BUILTIN_BNDUPPER.
8041         (builtin_isa): Add leaf_p and nothrow_p fields.
8042         (def_builtin): Initialize leaf_p and nothrow_p.
8043         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
8044         flags.
8045         (bdesc_mpx): New.
8046         (bdesc_mpx_const): New.
8047         (ix86_init_mpx_builtins): New.
8048         (ix86_init_builtins): Call ix86_init_mpx_builtins.
8049         (ix86_emit_cmove): New.
8050         (ix86_emit_move_max): New.
8051         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
8052         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
8053         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
8054         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
8055         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
8056         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
8057         (ix86_function_value_bounds): New.
8058         (ix86_builtin_mpx_function): New.
8059         (ix86_get_arg_address_for_bt): New.
8060         (ix86_load_bounds): New.
8061         (ix86_store_bounds): New.
8062         (ix86_load_returned_bounds): New.
8063         (ix86_store_returned_bounds): New.
8064         (ix86_mpx_bound_mode): New.
8065         (ix86_make_bounds_constant): New.
8066         (ix86_initialize_bounds):
8067         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8068         (TARGET_STORE_BOUNDS_FOR_ARG): New.
8069         (TARGET_LOAD_RETURNED_BOUNDS): New.
8070         (TARGET_STORE_RETURNED_BOUNDS): New.
8071         (TARGET_CHKP_BOUND_MODE): New.
8072         (TARGET_BUILTIN_CHKP_FUNCTION): New.
8073         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8074         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8075         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8076         (ix86_option_override_internal): Do not
8077         support x32 with MPX.
8078         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
8079         and force_bnd_pass.
8080         (function_arg_advance_32): Return number of used integer
8081         registers.
8082         (function_arg_advance_64): Likewise.
8083         (function_arg_advance_ms_64): Likewise.
8084         (ix86_function_arg_advance): Handle pointer bounds.
8085         (ix86_function_arg): Likewise.
8086         (ix86_function_value_regno_p): Mark fisrt bounds registers as
8087         possible function value.
8088         (ix86_function_value_1): Handle pointer bounds type/mode
8089         (ix86_return_in_memory): Likewise.
8090         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
8091         (ix86_expand_call): Generate returned bounds.
8092         (ix86_setup_incoming_vararg_bounds): New.
8093         (ix86_va_start): Initialize bounds for pointers in va_list.
8094         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8095         * config/i386/i386.h (TARGET_MPX): New.
8096         (TARGET_MPX_P): New.
8097         (FIRST_PSEUDO_REGISTER): Fix to new value.
8098         (FIXED_REGISTERS): Add bound registers.
8099         (CALL_USED_REGISTERS): Likewise.
8100         (REG_ALLOC_ORDER): Likewise.
8101         (HARD_REGNO_NREGS): Likewise.
8102         (VALID_BND_REG_MODE): New.
8103         (FIRST_BND_REG): New.
8104         (LAST_BND_REG): New.
8105         (reg_class): Add BND_REGS.
8106         (REG_CLASS_NAMES): Likewise.
8107         (REG_CLASS_CONTENTS): Likewise.
8108         (BND_REGNO_P): New.
8109         (ANY_BND_REG_P): New.
8110         (BNDmode): New.
8111         (HI_REGISTER_NAMES): Add bound registers.
8112         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
8113         stdarg fields.
8114         * config/i386/i386.md (UNSPEC_BNDMK): New.
8115         (UNSPEC_BNDMK_ADDR): New.
8116         (UNSPEC_BNDSTX): New.
8117         (UNSPEC_BNDLDX): New.
8118         (UNSPEC_BNDLDX_ADDR): New.
8119         (UNSPEC_BNDCL): New.
8120         (UNSPEC_BNDCU): New.
8121         (UNSPEC_BNDCN): New.
8122         (UNSPEC_MPX_FENCE): New.
8123         (UNSPEC_SIZEOF): New.
8124         (BND0_REG): New.
8125         (BND1_REG): New.
8126         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8127         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8128         (prefix_rep): Check for bnd prefix.
8129         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8130         (length_nobnd): New.
8131         (length): Use length_nobnd when specified.
8132         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8133         (BND): New.
8134         (bnd_ptr): New.
8135         (BNDCHECK): New.
8136         (bndcheck): New.
8137         (*jcc_1): Add MPX bnd prefix.
8138         (*jcc_2): Likewise.
8139         (jump): Likewise.
8140         (*indirect_jump): Likewise.
8141         (*tablejump_1): Likewise.
8142         (simple_return_internal): Likewise.
8143         (simple_return_internal_long): Likewise.
8144         (simple_return_pop_internal): Likewise.
8145         (simple_return_indirect_internal): Likewise.
8146         (<mode>_mk): New.
8147         (*<mode>_mk): New.
8148         (mov<mode>): New.
8149         (*mov<mode>_internal_mpx): New.
8150         (<mode>_<bndcheck>): New.
8151         (*<mode>_<bndcheck>): New.
8152         (<mode>_ldx): New.
8153         (*<mode>_ldx): New.
8154         (<mode>_stx): New.
8155         (*<mode>_stx): New.
8156         move_size_reloc_<mode>): New.
8157         * config/i386/predicates.md (address_mpx_no_base_operand): New.
8158         (address_mpx_no_index_operand): New.
8159         (bnd_mem_operator): New.
8160         (symbol_operand): New.
8161         (x86_64_immediate_size_operand): New.
8162         * config/i386/i386.opt (mmpx): New.
8163         * config/i386/i386-builtin-types.def (BND): New.
8164         (ULONG): New.
8165         (BND_FTYPE_PCVOID_ULONG): New.
8166         (VOID_FTYPE_BND_PCVOID): New.
8167         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
8168         (BND_FTYPE_PCVOID_PCVOID): New.
8169         (BND_FTYPE_PCVOID): New.
8170         (BND_FTYPE_BND_BND): New.
8171         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
8172         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
8173         (ULONG_FTYPE_VOID): New.
8174         (PVOID_FTYPE_BND): New.
8175
8176 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
8177
8178         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
8179         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
8180         pass_cleanup_barriers, pass_delay_slots,
8181         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
8182         pass_shorten_branches, pass_est_nothrow_function_flags,
8183         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
8184         into pass_late_compilation.
8185         (pass_late_compilation): Add.
8186         * passes.c (pass_data_late_compilation, pass_late_compilation,
8187         make_pass_late_compilation): New.
8188         * timevar.def (TV_LATE_COMPILATION): New.
8189
8190         * target.def (omit_struct_return_reg): New data hook.
8191         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
8192         * doc/tm.texi: Regenerate.
8193         * function.c (expand_function_end): Use it.
8194
8195         * target.def (no_register_allocation): New data hook.
8196         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
8197         * doc/tm.texi: Regenerate.
8198         * ira.c (gate_ira): New function.
8199         (pass_data_ira): Set has_gate.
8200         (pass_ira): Add a gate function.
8201         (pass_data_reload): Likewise.
8202         (pass_reload): Add a gate function.
8203         (pass_ira): Use it.
8204         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
8205         no register allocation happens on the target and return.
8206         * final.c (alter_subreg): Ensure register is not a pseudo before
8207         calling simplify_subreg.
8208         (output_operand): Assert that x isn't a pseudo only if doing
8209         register allocation.
8210
8211         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
8212         global vars.
8213
8214         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
8215         sorry if necessary.
8216
8217 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
8218
8219         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
8220         * rtl.h (SUBREG_P): New macro added.
8221
8222 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
8223
8224         * config/aarch64/aarch64-builtins.c
8225         (aarch64_build_scalar_type): Remove.
8226         (aarch64_scalar_builtin_types, aarch64_simd_type,
8227         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
8228         aarch64_mangle_builtin_vector_type,
8229         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
8230         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
8231         aarch64_init_simd_builtin_types,
8232         aarch64_init_simd_builtin_scalar_types): New.
8233         (aarch64_init_simd_builtins): Refactor.
8234         (aarch64_init_crc32_builtins): Fixup with qualifier.
8235         * config/aarch64/aarch64-protos.h
8236         (aarch64_mangle_builtin_type): Export.
8237         * config/aarch64/aarch64-simd-builtin-types.def: New.
8238         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
8239         (aarch64_mangle_type): Refactor.
8240         * config/aarch64/arm_neon.h: Declare vector types based on
8241         internal types.
8242         * config/aarch64/t-aarch64: Update dependency.
8243
8244 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
8245
8246         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
8247         atomic_update_decl): Guard declaration with #ifdef.
8248
8249 2014-11-04  Marek Polacek  <polacek@redhat.com>
8250
8251         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
8252
8253 2014-11-04  Marek Polacek  <polacek@redhat.com>
8254
8255         * Makefile.in (OBJS): Add sanopt.o.
8256         (GTFILES): Add sanopt.c.
8257         * asan.h (asan_expand_check_ifn): Declare.
8258         * asan.c (asan_expand_check_ifn): No longer static.
8259         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
8260         * sanopt.c: ...here.  New file.
8261
8262 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
8263 2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
8264
8265         PR target/63293
8266         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
8267         stack adjustment.
8268
8269 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
8270
8271         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
8272         also verify that mode is equal to the mode of op0.
8273
8274         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
8275         emit into a sequence instead.
8276
8277 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8278
8279         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
8280
8281 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
8282
8283         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
8284         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
8285         (reduc_smax_<mode> *2): Rename to...
8286         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
8287         (reduc_umin_<mode> *2): Rename to...
8288         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
8289         (reduc_umax_<mode> *2): Rename to...
8290         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
8291
8292 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
8293
8294         config/arm/neon.md (reduc_plus_*): Rename to...
8295         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
8296
8297 2014-11-04  Michael Collison <michael.collison@linaro.org>
8298
8299         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
8300         to support constraints for CONST_INT in atomic operations.
8301         * config/aarch64/atomics.md
8302         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
8303         (atomic_nand<mode>): Likewise.
8304         (atomic_fetch_<atomic_optab><mode>): Likewise.
8305         (atomic_fetch_nand<mode>): Likewise.
8306         (atomic_<atomic_optab>_fetch<mode>): Likewise.
8307         (atomic_nand_fetch<mode>): Likewise.
8308
8309 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8310
8311         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
8312         of __ARM_FEATURE_IDIV.
8313
8314 2014-11-04  Marek Polacek  <polacek@redhat.com>
8315
8316         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
8317
8318 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8319
8320         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
8321
8322 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8323
8324         Revert:
8325         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8326         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
8327         Allow CC mode if HAVE_cbranchcc4.
8328
8329 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8330
8331         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
8332         with -fdump-go-spec.  Anonymous substructures are now flattened and
8333         replaced by their fields (record) or the first named, non-bitfield
8334         field (union).
8335
8336 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8337
8338         * input.c (expand_location_to_spelling_point): Fix typo.
8339         (expansion_point_location_if_in_system_header): Fix comment.
8340
8341 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8342
8343         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
8344
8345 2014-11-03  Richard Biener  <rguenther@suse.de>
8346
8347         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
8348         like ordinary operations.
8349         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
8350         as NOP_EXPR.
8351
8352 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
8353
8354         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
8355         macros.
8356         * configure, config.h.in: Regenerate.
8357         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
8358         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
8359         (RS6000_GLIBC_ATOMIC_FENV): New macro.
8360         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
8361         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
8362         (RS6000_GLIBC_ATOMIC_FENV): New macro.
8363         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
8364         (atomic_update_decl): New static variables.
8365         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
8366         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
8367         and __atomic_feupdateenv for soft-float and no-FPRs.
8368
8369 2014-11-03  Richard Biener  <rguenther@suse.de>
8370
8371         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
8372         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
8373         * fold-const.c (fold_unary_loc): Remove them here.
8374         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
8375         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
8376         GIMPLE_UNARY_RHS case.
8377         (gimple_fold_stmt_to_constant_1): Likewise.
8378         (replace_stmt_with_simplification): Fix inverted comparison.
8379
8380 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
8381
8382         PR tree-optimization/60770
8383         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
8384         statement should be removed.
8385         (maybe_register_def): Likewise. Replace clobbers with default
8386         definitions.
8387         (rewrite_dom_walker::before_dom_children): Remove statement if
8388         rewrite_update_stmt says so.
8389         * tree-ssa-live.c: Include tree-ssa.h.
8390         (set_var_live_on_entry): Do not mark undefined variables as live.
8391         (verify_live_on_entry): Do not check undefined variables.
8392         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
8393         of partially undefined variables.
8394         * tree-ssa.c (ssa_undefined_value_p): Likewise.
8395         (execute_update_addresses_taken): Do not drop clobbers.
8396
8397 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
8398
8399         PR tree-optimization/63666
8400         * fold-const.c: Include "optabs.h".
8401         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
8402         can_vec_perm_p permutation to one that is not.
8403
8404 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8405
8406         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
8407
8408 2014-11-03  Andrew Pinski  <apinski@cavium.com>
8409
8410         * config/mips/mips-cpus.def (octeon3): New cpu.
8411         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
8412         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
8413         of the comparison no longer matches mode of the operands.
8414         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
8415         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
8416         (TARGET_OCTEON2): Likewise.
8417         (TUNE_OCTEON): Add Octeon3.
8418         * config/mips/mips.md (processor): Add octeon3.
8419         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
8420         (octeon_arith): Add octeon3.
8421         (octeon_condmove): Remove.
8422         (octeon_condmove_o1): New reservation.
8423         (octeon_condmove_o2): New reservation.
8424         (octeon_condmove_o3_int_on_cc): New reservation.
8425         (octeon_load_o2): Add octeon3.
8426         (octeon_cop_o2): Likewise.
8427         (octeon_store): Likewise.
8428         (octeon_brj_o2): Likewise.
8429         (octeon_imul3_o2): Likewise.
8430         (octeon_imul_o2): Likewise.
8431         (octeon_mfhilo_o2): Likewise.
8432         (octeon_imadd_o2): Likewise.
8433         (octeon_idiv_o2_si): Likewise.
8434         (octeon_idiv_o2_di): Likewise.
8435         (octeon_fpu): Add to the automaton.
8436         (octeon_fpu): New cpu unit.
8437         (octeon_condmove_o2): Check for non floating point modes.
8438         (octeon_load_o2): Add prefetchx.
8439         (octeon_cop_o2): Don't check for octeon3.
8440         (octeon3_faddsubcvt): New reservation.
8441         (octeon3_fmul): Likewise.
8442         (octeon3_fmadd): Likewise.
8443         (octeon3_div_sf): Likewise.
8444         (octeon3_div_df): Likewise.
8445         (octeon3_sqrt_sf): Likewise.
8446         (octeon3_sqrt_df): Likewise.
8447         (octeon3_rsqrt_sf): Likewise.
8448         (octeon3_rsqrt_df): Likewise.
8449         (octeon3_fabsnegmov): Likewise.
8450         (octeon_fcond): Likewise.
8451         (octeon_fcondmov): Likewise.
8452         (octeon_fpmtc1): Likewise.
8453         (octeon_fpmfc1): Likewise.
8454         (octeon_fpload): Likewise.
8455         (octeon_fpstore): Likewise.
8456         * config/mips/mips-tables.opt: Regenerate.
8457         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
8458
8459 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8460
8461         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
8462         Allow CC mode if HAVE_cbranchcc4.
8463
8464 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
8465
8466         * config/arc/arc.c (write_ext_corereg_1): Delete.
8467         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
8468
8469 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
8470
8471         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
8472         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
8473
8474 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
8475
8476         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
8477         (small_data_pattern_1): Delete.
8478         (small_data_pattern): Use FOR_EACH_SUBRTX.
8479
8480 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
8481
8482         * config/arc/arc.c: Include rtl-iter.h.
8483         (arc_rewrite_small_data_1): Delete.
8484         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
8485
8486 2014-11-02  Michael Collison  <michael.collison@linaro.org>
8487
8488         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
8489         to support vector modes.
8490         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
8491
8492 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
8493
8494         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
8495         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
8496         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
8497         * optabs.c: (gen_move_insn): Move to expr.c.
8498         * expr.h: Move protypes and enums to optabs.h.
8499         * expr.c: (gen_move_insn): Relocate from optabs.c.
8500         * genemit.c (main): Include insn-codes.h.
8501         * gengtype.c (open_base_files): Include insn-codes.h.
8502         * asan.c: Include insn-codes.h.
8503         * bb-reorder.c: Ditto.
8504         * builtins.c: Ditto.
8505         * calls.c: Ditto.
8506         * cfgexpand.c: Ditto.
8507         * cilk-common.c: Ditto.
8508         * combine.c: Ditto.
8509         * dojump.c: Ditto.
8510         * dse.c: Ditto.
8511         * except.c: Ditto.
8512         * explow.c: Ditto.
8513         * expmed.c: Ditto.
8514         * function.c: Ditto.
8515         * ifcvt.c: Ditto.
8516         * internal-fn.c: Ditto.
8517         * loop-unroll.c: Ditto.
8518         * lra.c: Ditto.
8519         * modulo-sched.c: Ditto.
8520         * omp-low.c: Ditto.
8521         * postreload.c: Ditto.
8522         * ree.c: Ditto.
8523         * reload.c: Ditto.
8524         * reload1.c: Ditto.
8525         * shrink-wrap.c: Ditto.
8526         * simplify-rtx.c: Ditto.
8527         * stmt.c: Ditto.
8528         * target-globals.c: Ditto.
8529         * targhooks.c: Ditto.
8530         * toplev.c: Ditto.
8531         * tree-if-conv.c: Ditto.
8532         * tree-ssa-forwprop.c: Ditto.
8533         * tree-ssa-loop-prefetch.c: Ditto.
8534         * tree-ssa-math-opts.c: Ditto.
8535         * tree-ssa-phiopt.c: Ditto.
8536         * tree-ssa-reassoc.c: Ditto.
8537         * tree-switch-conversion.c: Ditto.
8538         * tree-vect-data-refs.c: Ditto.
8539         * tree-vect-generic.c: Ditto.
8540         * tree-vect-loop.c: Ditto.
8541         * tree-vect-patterns.c: Ditto.
8542         * tree-vect-slp.c: Ditto.
8543         * tree-vect-stmts.c: Ditto.
8544         * tree-vrp.c: Ditto.
8545         * value-prof.c: Ditto.
8546         * config/aarch64/aarch64-builtins.c: Ditto.
8547         * config/alpha/alpha.c: Ditto.
8548         * config/arm/arm.c: Ditto.
8549         * config/cris/cris.c: Ditto.
8550         * config/epiphany/epiphany.c: Ditto.
8551         * config/frv/frv.c: Ditto.
8552         * config/h8300/h8300.c: Ditto.
8553         * config/ia64/ia64.c: Ditto.
8554         * config/iq2000/iq2000.c: Ditto.
8555         * config/m32c/m32c.c: Ditto.
8556         * config/mep/mep.c: Ditto.
8557         * config/microblaze/microblaze.c: Ditto.
8558         * config/mips/mips.c: Ditto.
8559         * config/mn10300/mn10300.c: Ditto.
8560         * config/moxie/moxie.c: Ditto.
8561         * config/msp430/msp430.c: Ditto.
8562         * config/nios2/nios2.c: Ditto.
8563         * config/pa/pa.c: Ditto.
8564         * config/rl78/rl78.c: Ditto.
8565         * config/rs6000/rs6000.c: Ditto.
8566         * config/rx/rx.c: Ditto.
8567         * config/s390/s390.c: Ditto.
8568         * config/sh/sh.c: Ditto.
8569         * config/sh/sh_treg_combine.cc: Ditto.
8570         * config/spu/spu.c: Ditto.
8571         * config/stormy16/stormy16.c: Ditto.
8572         * config/tilegx/mul-tables.c: Ditto.
8573         * config/tilegx/tilegx.c: Ditto.
8574         * config/tilepro/mul-tables.c: Ditto.
8575         * config/tilepro/tilepro.c: Ditto.
8576         * config/vax/vax.c: Ditto.
8577
8578 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8579
8580         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
8581         (CLEAR_BY_PIECES_P): Likewise.
8582         (SET_BY_PIECES_P): Likewise.
8583         (STORE_BY_PIECES_P): Likewise.
8584         * doc/tm.texi: Regenerate.
8585         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
8586         SET_BY_PIECES_P, STORE_BY_PIECES_P.
8587         * expr.c (MOVE_BY_PIECES_P): Remove.
8588         (CLEAR_BY_PIECES_P): Likewise.
8589         (SET_BY_PIECES_P): Likewise.
8590         (STORE_BY_PIECES_P): Likewise.
8591         (can_move_by_pieces): Rewrite in terms of
8592         targetm.use_by_pieces_infrastructure_p.
8593         (emit_block_move_hints): Likewise.
8594         (can_store_by_pieces): Likewise.
8595         (store_by_pieces): Likewise.
8596         (clear_storage_hints): Likewise.
8597         (emit_push_insn): Likewise.
8598         (expand_constructor): Likewise.
8599
8600 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8601
8602         * config/aarch64/aarch64.c
8603         (aarch64_use_by_pieces_infrastructre_p): New.
8604         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
8605         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
8606
8607 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8608
8609         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
8610         (STORE_BY_PIECES_P): Likewise.
8611         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
8612         (mips_move_by_pieces_p): Rename to...
8613         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
8614         parameters, use the default hook implementation as a
8615         fall-back.
8616
8617 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8618
8619         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
8620         (sh_use_by_pieces_infrastructure_p): Likewise.
8621         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
8622         (STORE_BY_PIECES_P): Likewise.
8623         (SET_BY_PIECES_P): Likewise.
8624
8625 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8626
8627         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
8628         (arc_use_by_pieces_infrastructure_p): Likewise.
8629         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
8630         (CAN_MOVE_BY_PIECES): Likewise.
8631
8632 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8633
8634         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
8635         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
8636         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
8637         (CLEAR_BY_PIECES): Likewise.
8638         (SET_BY_PIECES): Likewise.
8639         (STORE_BY_PIECES): Likewise.
8640
8641 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
8642
8643         * target.def (use_by_pieces_infrastructure_p): New.
8644         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
8645         is deprecated.
8646         (STORE_BY_PIECES_P): Likewise.
8647         (CLEAR_BY_PIECES_P): Likewise.
8648         (SET_BY_PIECES_P): Likewise.
8649         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
8650         * doc/tm.texi: Regenerate.
8651         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
8652         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
8653         (STORE_BY_PIECES_P): Likewise.
8654         (CLEAR_BY_PIECES_P): Likewise.
8655         (SET_BY_PIECES_P): Likewise.
8656         (STORE_MAX_PIECES): Move to...
8657         * defaults.h (STORE_MAX_PIECES): ...here.
8658         * targhooks.c (get_move_ratio): New.
8659         (default_use_by_pieces_infrastructure_p): Likewise.
8660         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
8661         * target.h (by_pieces_operation): New.
8662
8663 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8664
8665         PR target/63702
8666         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
8667         assignment to 'nargs' variable.
8668
8669 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8670
8671         PR target/63620
8672         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
8673         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
8674         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
8675         be reloaded through memory.
8676         (*pushxf): Ditto.
8677         (*pushdf): Ditto.
8678
8679 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
8680
8681         PR rtl-optimization/63659
8682         * ree.c (update_reg_equal_equiv_notes): New function.
8683         (combine_set_extension, transform_ifelse): Use it.
8684
8685 2014-10-31  Jeff Law  <law@redhat.com>
8686
8687         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
8688         and Jonny Grant (collect2).
8689
8690 2014-10-31  Richard Biener  <rguenther@suse.de>
8691
8692         * builtins.c (fold_builtin_atomic_always_lock_free): Use
8693         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
8694         approprate.
8695         (fold_builtin_expect): Likewise.
8696         (integer_valued_real_p): Likewise.
8697         * cfgexpand.c (expand_debug_expr): Likewise.
8698         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
8699         (find_foldable_builtin_expect): Likewise.
8700         * trans-mem.c (thread_private_new_memory): Likewise.
8701         * tree-affine.c (aff_combination_expand): Likewise.
8702         * tree-data-ref.c (initialize_matrix_A): Likewise.
8703         * tree-inline.c (copy_bb): Likewise.
8704         * tree-pretty-print.c (dump_function_name): Likewise.
8705         (print_call_name): Likewise.
8706         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
8707         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
8708         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
8709         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
8710         (vect_recog_widen_mult_pattern): Likewise.
8711         (vect_operation_fits_smaller_type): Likewise.
8712         * tree-vrp.c (find_assert_locations_1): Likewise.
8713         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
8714         converts to NOP_EXPR.
8715
8716 2014-10-31  Richard Biener  <rguenther@suse.de>
8717
8718         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
8719         CONVERT_EXPRs in generated code.
8720         (dt_simplify::gen): Likewise.
8721
8722 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
8723
8724         PR target/63534
8725         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
8726         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
8727         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
8728         using mcount in 32bit PIC mode.
8729         (ix86_elim_entry_set_got): New.
8730         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
8731         in PROLOGUE, delete initial if possible.
8732
8733 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
8734
8735         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
8736         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
8737
8738 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8739
8740         PR tree-optimization/63259
8741         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
8742         rotation left if it is a 16 bit byte swap.
8743         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
8744         and RROTATE_EXPR statements if it is a byte rotation.
8745
8746 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
8747
8748         PR sanitizer/63697
8749         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
8750         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
8751         instead of vr0.min - vr1.min and vr0.max - vr1.max.
8752
8753 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
8754
8755         PR ipa/63696
8756         * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
8757         alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
8758
8759 2014-10-30  Felix Yang  <felix.yang@huawei.com>
8760
8761         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
8762         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
8763         (xtensa_reorg, xtensa_reorg_loops): New.
8764         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
8765         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
8766         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
8767         (xtensa_doloop_hooks): Define.
8768         * config/xtensa/xtensa.md (doloop_end, loop_end): New
8769         (zero_cost_loop_start): Rewritten.
8770         (zero_cost_loop_end): Likewise.
8771
8772 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
8773
8774         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
8775
8776 2014-10-30  Richard Biener  <rguenther@suse.de>
8777
8778         * genmatch.c: Remove <map>, <utility> and <string> includes.
8779         Include ggc.h and hash-map.h.
8780         (ggc_internal_cleared_alloc): Provide stub definition.
8781         (ggc_free): Likewise.
8782         (struct capture_id_map_hasher): New traits for hash_map.
8783         (cid_map_t): New typedef.
8784         (everywhere else): Replace std::map use with cid_map_t.
8785         * hash-map.h (hash_map::elements): New member function.
8786         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
8787         hash-map.h and $(GGC_H) as dependency.
8788
8789 2014-10-30  Richard Biener  <rguenther@suse.de>
8790
8791         * genmatch.c (capture_info::walk_c_expr): Ignore capture
8792         uses inside TREE_TYPE ().
8793         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
8794         (find_candidates_dom_walker::before_dom_children): Likewise.
8795         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
8796         (replace_profitable_candidates): Likewise.
8797         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
8798         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
8799         * convert.c (convert_to_integer): Use CASE_CONVERT.
8800
8801 2014-10-30  Richard Biener  <rguenther@suse.de>
8802
8803         * match.pd: Implement more patterns that simplify to a single value.
8804         * fold-const.c (fold_binary_loc): Remove them here.
8805         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
8806         (fwprop_ssa_val): Remove restriction on single uses.
8807
8808 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8809
8810         * config/avr/driver-avr.c (avr_set_current_device): Remove.
8811
8812 2014-10-30  Martin Liska  <mliska@suse.cz>
8813
8814         PR ipa/63574
8815         PR ipa/63664
8816         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
8817         (func_checker::compare_gimple_label): Simlified comparison introduced.
8818         * ipa-icf-gimple.h: Missing comment added.
8819
8820 2014-10-30  Jeff Law  <law@redhat.com>
8821
8822         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
8823         argument from rtx to rtx_insn *.
8824         (compute_movmem_length, compute_clrmem_length): Likewise.
8825         (copy_fp_args, length_fp_args): Likewise.
8826         * config/pa/pa.c (legitimize_pic_address): Promote local variable
8827         "insn" from rtx to rtx_insn *.
8828         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
8829         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
8830         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
8831         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
8832         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
8833         (compute_movmem_length, compute_clrmem_length): Likewise.
8834         (copy_fp-args, length_fp_args): Likewise.
8835
8836 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8837
8838         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
8839         scalar typedef.
8840         (CUMULATIVE_ARGS): Guard against target includes.
8841         (machine_function): Likewise.
8842
8843 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8844
8845         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
8846         recog state after aarch64_prev_real_insn call.
8847
8848 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8849
8850         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
8851
8852 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8853
8854         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
8855         (struct machine_function): Gate definition on
8856         !defined(USED_FOR_TARGET).
8857
8858 2014-10-29  DJ Delorie  <dj@redhat.com>
8859
8860         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
8861
8862 2014-10-29  Martin Liska  <mliska@suse.cz>
8863
8864         PR ipa/63587
8865         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
8866         to local declarations.
8867         * function.c (add_local_decl): Implementation moved from header
8868         file, assert introduced for tree type.
8869         * function.h: Likewise.
8870
8871 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8872
8873         * godump.c (go_format_type): Represent "float _Complex" and
8874         "double _Complex" as complex64 or complex128 in Go, as appropriate.
8875
8876 2014-10-29  Richard Biener  <rguenther@suse.de>
8877
8878         * match.pd: Implement a first set of conversion patterns.
8879         * fold-const.c (fold_unary_loc): Remove them here.
8880         * tree-ssa-forwprop.c (simplify_vce): Remove.
8881         (pass_forwprop::execute): Do not call simplify_vce.
8882
8883 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
8884
8885         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
8886         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
8887         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
8888         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
8889         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
8890         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
8891         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
8892         config/arc/arc.h, config/arc/predicates.md,
8893         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
8894         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
8895         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
8896         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
8897         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
8898         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
8899         config/cr16/cr16-protos.h, config/cr16/cr16.c,
8900         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
8901         config/darwin-protos.h, config/darwin.c,
8902         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
8903         config/epiphany/epiphany.md, config/fr30/fr30.c,
8904         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
8905         config/h8300/h8300-protos.h, config/h8300/h8300.c,
8906         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
8907         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
8908         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
8909         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
8910         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
8911         config/lm32/lm32-protos.h, config/lm32/lm32.c,
8912         config/m32c/m32c-protos.h, config/m32c/m32c.c,
8913         config/m32r/m32r-protos.h, config/m32r/m32r.c,
8914         config/m68k/m68k-protos.h, config/m68k/m68k.c,
8915         config/mcore/mcore-protos.h, config/mcore/mcore.c,
8916         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
8917         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
8918         config/mips/mips-protos.h, config/mips/mips.c,
8919         config/mmix/mmix-protos.h, config/mmix/mmix.c,
8920         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
8921         config/moxie/moxie.c, config/msp430/msp430-protos.h,
8922         config/msp430/msp430.c, config/nds32/nds32-cost.c,
8923         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
8924         config/nds32/nds32-protos.h, config/nds32/nds32.c,
8925         config/nios2/nios2-protos.h, config/nios2/nios2.c,
8926         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
8927         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
8928         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
8929         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
8930         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
8931         config/s390/predicates.md, config/s390/s390-protos.h,
8932         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8933         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
8934         config/sh/sh.md, config/sparc/predicates.md,
8935         config/sparc/sparc-protos.h, config/sparc/sparc.c,
8936         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
8937         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
8938         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
8939         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
8940         config/tilepro/tilepro.c, config/v850/v850-protos.h,
8941         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
8942         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
8943         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
8944         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
8945         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
8946         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
8947         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
8948         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
8949         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
8950         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
8951         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
8952         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
8953         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
8954         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
8955         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
8956         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
8957         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
8958         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
8959         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
8960         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
8961         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
8962         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
8963         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
8964         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
8965         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
8966         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
8967         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
8968         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
8969         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
8970         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
8971         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
8972         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
8973         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
8974         var-tracking.c, varasm.c: Remove redundant enum from
8975         machine_mode.
8976         * gengtype.c (main): Treat machine_mode as a scalar typedef.
8977         * genmodes.c (emit_insn_modes_h): Hide inline functions if
8978         USED_FOR_TARGET.
8979
8980 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
8981
8982         PR rtl-optimization/63340 (part 2)
8983         * rtl.h (invalid_mode_change_p): Delete.
8984         (valid_mode_changes_for_regno): New function.
8985         * reginfo.c (invalid_mode_change_p): Delete.
8986         (valid_mode_changes_for_regno): New function.
8987         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
8988         classes to registers that are allowed by valid_mode_changes_for_regno.
8989         (setup_regno_cost_classes_by_mode): Likewise.
8990         (print_allocno_costs): Remove invalid_mode_change_p test.
8991         (print_pseudo_costs, find_costs_and_classes): Likewise.
8992
8993 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
8994
8995         PR rtl-optimization/63340 (part 1)
8996         * ira-costs.c (all_cost_classes): New variable.
8997         (complete_cost_classes): New function, split out from...
8998         (setup_cost_classes): ...here.
8999         (initiate_regno_cost_classes): Set up all_cost_classes.
9000         (restrict_cost_classes): New function.
9001         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
9002         registers that are valid for the register's mode.
9003         (setup_regno_cost_classes_by_mode): Model the mode cache as a
9004         restriction of all_cost_classes to a particular mode.
9005         (print_allocno_costs): Remove contains_reg_of_mode check.
9006         (print_pseudo_costs, find_costs_and_classes): Likewise.
9007
9008 2014-10-29  Richard Biener  <rguenther@suse.de>
9009
9010         PR tree-optimization/63666
9011         * tree-vect-slp.c (vect_get_mask_element): Properly handle
9012         accessing out-of-bound elements.
9013
9014 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9015             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9016             Anna Tikhonova  <anna.tikhonova@intel.com>
9017             Ilya Tocar  <ilya.tocar@intel.com>
9018             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9019             Ilya Verbin  <ilya.verbin@intel.com>
9020             Kirill Yukhin  <kirill.yukhin@intel.com>
9021             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9022
9023         * config/i386/i386.md
9024         (movhi_internal): Always detect maskmov.
9025         (movqi_internal): Fix target check.
9026
9027 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9028             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9029             Anna Tikhonova  <anna.tikhonova@intel.com>
9030             Ilya Tocar  <ilya.tocar@intel.com>
9031             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9032             Ilya Verbin  <ilya.verbin@intel.com>
9033             Kirill Yukhin  <kirill.yukhin@intel.com>
9034             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9035
9036         * config/i386/avx512bwintrin.h: Add new intrinsics.
9037         * config/i386/avx512vlbwintrin.h: Ditto.
9038         * config/i386/avx512vlintrin.h: Ditto.
9039
9040 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9041
9042         * godump.c (precision_to_units): New helper function.
9043         (go_append_artificial_name): Ditto.
9044         (go_append_decl_name): Ditto.
9045         (go_append_bitfield): Ditto.
9046         (go_get_uinttype_for_precision): Ditto.
9047         (go_append_padding): Ditto.
9048         (go_force_record_alignment): Ditto.
9049         (go_format_type): Represent unions with an array of uints of the size
9050         of the alignment in go.  This fixes the 'random' size of the union's
9051         representation using just the first field.
9052         (go_format_type): Add argument that indicates whether a record is
9053         nested (used for generation of artificial go names).
9054         (go_output_fndecl): Adapt to new go_format_type signature.
9055         (go_output_typedef): Ditto.
9056         (go_output_var): Ditto.
9057         (go_output_var): Prefer to output type as alias (typedef).
9058         (go_format_type): Bitfields in records are simulated as arrays of bytes
9059         in go.
9060
9061         * godump.c (go_format_type): Fix handling of arrays with zero elements.
9062
9063 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
9064
9065         * cgraph.h: Flatten.  Remove all include files.
9066         (symbol_table::initialize): Move to cgraph.c.
9067         * cgraph.c: Adjust include files.
9068         (symbol_table::initialize): Relocate from cgraph.h.
9069         * gengtype.c (open_base_files): Adjust include files.
9070         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
9071         included files.
9072         * ipa-inline.h: Remove all include files.
9073         * ipa-prop.h: Ditto.
9074         * ipa-reference.h: Ditto.
9075         * ipa-utils.h: Ditto:
9076         * lto-streamer.h: Remove cgraph.h from include list.
9077         * asan.c: Adjust include files.
9078         * auto-profile.c: Ditto.
9079         * bb-reorder.c: Ditto.
9080         * calls.c: Ditto.
9081         * cfgexpand.c: Ditto.
9082         * cgraphbuild.c: Ditto.
9083         * cgraphclones.c: Ditto.
9084         * cgraphunit.c: Ditto.
9085         * combine.c: Ditto.
9086         * coverage.c: Ditto.
9087         * data-streamer.c: Ditto.
9088         * data-streamer-in.c: Ditto.
9089         * data-streamer-out.c: Ditto.
9090         * dbxout.c: Ditto.
9091         * dwarf2out.c: Ditto.
9092         * except.c: Ditto.
9093         * expr.c: Ditto.
9094         * final.c: Ditto.
9095         * fold-const.c: Ditto.
9096         * ggc-page.c: Ditto.
9097         * gimple-fold.c: Ditto.
9098         * gimple-iterator.c: Ditto.
9099         * gimple-pretty-print.c: Ditto.
9100         * gimple-streamer-in.c: Ditto.
9101         * gimple-streamer-out.c: Ditto.
9102         * gimplify.c: Ditto.
9103         * ipa.c: Ditto.
9104         * ipa-comdats.c: Ditto.
9105         * ipa-cp.c: Ditto.
9106         * ipa-devirt.c: Ditto.
9107         * ipa-icf.c: Ditto.
9108         * ipa-icf-gimple.c: Ditto.
9109         * ipa-inline-analysis.c: Ditto.
9110         * ipa-inline.c: Ditto.
9111         * ipa-inline-transform.c: Ditto.
9112         * ipa-polymorphic-call.c: Ditto.
9113         * ipa-profile.c: Ditto.
9114         * ipa-prop.c: Ditto.
9115         * ipa-pure-const.c: Ditto.
9116         * ipa-ref.c: Ditto.
9117         * ipa-reference.c: Ditto.
9118         * ipa-split.c: Ditto.
9119         * ipa-utils.c: Ditto.
9120         * ipa-visibility.c: Ditto.
9121         * langhooks.c: Ditto.
9122         * lto-cgraph.c: Ditto.
9123         * lto-compress.c: Ditto.
9124         * lto-opts.c: Ditto.
9125         * lto-section-in.c: Ditto.
9126         * lto-section-out.c: Ditto.
9127         * lto-streamer.c: Ditto.
9128         * lto-streamer-in.c: Ditto.
9129         * lto-streamer-out.c: Ditto.
9130         * omp-low.c: Ditto.
9131         * opts-global.c: Ditto.
9132         * passes.c: Ditto.
9133         * predict.c: Ditto.
9134         * print-tree.c: Ditto.
9135         * profile.c: Ditto.
9136         * ree.c: Ditto.
9137         * stor-layout.c: Ditto.
9138         * symtab.c: Ditto.
9139         * toplev.c: Ditto.
9140         * trans-mem.c: Ditto.
9141         * tree.c: Ditto.
9142         * tree-cfg.c: Ditto.
9143         * tree-eh.c: Ditto.
9144         * tree-emutls.c: Ditto.
9145         * tree-inline.c: Ditto.
9146         * tree-nested.c: Ditto.
9147         * tree-pretty-print.c: Ditto.
9148         * tree-profile.c: Ditto.
9149         * tree-sra.c: Ditto.
9150         * tree-ssa-alias.c: Ditto.
9151         * tree-ssa-loop-ivcanon.c: Ditto.
9152         * tree-ssa-loop-ivopts.c: Ditto.
9153         * tree-ssa-pre.c: Ditto.
9154         * tree-ssa-structalias.c: Ditto.
9155         * tree-streamer.c: Ditto.
9156         * tree-streamer-in.c: Ditto.
9157         * tree-streamer-out.c: Ditto.
9158         * tree-switch-conversion.c: Ditto.
9159         * tree-tailcall.c: Ditto.
9160         * tree-vect-data-refs.c: Ditto.
9161         * tree-vectorizer.c: Ditto.
9162         * tree-vect-stmts.c: Ditto.
9163         * tsan.c: Ditto.
9164         * ubsan.c: Ditto.
9165         * value-prof.c: Ditto.
9166         * varasm.c: Ditto.
9167         * varpool.c: Ditto.
9168         * config/arm/arm.c: Ditto.
9169         * config/bfin/bfin.c: Ditto.
9170         * config/c6x/c6x.c: Ditto.
9171         * config/cris/cris.c: Ditto.
9172         * config/darwin.c: Ditto.
9173         * config/darwin-c.c: Ditto.
9174         * config/i386/i386.c: Ditto.
9175         * config/i386/winnt.c: Ditto.
9176         * config/microblaze/microblaze.c: Ditto.
9177         * config/mips/mips.c: Ditto.
9178         * config/rs6000/rs6000.c: Ditto.
9179         * config/rx/rx.c: Ditto.
9180
9181 2014-10-28  Richard Biener  <rguenther@suse.de>
9182
9183         * gimple-fold.h (follow_single_use_edges): Declare.
9184         * gimple-fold.c (follow_single_use_edges): New function.
9185         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
9186         * tree-ssa-propagate.c
9187         (substitute_and_fold_dom_walker::before_dom_children): Allow
9188         following single-use edges when folding stmts we propagated into.
9189
9190 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9191             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9192             Anna Tikhonova  <anna.tikhonova@intel.com>
9193             Ilya Tocar  <ilya.tocar@intel.com>
9194             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9195             Ilya Verbin  <ilya.verbin@intel.com>
9196             Kirill Yukhin  <kirill.yukhin@intel.com>
9197             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9198
9199         * config/i386/avx512bwintrin.h: New.
9200         * config/i386/avx512dqintrin.h: Ditto.
9201         * config/i386/avx512vlbwintrin.h: Ditto.
9202         * config/i386/avx512vldqintrin.h: Ditto.
9203         * config/i386/avx512vlintrin.h: Ditto.
9204         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
9205         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
9206
9207 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9208             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9209             Anna Tikhonova  <anna.tikhonova@intel.com>
9210             Ilya Tocar  <ilya.tocar@intel.com>
9211             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9212             Ilya Verbin  <ilya.verbin@intel.com>
9213             Kirill Yukhin  <kirill.yukhin@intel.com>
9214             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9215
9216         * config/i386/i386.c
9217         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
9218         avx_shufpd256_mask, avx_vpermilv2df_mask.
9219
9220 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9221             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9222             Anna Tikhonova  <anna.tikhonova@intel.com>
9223             Ilya Tocar  <ilya.tocar@intel.com>
9224             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9225             Ilya Verbin  <ilya.verbin@intel.com>
9226             Kirill Yukhin  <kirill.yukhin@intel.com>
9227             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9228
9229         * config/i386/i386.c
9230         (ix86_init_mmx_sse_builtins):
9231         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
9232         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
9233         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
9234         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
9235         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
9236         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
9237         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
9238         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
9239         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
9240         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
9241         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
9242         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
9243         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
9244         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
9245         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
9246         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
9247         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
9248         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
9249
9250 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9251             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9252             Anna Tikhonova  <anna.tikhonova@intel.com>
9253             Ilya Tocar  <ilya.tocar@intel.com>
9254             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9255             Ilya Verbin  <ilya.verbin@intel.com>
9256             Kirill Yukhin  <kirill.yukhin@intel.com>
9257             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9258
9259         * config/i386/i386.c
9260         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
9261         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
9262         IX86_BUILTIN_GATHER3ALTDIV8SI.
9263         (ix86_expand_builtin):
9264         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
9265         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
9266         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
9267         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
9268         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
9269         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
9270         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
9271         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
9272         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
9273         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
9274         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
9275         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
9276         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
9277         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
9278         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
9279         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
9280         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
9281         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
9282         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
9283         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
9284
9285 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9286             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9287             Anna Tikhonova  <anna.tikhonova@intel.com>
9288             Ilya Tocar  <ilya.tocar@intel.com>
9289             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9290             Ilya Verbin  <ilya.verbin@intel.com>
9291             Kirill Yukhin  <kirill.yukhin@intel.com>
9292             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9293
9294         * config/i386/i386-builtin-types.def
9295         (SHORT): New.
9296         (V32HI): Ditto.
9297         (V12QI): Ditto.
9298         (V14QI): Ditto.
9299         (V32SI): Ditto.
9300         (V8UDI): Ditto.
9301         (V16USI): Ditto.
9302         (V32UHI): Ditto.
9303         (PSHORT): Ditto.
9304         (PV32QI): Ditto.
9305         (PV32HI): Ditto.
9306         (PV64QI): Ditto.
9307         (PCV8HI): Ditto.
9308         (PCV16QI): Ditto.
9309         (PCV16HI): Ditto.
9310         (PCV32QI): Ditto.
9311         (PCV32HI): Ditto.
9312         (PCV64QI): Ditto.
9313         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
9314         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
9315         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
9316         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
9317         (V16SF_FTYPE_V16HI): Ditto.
9318         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
9319         (V16SF_FTYPE_V16SI): Ditto.
9320         (V4DI_FTYPE_V4DI): Ditto.
9321         (V16SI_FTYPE_V16SF): Ditto.
9322         (V8DI_FTYPE_PV2DI): Ditto.
9323         (V8DF_FTYPE_PV2DF): Ditto.
9324         (V4DI_FTYPE_PV2DI): Ditto.
9325         (V4DF_FTYPE_PV2DF): Ditto.
9326         (V16SI_FTYPE_PV2SI): Ditto.
9327         (V16SF_FTYPE_PV2SF): Ditto.
9328         (V8SF_FTYPE_FLOAT): Ditto.
9329         (V4SF_FTYPE_FLOAT): Ditto.
9330         (V4DF_FTYPE_DOUBLE): Ditto.
9331         (V8SF_FTYPE_PV4SF): Ditto.
9332         (V8SI_FTYPE_PV4SI): Ditto.
9333         (V4SI_FTYPE_PV2SI): Ditto.
9334         (V8SF_FTYPE_PV2SF): Ditto.
9335         (V8SI_FTYPE_PV2SI): Ditto.
9336         (V16SF_FTYPE_PV8SF): Ditto.
9337         (V16SI_FTYPE_PV8SI): Ditto.
9338         (V8DI_FTYPE_V8SF): Ditto.
9339         (V4DI_FTYPE_V4SF): Ditto.
9340         (V2DI_FTYPE_V4SF): Ditto.
9341         (V64QI_FTYPE_QI): Ditto.
9342         (V32HI_FTYPE_HI): Ditto.
9343         (V16UHI_FTYPE_V16UHI): Ditto.
9344         (V32UHI_FTYPE_V32UHI): Ditto.
9345         (V2UDI_FTYPE_V2UDI): Ditto.
9346         (V4UDI_FTYPE_V4UDI): Ditto.
9347         (V8UDI_FTYPE_V8UDI): Ditto.
9348         (V4USI_FTYPE_V4USI): Ditto.
9349         (V16USI_FTYPE_V16USI): Ditto.
9350         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
9351         (V2DF_FTYPE_V8DF_INT): Ditto.
9352         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
9353         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
9354         (V8DF_FTYPE_V8DF_INT): Ditto.
9355         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
9356         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
9357         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
9358         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
9359         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
9360         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
9361         (V8DI_FTYPE_V8DI_INT): Ditto.
9362         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
9363         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
9364         (V8SF_FTYPE_V16SF_INT): Ditto.
9365         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
9366         (V64QI_FTYPE_V32HI_V32HI): Ditto.
9367         (V32HI_FTYPE_V16SI_V16SI): Ditto.
9368         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
9369         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
9370         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
9371         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
9372         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
9373         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
9374         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
9375         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
9376         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
9377         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
9378         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
9379         (V32HI_FTYPE_V64QI_V64QI): Ditto.
9380         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
9381         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
9382         (V32HI_FTYPE_V32HI_V32HI): Ditto.
9383         (V32HI_FTYPE_V32HI_INT): Ditto.
9384         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
9385         (V16SI_FTYPE_V32HI_V32HI): Ditto.
9386         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
9387         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
9388         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
9389         (V8SI_FTYPE_V16SI_INT): Ditto.
9390         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
9391         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
9392         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
9393         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
9394         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
9395         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
9396         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
9397         (V8DI_FTYPE_V16SI_V16SI): Ditto.
9398         (V8DI_FTYPE_V64QI_V64QI): Ditto.
9399         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
9400         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
9401         (V2DI_FTYPE_V8DI_INT): Ditto.
9402         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
9403         (QI_FTYPE_QI): Ditto.
9404         (SI_FTYPE_SI): Ditto.
9405         (DI_FTYPE_DI): Ditto.
9406         (HI_FTYPE_V16QI): Ditto.
9407         (SI_FTYPE_V32QI): Ditto.
9408         (DI_FTYPE_V64QI): Ditto.
9409         (QI_FTYPE_V8HI): Ditto.
9410         (HI_FTYPE_V16HI): Ditto.
9411         (SI_FTYPE_V32HI): Ditto.
9412         (QI_FTYPE_V4SI): Ditto.
9413         (QI_FTYPE_V8SI): Ditto.
9414         (HI_FTYPE_V16SI): Ditto.
9415         (QI_FTYPE_V2DI): Ditto.
9416         (QI_FTYPE_V4DI): Ditto.
9417         (QI_FTYPE_V8DI): Ditto.
9418         (V16QI_FTYPE_HI): Ditto.
9419         (V32QI_FTYPE_SI): Ditto.
9420         (V64QI_FTYPE_DI): Ditto.
9421         (V8HI_FTYPE_QI): Ditto.
9422         (V16HI_FTYPE_HI): Ditto.
9423         (V32HI_FTYPE_SI): Ditto.
9424         (V4SI_FTYPE_QI): Ditto.
9425         (V4SI_FTYPE_HI): Ditto.
9426         (V8SI_FTYPE_QI): Ditto.
9427         (V8SI_FTYPE_HI): Ditto.
9428         (V2DI_FTYPE_QI): Ditto.
9429         (V4DI_FTYPE_QI): Ditto.
9430         (QI_FTYPE_QI_QI): Ditto.
9431         (SI_FTYPE_SI_SI): Ditto.
9432         (DI_FTYPE_DI_DI): Ditto.
9433         (QI_FTYPE_QI_INT): Ditto.
9434         (SI_FTYPE_SI_INT): Ditto.
9435         (DI_FTYPE_DI_INT): Ditto.
9436         (HI_FTYPE_V16QI_V16QI): Ditto.
9437         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
9438         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
9439         (SI_FTYPE_V32QI_V32QI): Ditto.
9440         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
9441         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
9442         (DI_FTYPE_V64QI_V64QI): Ditto.
9443         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
9444         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
9445         (QI_FTYPE_V8HI_V8HI): Ditto.
9446         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
9447         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
9448         (HI_FTYPE_V16HI_V16HI): Ditto.
9449         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
9450         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
9451         (SI_FTYPE_V32HI_V32HI): Ditto.
9452         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
9453         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
9454         (QI_FTYPE_V4SI_V4SI): Ditto.
9455         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
9456         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
9457         (QI_FTYPE_V8SI_V8SI): Ditto.
9458         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
9459         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
9460         (QI_FTYPE_V2DI_V2DI): Ditto.
9461         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
9462         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
9463         (QI_FTYPE_V4DI_V4DI): Ditto.
9464         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
9465         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
9466         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
9467         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
9468         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
9469         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
9470         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
9471         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
9472         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
9473         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
9474         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
9475         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
9476         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
9477         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
9478         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
9479         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
9480         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
9481         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
9482         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
9483         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
9484         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
9485         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
9486         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
9487         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
9488         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
9489         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
9490         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
9491         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
9492         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
9493         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
9494         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
9495         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
9496         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
9497         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
9498         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
9499         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
9500         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
9501         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
9502         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
9503         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
9504         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
9505         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
9506         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
9507         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
9508         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
9509         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
9510         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
9511         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
9512         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
9513         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
9514         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
9515         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
9516         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
9517         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
9518         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
9519         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
9520         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
9521         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
9522         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
9523         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
9524         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
9525         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
9526         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
9527         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
9528         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
9529         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
9530         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
9531         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
9532         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
9533         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
9534         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
9535         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
9536         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
9537         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
9538         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
9539         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
9540         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
9541         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
9542         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
9543         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
9544         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
9545         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
9546         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
9547         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
9548         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
9549         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
9550         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
9551         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
9552         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
9553         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
9554         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
9555         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
9556         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
9557         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
9558         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
9559         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
9560         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
9561         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
9562         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
9563         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
9564         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
9565         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
9566         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
9567         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
9568         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
9569         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
9570         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
9571         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
9572         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
9573         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
9574         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
9575         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
9576         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
9577         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
9578         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
9579         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
9580         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
9581         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
9582         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
9583         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
9584         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
9585         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
9586         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
9587         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
9588         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
9589         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
9590         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
9591         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
9592         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
9593         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
9594         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
9595         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
9596         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
9597         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
9598         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
9599         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
9600         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
9601         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
9602         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
9603         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
9604         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
9605         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
9606         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
9607         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
9608         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
9609         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
9610         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
9611         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
9612         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
9613         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
9614         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
9615         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
9616         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
9617         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
9618         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
9619         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
9620         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
9621         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
9622         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
9623         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
9624         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
9625         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
9626         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
9627         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
9628         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
9629         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
9630         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
9631         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
9632         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
9633         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
9634         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
9635         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
9636         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
9637         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
9638         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
9639         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
9640         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
9641         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
9642         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
9643         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
9644         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
9645         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
9646         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
9647         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
9648         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
9649         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
9650         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
9651         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
9652         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
9653         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
9654         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
9655         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
9656         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
9657         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
9658         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
9659         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
9660         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
9661         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
9662         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
9663         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
9664         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
9665         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
9666         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
9667         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
9668         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
9669         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
9670         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
9671         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
9672         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
9673         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
9674         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
9675         (QI_FTYPE_V8DF_INT): Ditto.
9676         (QI_FTYPE_V4DF_INT): Ditto.
9677         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
9678         (QI_FTYPE_V2DF_INT): Ditto.
9679         (HI_FTYPE_V16SF_INT): Ditto.
9680         (QI_FTYPE_V8SF_INT): Ditto.
9681         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
9682         (QI_FTYPE_V4SF_INT): Ditto.
9683         (QI_FTYPE_V8DF_INT_QI): Ditto.
9684         (QI_FTYPE_V4DF_INT_QI): Ditto.
9685         (QI_FTYPE_V2DF_INT_QI): Ditto.
9686         (HI_FTYPE_V16SF_INT_HI): Ditto.
9687         (QI_FTYPE_V8SF_INT_QI): Ditto.
9688         (QI_FTYPE_V4SF_INT_QI): Ditto.
9689         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
9690         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
9691         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
9692         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
9693         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
9694         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
9695         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
9696         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
9697         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
9698         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
9699         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
9700         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
9701         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
9702         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
9703         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
9704         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
9705         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
9706         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
9707         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
9708         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
9709         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
9710         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
9711         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
9712         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
9713         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
9714         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
9715         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
9716         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
9717         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
9718         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
9719         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
9720         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
9721         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
9722         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
9723         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
9724         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
9725         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
9726         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
9727         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
9728         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
9729         (V8DI_FTYPE_V8DI_INT): Ditto.
9730         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
9731         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
9732         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
9733         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
9734         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
9735         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
9736         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
9737         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
9738         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
9739         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
9740         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
9741         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
9742         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
9743         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
9744         * config/i386/i386.c (ix86_builtins):
9745         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
9746         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
9747         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
9748         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
9749         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
9750         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
9751         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
9752         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
9753         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
9754         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
9755         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
9756         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
9757         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
9758         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
9759         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
9760         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
9761         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
9762         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
9763         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
9764         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
9765         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
9766         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
9767         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
9768         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
9769         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
9770         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
9771         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
9772         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
9773         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
9774         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
9775         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
9776         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
9777         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
9778         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
9779         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
9780         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
9781         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
9782         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
9783         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
9784         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
9785         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
9786         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
9787         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
9788         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
9789         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
9790         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
9791         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
9792         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
9793         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
9794         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
9795         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
9796         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
9797         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
9798         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
9799         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
9800         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
9801         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
9802         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
9803         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
9804         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
9805         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
9806         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
9807         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
9808         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
9809         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
9810         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
9811         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
9812         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
9813         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
9814         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
9815         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
9816         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
9817         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
9818         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
9819         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
9820         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
9821         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
9822         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
9823         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
9824         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
9825         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
9826         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
9827         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
9828         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
9829         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
9830         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
9831         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
9832         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
9833         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
9834         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
9835         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
9836         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
9837         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
9838         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
9839         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
9840         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
9841         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
9842         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
9843         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
9844         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
9845         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
9846         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
9847         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
9848         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
9849         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
9850         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
9851         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
9852         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
9853         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
9854         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
9855         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
9856         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
9857         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
9858         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
9859         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
9860         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
9861         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
9862         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
9863         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
9864         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
9865         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
9866         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
9867         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
9868         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
9869         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
9870         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
9871         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
9872         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
9873         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
9874         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
9875         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
9876         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
9877         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
9878         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
9879         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
9880         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
9881         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
9882         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
9883         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
9884         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
9885         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
9886         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
9887         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
9888         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
9889         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
9890         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
9891         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
9892         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
9893         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
9894         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
9895         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
9896         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
9897         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
9898         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
9899         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
9900         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
9901         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
9902         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
9903         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
9904         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
9905         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
9906         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
9907         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
9908         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
9909         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
9910         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
9911         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
9912         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
9913         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
9914         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
9915         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
9916         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
9917         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
9918         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
9919         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
9920         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
9921         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
9922         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
9923         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
9924         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
9925         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
9926         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
9927         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
9928         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
9929         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
9930         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
9931         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
9932         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
9933         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
9934         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
9935         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
9936         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
9937         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
9938         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
9939         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
9940         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
9941         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
9942         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
9943         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
9944         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
9945         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
9946         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
9947         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
9948         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
9949         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
9950         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
9951         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
9952         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
9953         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
9954         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
9955         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
9956         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
9957         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
9958         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
9959         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
9960         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
9961         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
9962         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
9963         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
9964         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
9965         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
9966         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
9967         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
9968         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
9969         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
9970         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
9971         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
9972         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
9973         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
9974         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
9975         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
9976         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
9977         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
9978         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
9979         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
9980         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
9981         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
9982         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
9983         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
9984         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
9985         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
9986         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
9987         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
9988         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
9989         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
9990         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
9991         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
9992         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
9993         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
9994         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
9995         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
9996         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
9997         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
9998         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
9999         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
10000         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
10001         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
10002         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
10003         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
10004         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
10005         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
10006         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
10007         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
10008         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
10009         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
10010         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
10011         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
10012         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
10013         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
10014         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
10015         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
10016         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
10017         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
10018         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
10019         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
10020         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
10021         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
10022         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
10023         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
10024         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
10025         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
10026         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
10027         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
10028         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
10029         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
10030         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
10031         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
10032         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
10033         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
10034         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
10035         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
10036         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
10037         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
10038         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
10039         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
10040         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
10041         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
10042         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
10043         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
10044         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
10045         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
10046         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
10047         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
10048         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
10049         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
10050         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
10051         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
10052         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
10053         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
10054         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
10055         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
10056         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
10057         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
10058         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
10059         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
10060         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
10061         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
10062         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
10063         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
10064         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
10065         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
10066         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
10067         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
10068         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
10069         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
10070         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
10071         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
10072         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
10073         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
10074         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
10075         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
10076         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
10077         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
10078         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
10079         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
10080         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
10081         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
10082         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
10083         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
10084         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
10085         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
10086         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
10087         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
10088         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
10089         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
10090         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
10091         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
10092         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
10093         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
10094         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
10095         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
10096         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
10097         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
10098         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
10099         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
10100         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
10101         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
10102         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
10103         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
10104         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
10105         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
10106         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
10107         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
10108         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
10109         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
10110         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
10111         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
10112         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
10113         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
10114         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
10115         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
10116         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
10117         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
10118         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
10119         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
10120         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
10121         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
10122         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
10123         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
10124         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
10125         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
10126         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
10127         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
10128         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
10129         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
10130         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
10131         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
10132         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
10133         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
10134         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
10135         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
10136         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
10137         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
10138         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
10139         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
10140         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
10141         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
10142         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
10143         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
10144         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
10145         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
10146         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
10147         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
10148         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
10149         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
10150         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
10151         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
10152         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10153         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
10154         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
10155         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10156         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
10157         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
10158         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
10159         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
10160         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
10161         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
10162         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
10163         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
10164         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10165         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
10166         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
10167         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
10168         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
10169         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
10170         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
10171         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
10172         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
10173         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
10174         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
10175         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
10176         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
10177         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
10178         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
10179         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
10180         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
10181         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
10182         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
10183         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
10184         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
10185         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
10186         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
10187         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
10188         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
10189         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
10190         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
10191         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
10192         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
10193         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
10194         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
10195         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
10196         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
10197         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
10198         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
10199         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
10200         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
10201         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
10202         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
10203         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
10204         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
10205         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
10206         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
10207         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
10208         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
10209         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
10210         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
10211         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
10212         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
10213         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
10214         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
10215         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
10216         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
10217         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
10218         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
10219         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
10220         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
10221         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
10222         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
10223         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
10224         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
10225         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
10226         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
10227         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
10228         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
10229         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
10230         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
10231         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
10232         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
10233         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
10234         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
10235         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
10236         (bdesc_special_args):
10237         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
10238         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
10239         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
10240         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
10241         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
10242         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
10243         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
10244         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
10245         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
10246         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
10247         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
10248         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
10249         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
10250         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
10251         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
10252         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
10253         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
10254         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
10255         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
10256         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
10257         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
10258         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
10259         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
10260         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
10261         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
10262         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
10263         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
10264         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
10265         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
10266         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
10267         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
10268         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
10269         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
10270         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
10271         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
10272         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
10273         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
10274         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
10275         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
10276         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
10277         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
10278         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
10279         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
10280         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
10281         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
10282         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
10283         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
10284         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
10285         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
10286         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
10287         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
10288         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
10289         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
10290         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
10291         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
10292         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
10293         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
10294         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
10295         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
10296         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
10297         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
10298         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
10299         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
10300         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
10301         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
10302         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
10303         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
10304         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
10305         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
10306         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
10307         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
10308         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
10309         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
10310         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
10311         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
10312         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
10313         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
10314         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
10315         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
10316         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
10317         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
10318         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
10319         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
10320         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
10321         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
10322         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
10323         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
10324         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
10325         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
10326         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
10327         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
10328         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
10329         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
10330         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
10331         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
10332         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
10333         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
10334         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
10335         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
10336         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
10337         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
10338         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
10339         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
10340         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
10341         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
10342         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
10343         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
10344         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
10345         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
10346         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
10347         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
10348         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
10349         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
10350         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
10351         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
10352         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
10353         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
10354         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
10355         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
10356         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
10357         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
10358         __builtin_ia32_reducesd, __builtin_ia32_reducess,
10359         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
10360         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
10361         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
10362         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
10363         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
10364         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
10365         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
10366         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
10367         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
10368         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
10369         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
10370         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
10371         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
10372         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
10373         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
10374         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
10375         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
10376         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
10377         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
10378         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
10379         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
10380         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
10381         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
10382         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
10383         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
10384         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
10385         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
10386         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
10387         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
10388         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
10389         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
10390         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
10391         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
10392         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
10393         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
10394         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
10395         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
10396         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
10397         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
10398         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
10399         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
10400         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
10401         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
10402         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
10403         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
10404         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
10405         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
10406         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
10407         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
10408         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
10409         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
10410         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
10411         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
10412         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
10413         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
10414         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
10415         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
10416         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
10417         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
10418         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
10419         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
10420         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
10421         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
10422         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
10423         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
10424         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
10425         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
10426         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
10427         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
10428         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
10429         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
10430         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
10431         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
10432         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
10433         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
10434         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
10435         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
10436         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
10437         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
10438         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
10439         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
10440         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
10441         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
10442         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
10443         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
10444         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
10445         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
10446         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
10447         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
10448         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
10449         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
10450         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
10451         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
10452         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
10453         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
10454         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
10455         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
10456         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
10457         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
10458         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
10459         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
10460         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
10461         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
10462         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
10463         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
10464         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
10465         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
10466         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
10467         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
10468         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
10469         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
10470         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
10471         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
10472         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
10473         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
10474         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
10475         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
10476         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
10477         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
10478         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
10479         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
10480         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
10481         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
10482         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
10483         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
10484         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
10485         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
10486         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
10487         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
10488         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
10489         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
10490         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
10491         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
10492         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
10493         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
10494         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
10495         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
10496         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
10497         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
10498         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
10499         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
10500         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
10501         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
10502         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
10503         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
10504         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
10505         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
10506         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
10507         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
10508         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
10509         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
10510         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
10511         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
10512         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
10513         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
10514         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
10515         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
10516         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
10517         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
10518         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
10519         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
10520         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
10521         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
10522         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
10523         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
10524         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
10525         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
10526         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
10527         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
10528         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
10529         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
10530         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
10531         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
10532         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
10533         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
10534         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
10535         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
10536         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
10537         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
10538         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
10539         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
10540         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
10541         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
10542         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
10543         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
10544         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
10545         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
10546         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
10547         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
10548         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
10549         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
10550         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
10551         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
10552         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
10553         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
10554         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
10555         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
10556         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
10557         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
10558         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
10559         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
10560         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
10561         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
10562         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
10563         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
10564         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
10565         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
10566         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
10567         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
10568         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
10569         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
10570         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
10571         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
10572         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
10573         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
10574         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
10575         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
10576         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
10577         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
10578         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
10579         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
10580         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
10581         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
10582         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
10583         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
10584         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
10585         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
10586         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
10587         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
10588         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
10589         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
10590         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
10591         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
10592         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
10593         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
10594         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
10595         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
10596         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
10597         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
10598         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
10599         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
10600         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
10601         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
10602         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
10603         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
10604         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
10605         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
10606         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
10607         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
10608         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
10609         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
10610         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
10611         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
10612         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
10613         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
10614         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
10615         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
10616         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
10617         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
10618         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
10619         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
10620         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
10621         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
10622         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
10623         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
10624         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
10625         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
10626         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
10627         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
10628         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
10629         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
10630         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
10631         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
10632         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
10633         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
10634         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
10635         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
10636         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
10637         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
10638         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
10639         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
10640         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
10641         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
10642         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
10643         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
10644         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
10645         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
10646         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
10647         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
10648         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
10649         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
10650         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
10651         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
10652         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
10653         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
10654         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
10655         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
10656         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
10657         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
10658         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
10659         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
10660         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
10661         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
10662         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
10663         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
10664         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
10665         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
10666         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
10667         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
10668         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
10669         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
10670         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
10671         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
10672         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
10673         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
10674         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
10675         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
10676         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
10677         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
10678         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
10679         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
10680         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
10681         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
10682         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
10683         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
10684         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
10685         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
10686         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
10687         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
10688         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
10689         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
10690         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
10691         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
10692         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
10693         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
10694         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
10695         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
10696         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
10697         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
10698         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
10699         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
10700         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
10701         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
10702         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
10703         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
10704         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
10705         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
10706         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
10707         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
10708         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
10709         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
10710         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
10711         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
10712         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
10713         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
10714         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
10715         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
10716         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
10717         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
10718         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
10719         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
10720         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
10721         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
10722         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
10723         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
10724         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
10725         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
10726         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
10727         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
10728         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
10729         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
10730         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
10731         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
10732         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
10733         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
10734         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
10735         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
10736         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
10737         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
10738         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
10739         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
10740         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
10741         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
10742         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
10743         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
10744         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
10745         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
10746         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
10747         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
10748         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
10749         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
10750         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
10751         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
10752         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
10753         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
10754         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
10755         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
10756         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
10757         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
10758         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
10759         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
10760         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
10761         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
10762         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
10763         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
10764         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
10765         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
10766         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
10767         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
10768         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
10769         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
10770         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
10771         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
10772         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
10773         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
10774         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
10775         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
10776         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
10777         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
10778         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
10779         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
10780         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
10781         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
10782         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
10783         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
10784         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
10785         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
10786         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
10787         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
10788         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
10789         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
10790         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
10791         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
10792         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
10793         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
10794         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
10795         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
10796         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
10797         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
10798         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
10799         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
10800         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
10801         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
10802         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
10803         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
10804         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
10805         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
10806         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
10807         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
10808         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
10809         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
10810         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
10811         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
10812         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
10813         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
10814         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
10815         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
10816         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
10817         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
10818         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
10819         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
10820         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
10821         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
10822         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
10823         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
10824         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
10825         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
10826         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
10827         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
10828         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
10829         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
10830         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
10831         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
10832         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
10833         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
10834         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
10835         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
10836         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
10837         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
10838         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
10839         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
10840         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
10841         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
10842         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
10843         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
10844         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
10845         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
10846
10847 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
10848
10849         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
10850         type for the left shift in CASE_CONVERT case.
10851
10852 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10853
10854         * asan.h (asan_intercepted_p): New function.
10855         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
10856         hash value construction.  Call iterative_hash_expr instead of explicit
10857         hash building.
10858         (asan_mem_ref_hasher::equal): Change condition.
10859         (has_mem_ref_been_instrumented): Likewise.
10860         (update_mem_ref_hash_table): Likewise.
10861         (maybe_update_mem_ref_hash_table): New function.
10862         (instrument_strlen_call): Removed.
10863         (get_mem_refs_of_builtin_call): Handle new parameter.
10864         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
10865         of instrument_mem_region_access if intercepted_p is true.
10866         (instrument_mem_region_access): Instrument only base with len instead of
10867         base and end with 1.
10868         (build_check_stmt): Remove start_instrumented and end_instrumented
10869         parameters.
10870         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
10871         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
10872         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
10873         * builtins.c (expand_builtin): Include asan.h.  Don't expand string/memory
10874         builtin functions that have interceptors if ASan is enabled.
10875
10876 2014-10-28  Richard Biener  <rguenther@suse.de>
10877
10878         PR middle-end/63665
10879         * fold-const.c (fold_comparison): Properly guard simplifying
10880         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
10881
10882 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
10883
10884         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
10885         * fold-const.c (const_binop): Likewise.
10886         * cfgexpand.c (expand_debug_expr): Likewise.
10887         * tree-inline.c (estimate_operator_cost): Likewise.
10888         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
10889         * optabs.c (optab_for_tree_code): Likewise.
10890         (expand_vec_shift_expr): Likewise, update comment.
10891         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
10892         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
10893         * optabs.def: Remove vec_shl_optab.
10894         * doc/md.texi: Remove references to vec_shr_m.
10895
10896 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
10897
10898         * asan.c (report_error_func): Add noabort path.
10899         (check_func): Ditto.  Formatting.
10900         (asan_expand_check_ifn): Handle noabort path.
10901         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
10902         to default value.
10903         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
10904         * opts.c (finish_options): Reword comment.
10905         * sanitizer.def: Add noabort ASan builtins.
10906
10907 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
10908
10909         * asan.c (set_asan_shadow_offset): New function.
10910         (asan_shadow_offset): Likewise.
10911         (asan_emit_stack_protection): Call asan_shadow_offset.
10912         (build_shadow_mem_access): Likewise.
10913         * asan.h (set_asan_shadow_offset): Declare.
10914         * common.opt (fasan-shadow-offset): New option.
10915         (frandom-seed): Fixed parameter name.
10916         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
10917         (frandom-seed): Fixed parameter name.
10918         * opts-global.c (handle_common_deferred_options): Handle
10919         -fasan-shadow-offset.
10920         * opts.c (common_handle_option): Likewise.
10921
10922 2014-10-27  Jiong Wang <jiong.wang@arm.com>
10923
10924         PR target/63442
10925         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
10926
10927 2014-10-27  DJ Delorie  <dj@redhat.com>
10928
10929         * tree.c (build_common_tree_nodes): Don't even store the
10930         __int128 types if they're not supported.
10931
10932 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10933
10934         * config/i386/i386.c (ix86_loop_memcount): Delete.
10935         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
10936
10937 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10938
10939         * config/i386/i386.c (find_constant_1): Delete.
10940         (find_constant): Use FOR_EACH_SUBRTX.
10941
10942 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10943
10944         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
10945         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
10946
10947 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10948
10949         * config/i386/i386.c: Include rtl-iter.h
10950         (ix86_check_avx256_register): Take a const_rtx and return a bool.
10951         (ix86_check_avx256_stores): Update call accordingly.
10952         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
10953         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
10954
10955 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10956
10957         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
10958         Take an rtx and return a bool.
10959         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
10960         Use FOR_EACH_SUBRTX_VAR.
10961         * config/alpha/predicates.md (some_small_symbolic_operand): Update
10962         accordingly.
10963
10964 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10965
10966         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
10967         a bool.
10968         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
10969         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
10970
10971 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10972
10973         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
10974         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
10975
10976 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10977
10978         * config/alpha/alpha.c: Include rtl-iter.h.
10979         (split_small_symbolic_operand_1): Delete.
10980         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
10981
10982 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10983
10984         * config/s390/s390.c: Include rtl-iter.h.
10985         (check_dpu): Delete.
10986         (s390_loop_unroll_adjust): Only iterate over patterns.
10987         Use FOR_EACH_SUBRTX.
10988
10989 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10990
10991         * config/spu/spu.c: Include rtl-iter.h
10992         (ea_symbol_ref): Replace with...
10993         (ea_symbol_ref_p): ...this new function.
10994         (spu_legitimate_address_p): Update call accordingly.
10995         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
10996
10997 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
10998             Tom Tromey  <tromey@redhat.com>
10999
11000         * aclocal.m4, configure: Rebuild.
11001         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
11002         * configure.ac: Use GCC_ENABLE_PLUGINS.
11003         * stor-layout.c (finish_bitfield_layout): Now public.  Change
11004         argument type to 'tree'.
11005         (finish_record_layout): Update.
11006         * stor-layout.h (finish_bitfield_layout): Declare.
11007
11008 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11009
11010         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
11011         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
11012         Restore, enable for bigendian, update to use __builtin..._scal...
11013
11014 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11015
11016         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
11017         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
11018         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
11019         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
11020
11021         * config/aarch64/aarch64-simd.md
11022         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
11023         (reduc_<maxmin_uns>_internal<mode>): ...this.
11024         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
11025         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
11026
11027         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
11028         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
11029         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
11030
11031         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
11032         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
11033         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
11034         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
11035         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
11036         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
11037         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
11038         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
11039
11040 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11041
11042         * config/aarch64/aarch64-simd-builtins.def
11043         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
11044         Remove.
11045         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
11046
11047         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
11048         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
11049
11050         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
11051         (aarch64_reduc_plus_internal<mode>): ...this.
11052
11053         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
11054         (aarch64_reduc_plus_internalv2si): ...this.
11055
11056         (reduc_splus_<mode>/V2F): Rename to...
11057         (aarch64_reduc_plus_internal<mode>): ...this.
11058
11059         * config/aarch64/iterators.md
11060         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
11061         (UNSPEC_ADDV): New.
11062         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
11063
11064         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
11065         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
11066         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
11067         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
11068         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
11069
11070 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11071
11072         PR tree-optimization/61114
11073         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
11074         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
11075
11076         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
11077         back to old reduc_... + BIT_FIELD_REF only if not.
11078
11079         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
11080         return the reduce-to-scalar (reduc_..._scal) optab.
11081         (scalar_reduc_to_vector): New.
11082
11083         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
11084         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
11085         New.
11086
11087         * optabs.h (scalar_reduc_to_vector): Declare.
11088
11089         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
11090         to either scalar or vector.
11091
11092 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11093
11094         PR tree-optimization/61114
11095         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
11096         extract_bit_field around optab result.
11097
11098         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
11099         scalar not vector.
11100
11101         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
11102         for REDUC_{MIN,MAX,PLUS}_EXPR.
11103
11104         * tree-vect-loop.c (vect_analyze_loop): Update comment.
11105         (vect_create_epilog_for_reduction): For direct vector reduction, use
11106         result of tree code directly without extract_bit_field.
11107
11108         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
11109         comment.
11110
11111 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
11112
11113         * basic-block.h: Remove all includes.
11114         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
11115         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
11116         * Makefile.in (GTFILES): Add cfg.h to list.
11117         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
11118         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
11119         * genconditions.c (write_header): Add predict.h and basic-block.h to
11120         lits of includes.
11121         * genemit.c (main): Ditto.
11122         * genpreds.c (write_insn_preds_c): Ditto.
11123         * genrecog.c (write_header): Ditto.
11124         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
11125         to list of includes.
11126         * alias.c: Adjust include files.
11127         * asan.c: Ditto.
11128         * auto-inc-dec.c: Ditto.
11129         * auto-profile.c: Ditto.
11130         * bb-reorder.c: Ditto.
11131         * bt-load.c: Ditto.
11132         * builtins.c: Ditto.
11133         * caller-save.c: Ditto.
11134         * calls.c: Ditto.
11135         * cfg.c: Ditto.
11136         * cfganal.c: Ditto.
11137         * cfgbuild.c: Ditto.
11138         * cfgcleanup.c: Ditto.
11139         * cfgexpand.c: Ditto.
11140         * cfghooks.c: Ditto.
11141         * cfgloop.c: Ditto.
11142         * cfgloopanal.c: Ditto.
11143         * cfgloopmanip.c: Ditto.
11144         * cfgrtl.c: Ditto.
11145         * cgraphbuild.c: Ditto.
11146         * cgraphclones.c: Ditto.
11147         * cgraphunit.c: Ditto.
11148         * combine-stack-adj.c: Ditto.
11149         * combine.c: Ditto.
11150         * compare-elim.c: Ditto.
11151         * coverage.c: Ditto.
11152         * cprop.c: Ditto.
11153         * cse.c: Ditto.
11154         * cselib.c: Ditto.
11155         * data-streamer-in.c: Ditto.
11156         * data-streamer-out.c: Ditto.
11157         * data-streamer.c: Ditto.
11158         * dce.c: Ditto.
11159         * ddg.c: Ditto.
11160         * ddg.h: Ditto.
11161         * df-core.c: Ditto.
11162         * df-problems.c: Ditto.
11163         * df-scan.c: Ditto.
11164         * df.h: Ditto.
11165         * dojump.c: Ditto.
11166         * dominance.c: Ditto.
11167         * domwalk.c: Ditto.
11168         * dse.c: Ditto.
11169         * dwarf2cfi.c: Ditto.
11170         * emit-rtl.c: Ditto.
11171         * et-forest.c: Ditto.
11172         * except.c: Ditto.
11173         * expmed.c: Ditto.
11174         * expr.c: Ditto.
11175         * final.c: Ditto.
11176         * fold-const.c: Ditto.
11177         * function.c: Ditto.
11178         * fwprop.c: Ditto.
11179         * gcc-plugin.h: Ditto.
11180         * gcse.c: Ditto.
11181         * generic-match-head.c: Ditto.
11182         * ggc-page.c: Ditto.
11183         * gimple-builder.c: Ditto.
11184         * gimple-expr.c: Ditto.
11185         * gimple-fold.c: Ditto.
11186         * gimple-iterator.c: Ditto.
11187         * gimple-low.c: Ditto.
11188         * gimple-match-head.c: Ditto.
11189         * gimple-pretty-print.c: Ditto.
11190         * gimple-ssa-isolate-paths.c: Ditto.
11191         * gimple-ssa-strength-reduction.c: Ditto.
11192         * gimple-streamer-in.c: Ditto.
11193         * gimple-streamer-out.c: Ditto.
11194         * gimple-streamer.h: Ditto.
11195         * gimple-walk.c: Ditto.
11196         * gimple.c: Ditto.
11197         * gimplify-me.c: Ditto.
11198         * gimplify.c: Ditto.
11199         * graph.c: Ditto.
11200         * graphite-blocking.c: Ditto.
11201         * graphite-clast-to-gimple.c: Ditto.
11202         * graphite-dependences.c: Ditto.
11203         * graphite-interchange.c: Ditto.
11204         * graphite-isl-ast-to-gimple.c: Ditto.
11205         * graphite-optimize-isl.c: Ditto.
11206         * graphite-poly.c: Ditto.
11207         * graphite-scop-detection.c: Ditto.
11208         * graphite-sese-to-poly.c: Ditto.
11209         * graphite.c: Ditto.
11210         * haifa-sched.c: Ditto.
11211         * hw-doloop.c: Ditto.
11212         * ifcvt.c: Ditto.
11213         * init-regs.c: Ditto.
11214         * internal-fn.c: Ditto.
11215         * ipa-cp.c: Ditto.
11216         * ipa-devirt.c: Ditto.
11217         * ipa-icf-gimple.c: Ditto.
11218         * ipa-icf.c: Ditto.
11219         * ipa-inline-analysis.c: Ditto.
11220         * ipa-inline.c: Ditto.
11221         * ipa-polymorphic-call.c: Ditto.
11222         * ipa-profile.c: Ditto.
11223         * ipa-prop.c: Ditto.
11224         * ipa-pure-const.c: Ditto.
11225         * ipa-reference.c: Ditto.
11226         * ipa-split.c: Ditto.
11227         * ipa-utils.c: Ditto.
11228         * ipa.c: Ditto.
11229         * ira-build.c: Ditto.
11230         * ira-color.c: Ditto.
11231         * ira-conflicts.c: Ditto.
11232         * ira-costs.c: Ditto.
11233         * ira-emit.c: Ditto.
11234         * ira-lives.c: Ditto.
11235         * ira.c: Ditto.
11236         * jump.c: Ditto.
11237         * lcm.c: Ditto.
11238         * loop-doloop.c: Ditto.
11239         * loop-init.c: Ditto.
11240         * loop-invariant.c: Ditto.
11241         * loop-iv.c: Ditto.
11242         * loop-unroll.c: Ditto.
11243         * lower-subreg.c: Ditto.
11244         * lra-assigns.c: Ditto.
11245         * lra-coalesce.c: Ditto.
11246         * lra-constraints.c: Ditto.
11247         * lra-eliminations.c: Ditto.
11248         * lra-lives.c: Ditto.
11249         * lra-spills.c: Ditto.
11250         * lra.c: Ditto.
11251         * lto-cgraph.c: Ditto.
11252         * lto-compress.c: Ditto.
11253         * lto-opts.c: Ditto.
11254         * lto-section-in.c: Ditto.
11255         * lto-section-out.c: Ditto.
11256         * lto-streamer-in.c: Ditto.
11257         * lto-streamer-out.c: Ditto.
11258         * lto-streamer.c: Ditto.
11259         * mcf.c: Ditto.
11260         * mode-switching.c: Ditto.
11261         * modulo-sched.c: Ditto.
11262         * omp-low.c: Ditto.
11263         * optabs.c: Ditto.
11264         * opts-global.c: Ditto.
11265         * passes.c: Ditto.
11266         * postreload-gcse.c: Ditto.
11267         * postreload.c: Ditto.
11268         * predict.c: Ditto.
11269         * print-rtl.c: Ditto.
11270         * profile.c: Ditto.
11271         * recog.c: Ditto.
11272         * ree.c: Ditto.
11273         * reg-stack.c: Ditto.
11274         * regcprop.c: Ditto.
11275         * regcprop.h: Ditto.
11276         * reginfo.c: Ditto.
11277         * regrename.c: Ditto.
11278         * regstat.c: Ditto.
11279         * reload.c: Ditto.
11280         * reload1.c: Ditto.
11281         * reorg.c: Ditto.
11282         * resource.c: Ditto.
11283         * rtlanal.c: Ditto.
11284         * sched-deps.c: Ditto.
11285         * sched-ebb.c: Ditto.
11286         * sched-int.h: Ditto.
11287         * sched-rgn.c: Ditto.
11288         * sched-vis.c: Ditto.
11289         * sel-sched-dump.c: Ditto.
11290         * sel-sched-ir.c: Ditto.
11291         * sel-sched-ir.h: Ditto.
11292         * sel-sched.c: Ditto.
11293         * sese.c: Ditto.
11294         * shrink-wrap.c: Ditto.
11295         * stack-ptr-mod.c: Ditto.
11296         * stmt.c: Ditto.
11297         * store-motion.c: Ditto.
11298         * symtab.c: Ditto.
11299         * toplev.c: Ditto.
11300         * tracer.c: Ditto.
11301         * trans-mem.c: Ditto.
11302         * tree-affine.c: Ditto.
11303         * tree-call-cdce.c: Ditto.
11304         * tree-cfg.c: Ditto.
11305         * tree-cfgcleanup.c: Ditto.
11306         * tree-chrec.c: Ditto.
11307         * tree-complex.c: Ditto.
11308         * tree-data-ref.c: Ditto.
11309         * tree-dfa.c: Ditto.
11310         * tree-eh.c: Ditto.
11311         * tree-emutls.c: Ditto.
11312         * tree-if-conv.c: Ditto.
11313         * tree-inline.c: Ditto.
11314         * tree-into-ssa.c: Ditto.
11315         * tree-loop-distribution.c: Ditto.
11316         * tree-nested.c: Ditto.
11317         * tree-nrv.c: Ditto.
11318         * tree-object-size.c: Ditto.
11319         * tree-outof-ssa.c: Ditto.
11320         * tree-parloops.c: Ditto.
11321         * tree-phinodes.c: Ditto.
11322         * tree-predcom.c: Ditto.
11323         * tree-pretty-print.c: Ditto.
11324         * tree-profile.c: Ditto.
11325         * tree-scalar-evolution.c: Ditto.
11326         * tree-sra.c: Ditto.
11327         * tree-ssa-address.c: Ditto.
11328         * tree-ssa-alias.c: Ditto.
11329         * tree-ssa-ccp.c: Ditto.
11330         * tree-ssa-coalesce.c: Ditto.
11331         * tree-ssa-copy.c: Ditto.
11332         * tree-ssa-copyrename.c: Ditto.
11333         * tree-ssa-dce.c: Ditto.
11334         * tree-ssa-dom.c: Ditto.
11335         * tree-ssa-dse.c: Ditto.
11336         * tree-ssa-forwprop.c: Ditto.
11337         * tree-ssa-ifcombine.c: Ditto.
11338         * tree-ssa-live.c: Ditto.
11339         * tree-ssa-loop-ch.c: Ditto.
11340         * tree-ssa-loop-im.c: Ditto.
11341         * tree-ssa-loop-ivcanon.c: Ditto.
11342         * tree-ssa-loop-ivopts.c: Ditto.
11343         * tree-ssa-loop-manip.c: Ditto.
11344         * tree-ssa-loop-niter.c: Ditto.
11345         * tree-ssa-loop-prefetch.c: Ditto.
11346         * tree-ssa-loop-unswitch.c: Ditto.
11347         * tree-ssa-loop.c: Ditto.
11348         * tree-ssa-math-opts.c: Ditto.
11349         * tree-ssa-operands.c: Ditto.
11350         * tree-ssa-phiopt.c: Ditto.
11351         * tree-ssa-phiprop.c: Ditto.
11352         * tree-ssa-pre.c: Ditto.
11353         * tree-ssa-propagate.c: Ditto.
11354         * tree-ssa-reassoc.c: Ditto.
11355         * tree-ssa-sccvn.c: Ditto.
11356         * tree-ssa-sink.c: Ditto.
11357         * tree-ssa-strlen.c: Ditto.
11358         * tree-ssa-structalias.c: Ditto.
11359         * tree-ssa-tail-merge.c: Ditto.
11360         * tree-ssa-ter.c: Ditto.
11361         * tree-ssa-threadedge.c: Ditto.
11362         * tree-ssa-threadupdate.c: Ditto.
11363         * tree-ssa-uncprop.c: Ditto.
11364         * tree-ssa-uninit.c: Ditto.
11365         * tree-ssa.c: Ditto.
11366         * tree-ssanames.c: Ditto.
11367         * tree-stdarg.c: Ditto.
11368         * tree-streamer-in.c: Ditto.
11369         * tree-streamer-out.c: Ditto.
11370         * tree-streamer.c: Ditto.
11371         * tree-switch-conversion.c: Ditto.
11372         * tree-tailcall.c: Ditto.
11373         * tree-vect-data-refs.c: Ditto.
11374         * tree-vect-generic.c: Ditto.
11375         * tree-vect-loop-manip.c: Ditto.
11376         * tree-vect-loop.c: Ditto.
11377         * tree-vect-patterns.c: Ditto.
11378         * tree-vect-slp.c: Ditto.
11379         * tree-vect-stmts.c: Ditto.
11380         * tree-vectorizer.c: Ditto.
11381         * tree-vrp.c: Ditto.
11382         * tree.c: Ditto.
11383         * tsan.c: Ditto.
11384         * ubsan.c: Ditto.
11385         * valtrack.c: Ditto.
11386         * valtrack.h: Ditto.
11387         * value-prof.c: Ditto.
11388         * var-tracking.c: Ditto.
11389         * varasm.c: Ditto.
11390         * varpool.c: Ditto.
11391         * vtable-verify.c: Ditto.
11392         * web.c: Ditto.
11393         * config/aarch64/aarch64-builtins.c: Ditto.
11394         * config/aarch64/aarch64.c: Ditto.
11395         * config/alpha/alpha.c: Ditto.
11396         * config/arc/arc.c: Ditto.
11397         * config/arm/arm.c: Ditto.
11398         * config/avr/avr.c: Ditto.
11399         * config/bfin/bfin.c: Ditto.
11400         * config/c6x/c6x.c: Ditto.
11401         * config/cr16/cr16.c: Ditto.
11402         * config/cris/cris.c: Ditto.
11403         * config/darwin-c.c: Ditto.
11404         * config/darwin.c: Ditto.
11405         * config/epiphany/epiphany.c: Ditto.
11406         * config/epiphany/mode-switch-use.c: Ditto.
11407         * config/epiphany/resolve-sw-modes.c: Ditto.
11408         * config/fr30/fr30.c: Ditto.
11409         * config/frv/frv.c: Ditto.
11410         * config/h8300/h8300.c: Ditto.
11411         * config/i386/i386.c: Ditto.
11412         * config/i386/winnt.c: Ditto.
11413         * config/ia64/ia64.c: Ditto.
11414         * config/iq2000/iq2000.c: Ditto.
11415         * config/lm32/lm32.c: Ditto.
11416         * config/m32c/m32c.c: Ditto.
11417         * config/m32r/m32r.c: Ditto.
11418         * config/m68k/m68k.c: Ditto.
11419         * config/mcore/mcore.c: Ditto.
11420         * config/mep/mep.c: Ditto.
11421         * config/microblaze/microblaze.c: Ditto.
11422         * config/mips/mips.c: Ditto.
11423         * config/mmix/mmix.c: Ditto.
11424         * config/mn10300/mn10300.c: Ditto.
11425         * config/moxie/moxie.c: Ditto.
11426         * config/msp430/msp430.c: Ditto.
11427         * config/nds32/nds32-cost.c: Ditto.
11428         * config/nds32/nds32-fp-as-gp.c: Ditto.
11429         * config/nds32/nds32-intrinsic.c: Ditto.
11430         * config/nds32/nds32-isr.c: Ditto.
11431         * config/nds32/nds32-md-auxiliary.c: Ditto.
11432         * config/nds32/nds32-memory-manipulation.c: Ditto.
11433         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
11434         * config/nds32/nds32-predicates.c: Ditto.
11435         * config/nds32/nds32.c: Ditto.
11436         * config/nios2/nios2.c: Ditto.
11437         * config/pa/pa.c: Ditto.
11438         * config/pdp11/pdp11.c: Ditto.
11439         * config/rl78/rl78.c: Ditto.
11440         * config/rs6000/rs6000.c: Ditto.
11441         * config/rx/rx.c: Ditto.
11442         * config/s390/s390.c: Ditto.
11443         * config/sh/sh-mem.cc: Ditto.
11444         * config/sh/sh.c: Ditto.
11445         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
11446         * config/sh/sh_treg_combine.cc: Ditto.
11447         * config/sparc/sparc.c: Ditto.
11448         * config/spu/spu.c: Ditto.
11449         * config/stormy16/stormy16.c: Ditto.
11450         * config/tilegx/tilegx.c: Ditto.
11451         * config/tilepro/tilepro.c: Ditto.
11452         * config/v850/v850.c: Ditto.
11453         * config/vax/vax.c: Ditto.
11454         * config/xtensa/xtensa.c: Ditto.
11455
11456 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11457
11458         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
11459         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
11460         Remove using preprocessor directives.
11461
11462 2014-10-27  Richard Biener  <rguenther@suse.de>
11463
11464         * match.pd (0 % X): Properly use the iterator iterating over
11465         all modulo operators.
11466         (X % 1): Likewise.
11467
11468 2014-10-27  Richard Biener  <rguenther@suse.de>
11469
11470         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
11471         (lattice): New global.
11472         (fwprop_ssa_val): New function.
11473         (fold_all_stmts): Likewise.
11474         (pass_forwprop::execute): Finally fold all stmts.
11475
11476 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11477
11478         PR c++/53061
11479         * doc/invoke.texi (fmessage-length): Update text to match reality.
11480
11481 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11482
11483         * config/microblaze/microblaze.c: Include rtl-iter.h.
11484         (microblaze_tls_referenced_p_1): Delete.
11485         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
11486
11487 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11488
11489         * config/mips/mips.c (mips_at_reg_p): Delete.
11490         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
11491
11492 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11493
11494         * config/mips/mips.c (mips_record_lo_sum): Replace with...
11495         (mips_record_lo_sums): ...this new function.
11496         (mips_reorg_process_insns): Update accordingly.
11497
11498 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11499
11500         * config/mips/mips.c (mips_sim_insn): Update comment.
11501         (mips_sim_wait_regs_2): Delete.
11502         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
11503
11504 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11505
11506         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
11507         and return a bool.  Iterate over all subrtxes here.
11508         (r10k_needs_protection_p): Update accordingly.
11509
11510 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11511
11512         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
11513         rather than an rtx pointer.  Change type of insn from "void *"
11514         to its real type.  Return bool rather than int.  Iterate over
11515         all subrtxes here.
11516         (r10k_needs_protection_p_store): Update accordingly.
11517         (r10k_needs_protection_p): Likewise.
11518
11519 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11520
11521         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
11522         (mips16_rewrite_pool_refs): Take the insn and constant pool as
11523         parameters.  Iterate over the instruction's pattern and return void.
11524         (mips16_lay_out_constants): Update accordingly.
11525
11526 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11527
11528         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
11529         (mips_refers_to_kernel_reg_p): ...this new function.
11530         (mips_expand_prologue): Update accordingly.
11531
11532 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11533
11534         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
11535         as a parameter instead of the containing MEM.  Iterate over all
11536         subrtxes.  Don't return a value.
11537         (mips_rewrite_small_data): Update call accordingly.
11538
11539 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11540
11541         * config/mips/mips.c: Include rtl-iter.h.
11542         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
11543         Take the context as a parameter instead of the containing MEM.
11544         Iterate over all subrtxes.
11545         (mips_small_data_pattern_p): Update call accordingly.
11546
11547 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11548
11549         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
11550         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
11551
11552 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11553
11554         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
11555         return a bool.  Replace "void *" with specific type.  Iterate
11556         over all subrtxes.
11557         (mep_store_data_bypass_1): Update calls accordingly.
11558
11559 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11560
11561         * config/mep/mep.c: Include rtl-iter.h.
11562         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
11563         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
11564
11565 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11566
11567         * config/xtensa/xtensa.c: Include rtl-iter.h.
11568         (xtensa_tls_referenced_p_1): Delete.
11569         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
11570
11571 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11572
11573         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
11574         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
11575
11576 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11577
11578         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
11579         rtx as argument and return the number of changes.
11580         * config/sh/sh.c: Include rtl-iter.h.
11581         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
11582         over all subrtxes.  Return the number of changes made.
11583         * config/sh/sh.md: Update caller accordingly.
11584
11585 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11586
11587         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
11588         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
11589
11590 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
11591
11592         * config/m68k/m68k.c: Include rtl-iter.h.
11593         (m68k_final_prescan_insn_1): Delete.
11594         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
11595
11596 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
11597
11598         PR tree-optimization/63641
11599         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
11600         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
11601
11602 2014-10-25  Alan Modra  <amodra@gmail.com>
11603
11604         PR rtl-optimization/63615
11605         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
11606         decomposing PLUS or MINUS if operands are not placed adjacent
11607         in the "ops" array.
11608
11609 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
11610
11611         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
11612         not allow e500 double in registers not satisyfing
11613         SPE_SIMD_REGNO_P.
11614
11615 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
11616
11617         * dwarf2out.c (declare_in_namespace): Only emit external
11618         declarations in the local scope once.
11619
11620 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
11621
11622         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
11623
11624 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
11625
11626         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
11627         update uses to use new macro arguments.
11628         (__LD3_LANE_FUNC): Likewise.
11629         (__LD4_LANE_FUNC): Likewise.
11630
11631 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
11632
11633         * config/aarch64/aarch64-builtins.c
11634         (aarch64_types_loadstruct_lane_qualifiers): Define.
11635         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
11636         ld4_lane): New builtins.
11637         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
11638         New pattern.
11639         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
11640         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
11641         (aarch64_ld2_lane<mode>): New expand.
11642         (aarch64_ld3_lane<mode>): Likewise.
11643         (aarch64_ld4_lane<mode>): Likewise.
11644         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
11645         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
11646
11647 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
11648
11649         * avr-protos.h (avr_out_sign_extend): New.
11650         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
11651         (avr_out_sign_extend): New function.
11652         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
11653         (extendhisi2, extendpsisi2): Use it.
11654         (adjust_len) [sext]: New.
11655
11656 2014-10-24  Martin Liska  <mliska@suse.cz>
11657
11658         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
11659         added.
11660
11661 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11662
11663         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
11664         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
11665         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
11666         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
11667
11668 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11669
11670         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
11671         do while (0).
11672         * config/aarch64/aarch64.c (is_mem_p): Delete.
11673         (is_memory_op): Rename to...
11674         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
11675         (dep_between_memop_and_curr): Assert that the input is a SET.
11676         (aarch64_madd_needs_nop): Add comment.  Do not call
11677         dep_between_memop_and_curr on NULL body.
11678         (aarch64_final_prescan_insn): Add comment.
11679         Include rtl-iter.h.
11680
11681 2014-10-24  Richard Biener  <rguenther@suse.de>
11682
11683         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
11684         to genmatch BUILD_LIBS instead.
11685
11686 2014-10-24  Richard Biener  <rguenther@suse.de>
11687
11688         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
11689         and build_call_expr_loc.
11690         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
11691         non_lvalue_loc to build it for GENERIC.
11692         (decision_tree::gen_generic): Add location argument to
11693         generic_simplify prototype.
11694         (capture_info): New class.
11695         (capture_info::capture_info): New constructor.
11696         (capture_info::walk_match): New method.
11697         (capture_info::walk_result): New method.
11698         (capture_info::walk_c_expr): New method.
11699         (dt_simplify::gen): Handle preserving side-effects for
11700         GENERIC code generation.
11701         (decision_tree::gen_generic): Do not reject operands
11702         with TREE_SIDE_EFFECTS.
11703         * generic-match.h: New file.
11704         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
11705         * match.pd: Add some constant folding patterns from fold-const.c.
11706         * fold-const.c: Include generic-match.h.
11707         (fold_unary_loc): Dispatch to generic_simplify.
11708         (fold_ternary_loc): Likewise.
11709         (fold_binary_loc): Likewise.  Remove patterns now implemented
11710         by generic_simplify.
11711         * gimple-fold.c (replace_stmt_with_simplification): New function.
11712         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
11713         (no_follow_ssa_edges): New function.
11714         (fold_stmt): New overload with valueization hook.  Use
11715         no_follow_ssa_edges for the overload without hook.
11716         (fold_stmt_inplace): Likewise.
11717         * gimple-fold.h (no_follow_ssa_edges): Declare.
11718
11719 2014-10-24  Felix Yang  <felix.yang@huawei.com>
11720         Jiji Jiang  <jiangjiji@huawei.com>
11721
11722         PR target/63173
11723         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
11724         (__LD3R_FUNC): Ditto.
11725         (__LD4R_FUNC): Ditto.
11726         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
11727          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
11728          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
11729          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
11730          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
11731          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
11732         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
11733          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
11734          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
11735          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
11736          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
11737          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
11738         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
11739          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
11740          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
11741          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
11742          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
11743          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
11744         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
11745         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
11746         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
11747         builtins.
11748         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
11749         (aarch64_simd_ld3r<mode>): Likewise.
11750         (aarch64_simd_ld4r<mode>): Likewise.
11751         (aarch64_ld2r<mode>): New expand.
11752         (aarch64_ld3r<mode>): Likewise.
11753         (aarch64_ld4r<mode>): Likewise.
11754
11755 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
11756
11757         * rtlanal.c (get_base_term): Handle SCRATCH.
11758
11759 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
11760
11761         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
11762         register pressure.
11763
11764 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
11765
11766         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
11767         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
11768         (max_issue, choose_ready, sched_init): Update.
11769
11770 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
11771
11772         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
11773         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
11774         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
11775         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
11776         (print_rank_for_schedule_stats): Print out elements of ready list that
11777         ended up on their respective places due to each of the sorting
11778         heuristics.
11779         (ready_sort): Update.
11780         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
11781         (schedule_block): Update.
11782
11783 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
11784
11785         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
11786         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
11787         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
11788         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
11789         (model_start_schedule): Update.
11790         (sched_pressure_start_bb): New static function.  Calculate
11791         sched_class_regs_num.
11792         (schedule_block): Use it.
11793         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
11794
11795 2014-10-24  Richard Biener  <rguenther@suse.de>
11796
11797         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
11798         host library and make sure to pull in the required libintl
11799         and libiconv dependencies.
11800
11801 2014-10-24  Richard Biener  <rguenther@suse.de>
11802
11803         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
11804
11805 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
11806
11807         PR bootstrap/63632
11808         * collect2.c (main): Filter out -fno-lto.
11809
11810 2014-10-24  Martin Liska  <mliska@suse.cz>
11811
11812         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
11813         division by zero in dumps.
11814         (sem_item_optimizer::merge_classes): Ditto.
11815
11816 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
11817
11818         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
11819
11820 2014-10-23  Ian Lance Taylor  <iant@google.com>
11821
11822         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
11823
11824 2014-10-23  Ian Lance Taylor  <iant@google.com>
11825
11826         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
11827
11828 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
11829
11830         PR debug/63623
11831         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
11832         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
11833         instead of only handling autoinc in dest if it is a MEM.
11834         (vt_stack_adjustments): Fix up formatting.
11835
11836 2014-10-23  DJ Delorie  <dj@redhat.com>
11837
11838         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
11839         independend of -mlarge.
11840         * config/msp430/constraints.md (Ys): Update comment.
11841
11842 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
11843
11844         PR target/63534
11845         PR target/63618
11846         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
11847         while it is pseudo.
11848         * dse.c (deletable_insn_p): Likewise.
11849
11850 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
11851
11852         * config/avr/avr.c: Fix GNU coding rules and typos.
11853         * config/avr/avr.h: Dito.
11854         * config/avr/avr-c.c: Dito.
11855         * config/avr/avr.md: Dito.
11856
11857 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11858
11859         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
11860         New.
11861         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
11862         iterator.
11863         (define_expand "abs<mode>2"): Ditto.
11864
11865 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11866
11867         * tree-core.h (tree_var_decl): Extend `function_code' field
11868         by one bit, move `regdecl_flag' field to ...
11869         (tree_decl_with_vis): Here.
11870         * tree.h (DECL_STATIC_CHAIN): Update struct name.
11871
11872 2014-10-23  Richard Biener  <rguenther@suse.de>
11873
11874         * Makefile.in (BUILD_CPPLIB): Add.
11875         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
11876         Drop LIBIBERTY.
11877
11878 2014-10-23  Richard Biener  <rguenther@suse.de>
11879
11880         * fold-const.c (fold_binary_loc): Preserve side-effects of
11881         X - X when simplifying to 0.
11882         * stor-layout.c (finish_bitfield_representative): Strip
11883         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
11884
11885 2014-10-22  Richard Biener  <rguenther@suse.de>
11886             Tobias Burnus <burnus@net-b.de>
11887
11888         PR lto/63603
11889         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
11890
11891 2014-10-22  Dehao Chen  <dehao@google.com>
11892
11893         * auto-profile.c: Change order of header files.
11894
11895 2014-10-22  Guozhi Wei  <carrot@google.com>
11896
11897         PR tree-optimization/63530
11898         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
11899         pointer alignment according to DR_MISALIGNMENT.
11900
11901 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
11902
11903         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
11904
11905 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
11906
11907         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
11908         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
11909         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
11910         * dominance.h: New.  Add prototypes for dominance.c.
11911         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
11912         * cfghooks.h: (struct profile_record) Relocate here.
11913         Relocate 2 prototypes from basic-block.h.
11914         * basic-block.h: Move prototypes and struct to new header files.
11915         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
11916         * rtl.h: Move a few prototypes to new header files.
11917         * cfgcleanup.c (merge_memattrs): Make static.
11918         * genopinit.c (main): Add predict.h to list of includes.
11919         * predict.h: Update prototype list to match predict.c.
11920         * predict.c (maybe_hot_count_p): Export.
11921         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
11922         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
11923         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
11924         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
11925         * profile.h: Adjust prototypes.
11926         * ifcvt.h: New.  Relocate struct ce_if_block here.
11927         * ifcvt.c: Include ifcvt.h.
11928         * config/frv/frv.c: Include ifcvt.h.
11929         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
11930
11931 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11932
11933         * lra.c (lra): Remove call to recog_init.
11934         * config/i386/i386.md (preferred_for_speed): New attribute
11935         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
11936         "enabled".  Remove check for sched1.
11937
11938 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11939
11940         * recog.h (recog_data_d): Remove enabled_alternatives.
11941         * recog.c (extract_insn): Don't set it.
11942         * reload.c (find_reloads): Call get_enabled_alternatives.
11943
11944 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11945
11946         * recog.h (constrain_operands): Add an alternative_mask parameter.
11947         (constrain_operands_cached): Likewise.
11948         (get_preferred_alternatives): Declare new form.
11949         * recog.c (get_preferred_alternatives): New bb-taking instance.
11950         (constrain_operands): Take the set of available alternatives as
11951         a parameter.
11952         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
11953         (extract_constrain_insn_cached): Update calls to constrain_operands.
11954         * caller-save.c (reg_save_code): Likewise.
11955         * ira.c (setup_prohibited_mode_move_regs): Likewise.
11956         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
11957         * ree.c (combine_reaching_defs): Likewise.
11958         * reload.c (can_reload_into): Likewise.
11959         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
11960         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
11961         (emit_insn_if_valid_for_reload): Likewise.
11962         * reorg.c (fill_slots_from_thread): Likewise.
11963         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
11964         * config/pa/pa.c (pa_can_combine_p): Likewise.
11965         * config/rl78/rl78.c (insn_ok_now): Likewise.
11966         * config/sh/sh.md (define_peephole2): Likewise.
11967         * final.c (final_scan_insn): Update call to constrain_operands_cached.
11968
11969 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11970
11971         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
11972         attributes.
11973         * genattr.c (main): Handle "preferred_for_size" and
11974         "preferred_for_speed" in the same way as "enabled".
11975         * recog.h (bool_attr): New enum.
11976         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
11977         (get_preferred_alternatives, check_bool_attrs): Declare.
11978         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
11979         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
11980         New functions.
11981         (get_enabled_alternatives): Use get_bool_attr_mask.
11982         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
11983         instead of recog_data.enabled_alternatives.
11984         * ira.c (ira_setup_alts): Likewise.
11985         * postreload.c (reload_cse_simplify_operands): Likewise.
11986         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
11987         * ira-lives.c (preferred_alternatives): New variable.
11988         (process_bb_node_lives): Set it.
11989         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
11990         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
11991         of recog_data.enabled_alternatives.
11992         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
11993         to preferred_alternatives.
11994         * lra-constraints.c (process_alt_operands): Update accordingly.
11995         * lra.c (lra_set_insn_recog_data): Likewise.
11996         (lra_update_insn_recog_data): Assert check_bool_attrs.
11997
11998 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11999
12000         * recog.h (extract_constrain_insn): Declare.
12001         * recog.c (extract_constrain_insn): New function.
12002         * lra.c (check_rtl): Use it.
12003         * postreload.c (reload_cse_simplify_operands): Likewise.
12004         * reg-stack.c (check_asm_stack_operands): Likewise.
12005         (subst_asm_stack_regs): Likewise.
12006         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
12007         * regrename.c (build_def_use): Likewise.
12008         * sel-sched.c (get_reg_class): Likewise.
12009         * config/arm/arm.c (note_invalid_constants): Likewise.
12010         * config/s390/predicates.md (execute_operation): Likewise.
12011
12012 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
12013             Yury Gribov  <y.gribov@samsung.com>
12014
12015         * common.opt (flag_sanitize_recover): New variable.
12016         (fsanitize-recover): Remove Var/Init, deprecate.
12017         (fsanitize-recover=): New option.
12018         * doc/invoke.texi (fsanitize-recover): Update docs.
12019         * opts.c (finish_options): Use opts->x_flag_sanitize
12020         instead of flag_sanitize.  Prohibit -fsanitize-recover
12021         for anything besides UBSan.  Formatting.
12022         (common_handle_option): Handle OPT_fsanitize_recover_
12023         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
12024         instead of flag_sanitize.
12025         * asan.c (pass_sanopt::execute): Fix up formatting.
12026         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
12027         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
12028         instrument_bool_enum_load, ubsan_instrument_float_cast,
12029         instrument_nonnull_arg, instrument_nonnull_return): Check
12030         bits in flag_sanitize_recover bitmask instead of
12031         flag_sanitize_recover as bool flag.
12032
12033 2014-10-22  Jiong Wang <jiong.wang@arm.com>
12034
12035         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
12036
12037 2014-10-22  Renlin Li <renlin.li@arm.com>
12038
12039         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
12040         __ARM_FEATURE_IDIV__.
12041
12042 2014-10-22  Richard Biener  <rguenther@suse.de>
12043
12044         * Makefile.in (s-match): Adjust dependencies to only catch
12045         match.pd.
12046
12047 2014-10-22  Richard Biener  <rguenther@suse.de>
12048         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
12049
12050         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
12051         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
12052         (gimple-match.c): Generate by triggering s-match.
12053         (generic-match.c): Likewise.
12054         (s-match): Rule to build gimple-match.c and generic-match.c
12055         by running the genmatch generator program.
12056         (build/hash-table.o): Dependencies to build hash-table.c for the host.
12057         (build/genmatch.o): Dependencies to build genmatch.
12058         (genprog): Add match.
12059         (build/genmatch): Likewise.
12060         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
12061         * generic-match-head.c: New file.
12062         * gimple-match-head.c: Likewise.
12063         * gimple-match.h: Likewise.
12064         * genmatch.c: Likewise.
12065         * match.pd: Likewise.
12066         * builtins.h (fold_builtin_n): Export.
12067         * builtins.c (fold_builtin_n): Likewise.
12068         * gimple-fold.h (gimple_build): Declare various overloads.
12069         (gimple_simplify): Likewise.
12070         (gimple_convert): Re-implement in terms of gimple_build.
12071         * gimple-fold.c (gimple_convert): Remove.
12072         (gimple_build): New functions.
12073         * doc/match-and-simplify.texi: New file.
12074         * doc/gccint.texi: Add menu item Match and Simplify and include
12075         match-and-simplify.texi.
12076
12077 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
12078
12079         PR target/63594
12080         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
12081         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
12082         even for just TARGET_AVX2, not only for
12083         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
12084         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
12085         otherwise build it using concatenation of 256-bit
12086         broadcast.
12087         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
12088         avx512 broadcast patterns.
12089         (vec_dup<mode>): Likewise.  For avx2 use
12090         v<sseintprefix>broadcast<bcstscalarsuff> instead of
12091         vbroadcast<ssescalarmodesuffix>.
12092         (AVX2_VEC_DUP_MODE): New mode iterator.
12093         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
12094         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
12095
12096         PR target/63542
12097         * config/i386/i386.c (ix86_pic_register_p): Also return
12098         true if x is a hard register with ORIGINAL_REGNO equal to
12099         pic_offset_table_rtx pseudo REGNO.
12100         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
12101         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
12102
12103 2014-10-22  Alan Modra  <amodra@gmail.com>
12104
12105         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
12106         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
12107         (gcc_obstack_init): Use obstack_specify_allocation in place of
12108         _obstack_begin.
12109         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
12110         (regexp_representation): Likewise.
12111         * godump.c (go_output_type): Likewise.
12112
12113 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
12114
12115         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
12116         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
12117         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
12118
12119 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
12120
12121         * doc/invoke.texi (pedantic-errors): Explain better.
12122
12123 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
12124             Vidya Praveen <vidya.praveen@atmel.com>
12125             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
12126             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
12127             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
12128
12129         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
12130         __MEMX for avrtiny.
12131         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
12132         (avr_nonconst_pointer_addrspace): Likewise.
12133         * config/avr/avr.h (AVR_HAVE_LPM): Define.
12134
12135         Added AVRTINY architecture to avr target.
12136         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
12137         (base_arch_s): member added for AVRTINY architecture.
12138         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
12139         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
12140         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
12141         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
12142         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
12143         in callee saved register list.
12144         (avr_option_override): CCP address updated for AVRTINY.
12145         (avr_init_expanders): tmp and zero rtx initialized as per arch.
12146         Reset avr_have_dimode if AVRTINY.
12147         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
12148         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
12149         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
12150         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
12151         (expand_epilogue): Likewise.
12152         (avr_print_operand): Print CCP address in case of AVRTINY also.
12153         <TBD>bad address
12154         (function_arg_regno_p): Check different register list for arguments
12155         if AVRTINY.
12156         (init_cumulative_args): Check for AVRTINY to update number of argument
12157         registers.
12158         (tiny_valid_direct_memory_access_range): New function. Return false if
12159         direct memory access range is not in accepted range for AVRTINY.
12160         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
12161         indirect load (with displacement) for AVRTINY.
12162         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
12163         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
12164         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
12165         indirect load (no displacement) for AVRTINY.
12166         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
12167         indirect load (with displacement) for AVRTINY.
12168         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
12169         indirect load for pre-decrement address.
12170         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
12171         functions. Update instruction length for AVRTINY.
12172         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
12173         SImode.
12174         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
12175         (out_movsi_r_mr): Likewise, for SImode.
12176         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
12177         indirect store (no displacement) for AVRTINY.
12178         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
12179         indirect store (with displacement) for AVRTINY.
12180         (out_movsi_mr_r): Emit out insn for IO address store. Update store
12181         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
12182         store functions.
12183         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
12184         indirect load (no displacement) for PSImode in AVRTINY.
12185         (avr_out_load_psi_reg_disp_tiny): New function to handle register
12186         indirect load (with displacement) for PSImode in AVRTINY.
12187         (avr_out_load_psi): Call PSImode register indirect load functions for
12188         AVRTINY. Update instruction length for AVRTINY.
12189         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
12190         indirect store (no displacement) for PSImode in AVRTINY.
12191         (avr_out_store_psi_reg_disp_tiny): New function to handle register
12192         indirect store (with displacement) for PSImode in AVRTINY.
12193         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
12194         register indirect store functions for AVRTINY.
12195         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
12196         register indirect store (with displacement) for AVRTINY.
12197         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
12198         register indirect store function for QImode in AVRTINY.
12199         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
12200         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
12201         indirect store (no displacement) for HImode in AVRTINY.
12202         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
12203         indirect store (with displacement) for HImode in AVRTINY.
12204         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
12205         indirect store for post-increment address in HImode.
12206         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
12207         register indirect store function for HImode in AVRTINY.
12208         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
12209         in case of AVRTINY.
12210         (order_regs_for_local_alloc): Updated register allocation order for
12211         AVRTINY.
12212         (avr_conditional_register_usage): New function. It is a target hook
12213         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
12214         used registers list and register allocation order for AVRTINY.
12215         (avr_return_in_memory): Update return value size for AVRTINY.
12216         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
12217         for AVRTINY arch and tiny program memory base address.
12218         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
12219         (avr_texinfo): Added description for AVRTINY arch.
12220         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
12221         STATIC_CHAIN_REGNUM for AVRTINY.
12222         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
12223         * config/avr/avr.md: Added constants for tmp/ zero registers in
12224         AVRTINY. Attributes for AVRTINY added.
12225         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
12226         memory access range.
12227         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
12228         in AVRTINY memory access range.
12229         (*mov<mode>): Likewise for HImode and SImode.
12230         (*movsf): Likewise for SFmode.
12231         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
12232         not have sbiw.
12233         * config/avr/avr-protos.h: Added function prototype for
12234         tiny_valid_direct_memory_access_range.
12235         * config/avr/avr-tables.opt: Regenerate.
12236         * gcc/config/avr/t-multilib: Regenerate.
12237         * doc/avr-mmcu.texi: Regenerate.
12238
12239 2014-10-21  Andrew Pinski  <apinski@cavium.com>
12240
12241         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
12242         available option also.
12243         * config/aarch64/aarch64-cost-tables.h: New file.
12244         * config/aarch64/aarch64-cores.def (thunderx): New core.
12245         * config/aarch64/aarch64-tune.md: Regenerate.
12246         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
12247         of config/arm/aarch-cost-tables.h.
12248         (thunderx_regmove_cost): New variable.
12249         (thunderx_tunings): New variable.
12250
12251 2014-10-21  Dehao Chen  <dehao@google.com>
12252
12253         * auto-profile.c: New file.
12254         * auto-profile.h: New file.
12255         * basic-block.h (maybe_hot_count_p): New export func.
12256         (add_working_set): New export func.
12257         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
12258         (GCOV_TAG_AFDO_FUNCTION): Likewise.
12259         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
12260         * opts.c (enable_fdo_optimizations): New func.
12261         (common_handle_option): Handle -fauto-profile flag.
12262         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
12263         (class pass_early_inline): Export early_inliner.
12264         (early_inliner): Likewise.
12265         (pass_early_inline::execute): Likewise.
12266         * ipa-inline.h (early_inliner): Likewise.
12267         * predict.c (maybe_hot_count_p): New export func.
12268         (counts_to_freqs): AutoFDO logic.
12269         (rebuild_frequencies): Likewise.
12270         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
12271         * profile.c (add_working_set): New func.
12272         * Makefile.in (auto-profile.o): New object file.
12273         * passes.def (pass_ipa_auto_profile): New pass.
12274         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
12275         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
12276         * toplev.c (compile_file): AutoFDO logic.
12277         * doc/invoke.texi (-fauto-profile): New doc.
12278         * coverage.c (coverage_init): AutoFDO logic.
12279         * common.opt (-fauto-profile): New flag.
12280         * timevar.def (TV_IPA_AUTOFDO): New tag.
12281         * value-prof.c (gimple_alloc_histogram_value): New export func.
12282         (check_ic_target): Likewise.
12283         * value-prof.h (gimple_alloc_histogram_value): Likewise.
12284         (check_ic_target): Likewise.
12285
12286 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
12287
12288         * cgraph.c (cgraph_c_finalize): New function.
12289         * cgraph.h (cgraph_c_finalize): New prototype.
12290         (cgraphunit_c_finalize): New prototype.
12291         * cgraphunit.c (first_analyzed): Move from analyze_functions
12292         to file-scope.
12293         (first_analyzed_var): Likewise.
12294         (analyze_functions): Move static variables into file-scope.
12295         (cgraphunit_c_finalize): New function.
12296         * diagnostic.c (diagnostic_finish): Free the memory for
12297         context->classify_diagnostic and context->printer, running the
12298         destructor for the latter.
12299         (bt_stop): Use toplev::main.
12300         * dwarf2out.c (dwarf2out_finalize): New function.
12301         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
12302         * gcse.c (gcse_c_finalize): New function.
12303         * gcse.h (gcse_c_finalize): New prototype.
12304         * ggc-page.c (init_ggc): Make idempotent.
12305         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
12306         * ipa-cp.c (ipa_cp_c_finalize): New function.
12307         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
12308         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
12309         a field of class pass_ipa_pure_const.
12310         (node_duplication_hook_holder): Likewise.
12311         (node_removal_hook_holder): Likewise.
12312         (register_hooks): Convert to method...
12313         (pass_ipa_pure_const::register_hooks): ...here, converting
12314         static variable init_p into...
12315         (pass_ipa_pure_const::init_p): ...new field.
12316         (pure_const_generate_summary): Update invocation of
12317         register_hooks to invoke as a method of current_pass.
12318         (pure_const_read_summary): Likewise.
12319         (propagate): Convert to...
12320         (pass_ipa_pure_const::execute): ...method.
12321         * ipa-reference.c (ipa_init): Move static bool init_p from here
12322         to...
12323         (ipa_init_p): New file-scope variable, so that it can be reset
12324         when repeatedly invoking the compiler within one process by...
12325         (ipa_reference_c_finalize): New function.
12326         * ipa-reference.h (ipa_reference_c_finalize): New.
12327         * main.c (main): Replace invocation of toplev_main with
12328         construction of a toplev instance, and call its "main" method.
12329         * params.c (global_init_params): Add an assert that
12330         params_finished is false.
12331         (params_c_finalize): New.
12332         * params.h (params_c_finalize): New.
12333         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
12334         invoking generate_summary, for the benefit of pass_ipa_pure_const.
12335         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
12336         before calling write_summary hook.
12337         (ipa_write_optimization_summaries_1): Likewise when calling
12338         write_optimization_summary hook.
12339         (ipa_read_summaries_1): Likewise for read_summary hook.
12340         (ipa_read_optimization_summaries_1): Likewise for
12341         read_optimization_summary hook.
12342         (execute_ipa_stmt_fixups): Likewise.
12343         * stringpool.c (init_stringpool): Clean up if we're called more
12344         than once.
12345         * timevar.c (timevar_init): Ignore repeated calls.
12346         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
12347         "ipa-prop.h".
12348         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
12349         (initialize_rtl): Move static local "initialized_once"
12350         into file scope, and rename to...
12351         (rtl_initialized): New variable.
12352         (do_compile): Move timevar initialization from here to
12353         toplev::start_timevars.
12354         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
12355         toplev::finalize): New functions.
12356         (toplev_main): Rename to...
12357         (toplev::main): ...this.
12358         * toplev.h (class toplev): New class.
12359
12360 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
12361
12362         * loop-doloop.c: Include loop-unroll.h.
12363
12364 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
12365
12366         * cfg.h: New.  Header file for cfg.c.
12367         * cfganal.h: New.  Header file for cfganal.c.
12368         * lcm.h: New.  Header file for lcm.c.
12369         * loop-unroll.h: New.  Header file for loop-unroll.h.
12370         * cfgloop.h: (unroll_loops): Remove prototype.
12371         * basic-block.h: Move prototypes and structs to new header files.
12372         Include cfg.h, cfganal.h, and lcm.h.
12373         * loop-init.c: Include loop-unroll.h.
12374         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
12375         * modulo-sched.c: Include loop-unroll.h.
12376
12377 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12378
12379         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
12380         MARKER_BYTE_UNKNOWN markers when handling casts.
12381
12382 2014-10-21  Richard Biener  <rguenther@suse.de>
12383
12384         * tree-ssa-phiopt.c (value_replacement): Properly verify we
12385         are the non-singleton PHI.
12386
12387 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
12388
12389         PR tree-optimization/63563
12390         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
12391         if either dra or drb stmts are not normal loads/stores.
12392
12393 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
12394
12395         * config/i386/i386.c (expand_vec_perm_1): Fix
12396         expand_vec_perm_palignr case.
12397         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
12398         VI1_AVX512.
12399
12400 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
12401
12402         * cfgloopanal.c (seq_cost): Delete.
12403         * rtl.h (seq_cost): New prototype.
12404         * rtlanal.c (seq_cost): New function.
12405         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
12406
12407 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
12408
12409         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
12410         * basic-block.h: Remove prototypes for cfgrtl.c.
12411         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
12412         prototypes to cfgrtl.h.
12413         * profile.h (profile_info): Add extern export declaration.
12414         * rtl.h: Remove prototypes for cfgrtl.h.
12415         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
12416         * ipa-inline.c: Include profile.h.
12417         * loop-unroll.c: Ditto.
12418         * modulo-sched.c: Ditto.
12419         * postreload-gcse.c: Ditto.
12420         * predict.c: Ditto.
12421         * sched-ebb.c: Ditto.
12422         * sched-rgn.c: Ditto.
12423         * tracer.c: Ditto.
12424         * tree-ssa-loop-ivcanon.c: Ditto.
12425
12426 2014-10-20  Richard Biener  <rguenther@suse.de>
12427
12428         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
12429         operands to get a def operand kind match.  Signal mismatches
12430         to the parent so we can try swapping its operands.
12431         (vect_build_slp_tree): Try swapping operands if they have
12432         a mismatched operand kind.
12433
12434 2014-10-20  Alan Modra  <amodra@gmail.com>
12435
12436         PR debug/60655
12437         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
12438         Increase "ops" array size.  Correct array size tests.  Init
12439         n_constants in loop.  Break out of innermost loop when finding
12440         a trivial CONST expression.
12441
12442 2014-10-20  Martin Liska  <mliska@suse.cz>
12443
12444         PR ipa/63583
12445         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
12446         Gimple tempate string is compared.
12447
12448 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
12449
12450         * varasm.c (const_alias_set): Remove.
12451         (init_varasm_once): Remove initialization of const_alias_set.
12452         (build_constant_desc): Do not set alias set to const_alias_set.
12453
12454 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
12455
12456         * configure: Regenerate.
12457         * configure.ac: Move the test for section attribute specifier "e" in GAS
12458         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
12459         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
12460         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
12461         ifdef HAVE_GAS_SECTION_EXCLUDE.
12462
12463 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
12464
12465         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
12466         match_operand expression.
12467
12468 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
12469             David Edelsohn  <dje.gcc@gmail.com>
12470
12471         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
12472         function.
12473         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
12474
12475 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12476
12477         * doc/invoke.texi (Options to Request or Suppress Warnings):
12478         Explain options precedence.
12479         (Wtrampolines): Do not indent paragraph.
12480
12481 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
12482
12483         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
12484         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
12485         (pa_jump_in_call_delay): Likewise.
12486         * config/pa/pa.c (pa_option_override): Remove jump in call delay
12487         override.
12488         (pa_output_millicode_call): Remove support for jump in call delay.
12489         (pa_output_call): Likewise.
12490         (pa_jump_in_call_delay): Delete.
12491         (pa_following_call): Likewise.
12492         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
12493         (uncond_branch): Remove following call check from attribute length.
12494
12495 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
12496
12497         PR target/53513
12498         * config/sh/sh-modes.def (PSI): Remove.
12499         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
12500         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
12501         (sh_reorg): Remove commented out FPSCR code.
12502         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
12503         insn instead of move insn.
12504         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
12505         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
12506         handling.
12507         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
12508         (sh1_builtin_p): Uncomment.
12509         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
12510         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
12511         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
12512         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
12513         (general_movsrc_operand, general_movdst_operand): Disallow
12514         fpscr_operand.
12515         * config/sh/sh.md (FPSCR_FR): New constant.
12516         (push_fpscr): Emit sts_fpscr insn.
12517         (pop_fpscr): Emit lds_fpscr_insn.
12518         (movsi_ie): Disallow FPSCR operands.
12519         (fpu_switch, unnamed related split, extend_psi_si,
12520         truncate_si_psi): Remove insns.
12521         (lds_fpscr, sts_fpscr): New insns.
12522         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
12523
12524 >>>>>>> .r217525
12525 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
12526
12527         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
12528         (clone_inlined_nodes): Do not overwrite the clone if above predicate
12529         returns true.
12530
12531 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
12532
12533         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
12534         (expand_vec_perm_d): Ditto.
12535         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
12536         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
12537         V4DFmode.
12538         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
12539         (ix86_expand_sse_unpack): Handle V64QImode.
12540         (expand_vec_perm_blend): Update conditions for TARGET, handle
12541         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
12542         (expand_vec_perm_pshufb): Handle V64QImode.
12543         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
12544         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
12545         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
12546         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
12547         (ix86_expand_vecop_qihi): Handle V64QImode.
12548         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
12549         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
12550         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
12551         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
12552         (mul<mode>3): Use VI1_AVX512.
12553         (<sse2_avx2>_packsswb): Ditto.
12554         (<sse2_avx2>_packuswb): Ditto.
12555         (<ssse3_avx2>_pshufb<mode>3): Ditto.
12556         (<shift_insn><mode>3): Ditto.
12557
12558 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
12559
12560         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
12561         conditions to fix bootstrap.
12562
12563 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
12564
12565         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
12566
12567 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12568             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12569             Anna Tikhonova  <anna.tikhonova@intel.com>
12570             Ilya Tocar  <ilya.tocar@intel.com>
12571             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12572             Ilya Verbin  <ilya.verbin@intel.com>
12573             Kirill Yukhin  <kirill.yukhin@intel.com>
12574             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12575
12576         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
12577         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
12578         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
12579         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
12580         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
12581         (define_expand "vec_init<mode>"): Use VF48_I1248.
12582
12583 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12584             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12585             Anna Tikhonova  <anna.tikhonova@intel.com>
12586             Ilya Tocar  <ilya.tocar@intel.com>
12587             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12588             Ilya Verbin  <ilya.verbin@intel.com>
12589             Kirill Yukhin  <kirill.yukhin@intel.com>
12590             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12591
12592         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
12593         expand_sse2_mulvxdi3.
12594
12595 2014-10-17  Richard Biener  <rguenther@suse.de>
12596
12597         * fold-const.c (fold_comparison): Remove redundant constant
12598         folding and operand swapping.
12599         (fold_binary_loc): Do comparison operand swapping here.
12600         (fold_ternary_loc): Canonicalize operand order for
12601         commutative ternary operations.
12602         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
12603         and FMA_EXPR.
12604
12605 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
12606
12607         PR tree-optimization/63464
12608         * gimple.h (gimple_seq_discard): New prototype.
12609         * gimple.c: Include stringpool.h and tree-ssanames.h.
12610         (gimple_seq_discard): New function.
12611         * optabs.h (lshift_cheap_p): New prototype.
12612         * optabs.c (lshift_cheap_p): New function, moved from...
12613         * tree-switch-conversion.c (lshift_cheap_p): ... here.
12614         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
12615         (reassoc_branch_fixups): New variable.
12616         (update_range_test): Add otherrangep and seq arguments.
12617         Unshare exp.  If otherrange is NULL, use for other ranges
12618         array of pointers pointed by otherrangep instead.
12619         Emit seq before gimplified statements for tem.
12620         (optimize_range_tests_diff): Adjust update_range_test
12621         caller.
12622         (optimize_range_tests_xor): Likewise.  Fix up comment.
12623         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
12624         functions.
12625         (optimize_range_tests): Adjust update_range_test caller.
12626         Call optimize_range_tests_to_bit_test.
12627         (branch_fixup): New function.
12628         (execute_reassoc): Call branch_fixup.
12629
12630         PR tree-optimization/63302
12631         * tree-ssa-reassoc.c (optimize_range_tests_xor,
12632         optimize_range_tests_diff): Use !integer_pow2p () instead of
12633         tree_log2 () < 0.
12634
12635 2014-10-17  Martin Liska  <mliska@suse.cz>
12636
12637         * ipa-icf.c (sem_function::merge): Local flags are set to false
12638         to enforce equal calling convention to be used.
12639         * opts.c (common_handle_option): Indentation fix.
12640
12641 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
12642
12643         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
12644
12645 2014-10-17  Tom de Vries  <tom@codesourcery.com>
12646
12647         PR rtl-optimization/61605
12648         * regcprop.c (copyprop_hardreg_forward_1): Use
12649         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
12650
12651 2014-10-17  Tom de Vries  <tom@codesourcery.com>
12652
12653         PR rtl-optimization/61605
12654         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
12655         notice stores for noops.  Don't regard noops as copies.
12656
12657 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
12658
12659         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
12660         register in a special way.
12661         (__cpuid_count): Ditto.
12662         * config/i386/driver-i386.h: Protect with
12663         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
12664         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
12665         is required to compile the function.
12666
12667 2014-10-16  DJ Delorie  <dj@redhat.com>
12668
12669         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
12670         integers.
12671
12672         * config/rs6000/rs6000-c.c (rid_int128): New.
12673         (rs6000_macro_to_expand): Use instead of RID_INT128.
12674
12675 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
12676
12677         * function.h: Flatten file.  Remove includes, adjust prototypes to
12678         reflect only what is in function.h.
12679         (enum direction, struct args_size, struct locate_and_pad_arg_data,
12680         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
12681         from expr.h.
12682         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
12683         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
12684         prototypes to predict.h.
12685         (init_varasm_status): Move prototype to varasm.h.
12686         * expr.h: Adjust include files.
12687         (enum direction, struct args_size, struct locate_and_pad_arg_data,
12688         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
12689         to function.h.
12690         (locate_and_pad_parm): Move prototype to function.h.
12691         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
12692         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
12693         assign_temp, reposition_prologue_and_epilogue_notes,
12694         prologue_epilogue_contains, sibcall_epilogue_contains,
12695         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
12696         set_return_jump_label): Move prototypes to function.h.
12697         * predict.h (optimize_function_for_size_p,
12698         optimize_function_for_speed_p): Relocate prototypes from function.h.
12699         * shrink-wrap.h (emit_return_into_block, active_insn_between,
12700         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
12701         function.h.
12702         * varasm.h (init_varasm_status): Relocate prototype from function.h.
12703         * genattrtab.c (write_header): Add predict.h to include list.
12704         * genconditions.c (write_header): Add predict.h to include list.
12705         * genemit.c (main): Adjust header file includes.
12706         * gengtype.c (ifiles): Add flattened function.h header files.
12707         * genoutput.c (output_prologue): Add predict.h to include list.
12708         * genpreds.c (write_insn_preds_c): Adjust header file includes.
12709         * genrecog.c (write_header): Add flattened function.h header files.
12710         * alias.c: Adjust include files.
12711         * auto-inc-dec.c: Likewise.
12712         * basic-block.h: Likewise.
12713         * bb-reorder.c: Likewise.
12714         * bt-load.c: Likewise.
12715         * builtins.c: Likewise.
12716         * caller-save.c: Likewise.
12717         * calls.c: Likewise.
12718         * cfgbuild.c: Likewise.
12719         * cfgcleanup.c: Likewise.
12720         * cfgexpand.c: Likewise.
12721         * cfgloop.c: Likewise.
12722         * cfgloop.h: Likewise.
12723         * cfgrtl.c: Likewise.
12724         * cgraph.h: Likewise.
12725         * cgraphclones.c: Likewise.
12726         * cgraphunit.c: Likewise.
12727         * combine-stack-adj.c: Likewise.
12728         * combine.c: Likewise.
12729         * coverage.c: Likewise.
12730         * cprop.c: Likewise.
12731         * cse.c: Likewise.
12732         * cselib.c: Likewise.
12733         * dbxout.c: Likewise.
12734         * ddg.c: Likewise.
12735         * df-core.c: Likewise.
12736         * df-problems.c: Likewise.
12737         * df-scan.c: Likewise.
12738         * dojump.c: Likewise.
12739         * dwarf2cfi.c: Likewise.
12740         * dwarf2out.c: Likewise.
12741         * emit-rtl.c: Likewise.
12742         * except.c: Likewise.
12743         * explow.c: Likewise.
12744         * expr.c: Likewise.
12745         * final.c: Likewise.
12746         * function.c: Likewise.
12747         * gcse.c: Likewise.
12748         * gimple-fold.c: Likewise.
12749         * gimple-low.c: Likewise.
12750         * gimple-streamer.h: Likewise.
12751         * haifa-sched.c: Likewise.
12752         * ifcvt.c: Likewise.
12753         * ira.c: Likewise.
12754         * jump.c: Likewise.
12755         * lcm.c: Likewise.
12756         * loop-invariant.c: Likewise.
12757         * lra-assigns.c: Likewise.
12758         * lra-coalesce.c: Likewise.
12759         * lra-constraints.c: Likewise.
12760         * lra-eliminations.c: Likewise.
12761         * lra-lives.c: Likewise.
12762         * lra-spills.c: Likewise.
12763         * lra.c: Likewise.
12764         * lto-cgraph.c: Likewise.
12765         * lto-section-in.c: Likewise.
12766         * lto-section-out.c: Likewise.
12767         * lto-streamer-in.c: Likewise.
12768         * lto-streamer-out.c: Likewise.
12769         * mode-switching.c: Likewise.
12770         * modulo-sched.c: Likewise.
12771         * omp-low.c: Likewise.
12772         * optabs.c: Likewise.
12773         * passes.c: Likewise.
12774         * postreload-gcse.c: Likewise.
12775         * postreload.c: Likewise.
12776         * predict.c: Likewise.
12777         * profile.c: Likewise.
12778         * recog.c: Likewise.
12779         * ree.c: Likewise.
12780         * reg-stack.c: Likewise.
12781         * regcprop.c: Likewise.
12782         * reginfo.c: Likewise.
12783         * regrename.c: Likewise.
12784         * reload.c: Likewise.
12785         * reload1.c: Likewise.
12786         * reorg.c: Likewise.
12787         * resource.c: Likewise.
12788         * rtlanal.c: Likewise.
12789         * sched-deps.c: Likewise.
12790         * sched-ebb.c: Likewise.
12791         * sched-rgn.c: Likewise.
12792         * sel-sched-dump.c: Likewise.
12793         * sel-sched-ir.c: Likewise.
12794         * sel-sched.c: Likewise.
12795         * shrink-wrap.c: Likewise.
12796         * simplify-rtx.c: Likewise.
12797         * statistics.c: Likewise.
12798         * stmt.c: Likewise.
12799         * stor-layout.c: Likewise.
12800         * store-motion.c: Likewise.
12801         * symtab.c: Likewise.
12802         * targhooks.c: Likewise.
12803         * toplev.c: Likewise.
12804         * trans-mem.c: Likewise.
12805         * tree-cfg.c: Likewise.
12806         * tree-cfgcleanup.c: Likewise.
12807         * tree-dfa.c: Likewise.
12808         * tree-eh.c: Likewise.
12809         * tree-inline.c: Likewise.
12810         * tree-into-ssa.c: Likewise.
12811         * tree-nested.c: Likewise.
12812         * tree-nrv.c: Likewise.
12813         * tree-profile.c: Likewise.
12814         * tree-ssa-alias.c: Likewise.
12815         * tree-ssa-ccp.c: Likewise.
12816         * tree-ssa-copy.c: Likewise.
12817         * tree-ssa-copyrename.c: Likewise.
12818         * tree-ssa-dom.c: Likewise.
12819         * tree-ssa-operands.c: Likewise.
12820         * tree-ssa-propagate.c: Likewise.
12821         * tree-ssa-structalias.c: Likewise.
12822         * tree-ssa-tail-merge.c: Likewise.
12823         * tree-ssa-threadedge.c: Likewise.
12824         * tree-ssa-threadupdate.c: Likewise.
12825         * tree-ssa-uncprop.c: Likewise.
12826         * tree-ssa-uninit.c: Likewise.
12827         * tree-ssa.c: Likewise.
12828         * tree-stdarg.c: Likewise.
12829         * tree-tailcall.c: Likewise.
12830         * tree.c: Likewise.
12831         * tsan.c: Likewise.
12832         * valtrack.c: Likewise.
12833         * varasm.c: Likewise.
12834         * vmsdbgout.c: Likewise.
12835         * web.c: Likewise.
12836         * config/aarch64/aarch64.c: Add flattened includes from function.h.
12837         * config/alpha/alpha.c: Likewise.
12838         * config/arc/arc.c: Likewise.
12839         * config/arm/arm.c: Likewise.
12840         * config/avr/avr-log.c: Likewise.
12841         * config/avr/avr.c: Likewise.
12842         * config/bfin/bfin.c: Likewise.
12843         * config/c6x/c6x.c: Likewise.
12844         * config/cr16/cr16.c: Likewise.
12845         * config/cris/cris.c: Likewise.
12846         * config/darwin.c: Likewise.
12847         * config/epiphany/epiphany.c: Likewise.
12848         * config/epiphany/mode-switch-use.c: Likewise.
12849         * config/epiphany/resolve-sw-modes.c: Likewise.
12850         * config/fr30/fr30.c: Likewise.
12851         * config/frv/frv.c: Likewise.
12852         * config/h8300/h8300.c: Likewise.
12853         * config/i386/i386.c: Likewise.
12854         * config/ia64/ia64.c: Likewise.
12855         * config/iq2000/iq2000.c: Likewise.
12856         * config/lm32/lm32.c: Likewise.
12857         * config/m32c/m32c.c: Likewise.
12858         * config/m32r/m32r.c: Likewise.
12859         * config/m68k/m68k.c: Likewise.
12860         * config/mcore/mcore.c: Likewise.
12861         * config/mep/mep-pragma.c: Likewise.
12862         * config/mep/mep.c: Likewise.
12863         * config/microblaze/microblaze.c: Likewise.
12864         * config/mips/mips.c: Likewise.
12865         * config/mmix/mmix.c: Likewise.
12866         * config/mn10300/mn10300.c: Likewise.
12867         * config/moxie/moxie.c: Likewise.
12868         * config/msp430/msp430.c: Likewise.
12869         * config/nds32/nds32-cost.c: Likewise.
12870         * config/nds32/nds32-fp-as-gp.c: Likewise.
12871         * config/nds32/nds32-intrinsic.c: Likewise.
12872         * config/nds32/nds32-isr.c: Likewise.
12873         * config/nds32/nds32-md-auxiliary.c: Likewise.
12874         * config/nds32/nds32-memory-manipulation.c: Likewise.
12875         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
12876         * config/nds32/nds32-predicates.c: Likewise.
12877         * config/nds32/nds32.c: Likewise.
12878         * config/nios2/nios2.c: Likewise.
12879         * config/pa/pa.c: Likewise.
12880         * config/pdp11/pdp11.c: Likewise.
12881         * config/rl78/rl78.c: Likewise.
12882         * config/rs6000/rs6000.c: Likewise.
12883         * config/rx/rx.c: Likewise.
12884         * config/s390/s390.c: Likewise.
12885         * config/score/score.c: Likewise.
12886         * config/sh/sh.c: Likewise.
12887         * config/sparc/sparc.c: Likewise.
12888         * config/spu/spu.c: Likewise.
12889         * config/stormy16/stormy16.c: Likewise.
12890         * config/tilegx/tilegx.c: Likewise.
12891         * config/tilepro/tilepro.c: Likewise.
12892         * config/v850/v850.c: Likewise.
12893         * config/vax/vax.c: Likewise.
12894         * config/xtensa/xtensa.c: Likewise.
12895
12896 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
12897
12898         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
12899         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
12900
12901 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
12902
12903         * config/sh/sh-protos.h (fldi_ok): Remove.
12904         * config/sh/sh.c (fldi_ok): Likewise.
12905         (sh_secondary_reload): Don't use fldi_ok.
12906         * config/sh/constraints.md (G constraint, H constraint): Don't use
12907         fldi_ok.
12908
12909 2014-10-16  Martin Liska  <mliska@suse.cz>
12910
12911         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
12912         Cast to unsigned long.
12913         (sem_item_optimizer::dump_cong_classes): Likewise.
12914
12915 2014-10-16  Tom de Vries  <tom@codesourcery.com>
12916
12917         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
12918         with SSA_NAME_IN_FREELIST.
12919
12920 2014-10-16  Richard Biener  <rguenther@suse.de>
12921
12922         PR middle-end/63554
12923         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
12924         (fold_builtin_strncat_chk): Move ...
12925         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
12926         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
12927
12928 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
12929
12930         PR target/59401
12931         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
12932         GBR to 0.
12933
12934 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12935             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12936             Anna Tikhonova  <anna.tikhonova@intel.com>
12937             Ilya Tocar  <ilya.tocar@intel.com>
12938             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12939             Ilya Verbin  <ilya.verbin@intel.com>
12940             Kirill Yukhin  <kirill.yukhin@intel.com>
12941             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12942
12943         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
12944         V64QI modes.
12945
12946 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12947             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12948             Anna Tikhonova  <anna.tikhonova@intel.com>
12949             Ilya Tocar  <ilya.tocar@intel.com>
12950             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12951             Ilya Verbin  <ilya.verbin@intel.com>
12952             Kirill Yukhin  <kirill.yukhin@intel.com>
12953             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12954
12955         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
12956         V16SI, V32HI, V64QI modes.
12957
12958 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
12959
12960         PR target/53513
12961         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
12962         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
12963
12964         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
12965         to match fp insn patterns.
12966         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
12967         list.
12968         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
12969         expand_df_unop, expand_df_binop): Remove.
12970         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
12971         FPSCR_STAT_REG as not call clobbered.
12972         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
12973         invoking fpscr_set_from_mem.
12974
12975         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
12976         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
12977         FPSCR_STAT_REG.
12978         (REGISTER_NAMES): Adjust.
12979         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
12980         (FIRST_PSEUDO_REGISTER): Increase to 156.
12981         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
12982         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
12983         FPSCR_STAT_REG.
12984         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
12985         FPSCR_MODES_REG and FPSCR_STAT_REG.
12986         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
12987
12988         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
12989         FPSCR_SZ): Add new constants.
12990         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
12991
12992         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
12993         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
12994         Use TARGET_FPU_ANY condition.
12995         (fpu_switch peephole2): Remove.
12996         (fpu_switch split): Use simple_mem_operand to capture the mem and
12997         adjust split implementation.
12998         (extend_psi_si, truncate_si_psi): New insns.
12999         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
13000         set of FPSCR_MODES_REG.
13001
13002         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
13003         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
13004         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
13005         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
13006         call_value_compact, call_value_compact_rettramp, call,
13007         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
13008         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
13009         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
13010         sibcall_value_compact, sibcall_value, call_value_pop_compact,
13011         call_value_pop_compact_rettramp, various unnamed splits):
13012         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
13013         function uses.
13014
13015         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
13016         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
13017         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
13018         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
13019         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
13020
13021         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
13022         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
13023         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
13024         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
13025         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
13026         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
13027         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
13028
13029 2014-10-16  Martin Liska  <mliska@suse.cz>
13030             Jan Hubicka  <hubicka@ucw.cz>
13031
13032         * Makefile.in: New object files included.
13033         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
13034         is printed.
13035         (verify_edge_corresponds_to_fndecl): More sensitive verification
13036         of nodes that are merged by IPA ICF.
13037         * cgraph.h (cgraph_node::num_references): New function.
13038         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
13039         * common.opt: New options ipa-icf, ipa-icf-functions and
13040         ipa-icf-variables introduced.
13041         * doc/invoke.texi: Documentation of new options introduced.
13042         * ipa-icf-gimple.c: New file.
13043         * ipa-icf-gimple.h: New file.
13044         * ipa-icf.c: New file.
13045         * ipa-icf.h: New file.
13046         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
13047         (input_overwrite_node): Likewise.
13048         * lto-section-in.c: New icf section added.
13049         * lto-streamer.h (enum lto_section_type): Likewise.
13050         * opts.c (common_handle_option): New option added.
13051         * passes.def: New pass included.
13052         * timevar.def: Time variable for IPA ICF added.
13053         * tree-pass.h: New IPA ICF pass entry point added.
13054
13055 2014-10-16  Richard Biener  <rguenther@suse.de>
13056
13057         PR tree-optimization/63168
13058         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
13059         latches if after merging they are no longer simple.
13060         * cfghooks.c (merge_blocks): Handle merging a latch block
13061         into another block.
13062
13063 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13064             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13065             Anna Tikhonova  <anna.tikhonova@intel.com>
13066             Ilya Tocar  <ilya.tocar@intel.com>
13067             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13068             Ilya Verbin  <ilya.verbin@intel.com>
13069             Kirill Yukhin  <kirill.yukhin@intel.com>
13070             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13071
13072         * config/i386/sse.md
13073         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
13074         support AVX-512VL instructions.
13075
13076 2014-10-16  DJ Delorie  <dj@redhat.com>
13077
13078         * tree-core.h: Fix comment to not assume pointers are multiples of
13079         bytes.
13080
13081 2014-10-15  Tom Tromey  <tromey@redhat.com>
13082
13083         * timevar.h (class auto_timevar): New class.
13084
13085 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
13086
13087         PR go/59432
13088         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13089         Remove the second alternative.
13090         (regprefix): Remove mode attribute.
13091         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
13092         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
13093
13094         Revert:
13095         2013-11-05  Ian Lance Taylor  <iant@google.com>
13096
13097         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13098         If possible, add .cfi directives to record change to bx.
13099         * config/i386/i386.c (ix86_emit_cfi): New function.
13100         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
13101
13102 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
13103
13104         PR lto/62026
13105         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
13106         to duplicate.
13107         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
13108         at WPA time.
13109
13110 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
13111
13112         PR rtl-optimization/63448
13113         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
13114         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
13115         (LRA_MAX_INHERITANCE_PASSES): Use it.
13116         (lra_constraint_iter_after_spill): Remove.
13117         (lra_assignment_iter): New.
13118         (lra_assignment_iter_after_spill): New.
13119         * lra-assigns.c (lra_assignment_iter): New.
13120         (lra_assignment_iter_after_spill): New.
13121         (former_reload_pseudo_spill_p): New.
13122         (spill_for): Set up former_reload_pseudo_spill_p.
13123         (setup_live_pseudos_and_spill_after_risky): Ditto.
13124         (assign_by_spills): Ditto.
13125         (lra_assign): Increment lra_assignment_iter.  Print the iteration
13126         number.  Reset former_reload_pseudo_spill_p.  Check
13127         lra_assignment_iter_after_spill.
13128         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
13129         lra_assignment_iter and lra_assignment_iter_after_spill.
13130         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
13131         (lra_constraints): Remove code with
13132         lra_assignment_iter_after_spill.
13133
13134 2014-10-15  Teresa Johnson  <tejohnson@google.com>
13135
13136         PR bootstrap/63432
13137         * tree-ssa-threadupdate.c (recompute_probabilities): Better
13138         overflow checking.
13139
13140 2014-10-15  Renlin Li <renlin.li@arm.com>
13141
13142         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
13143         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
13144         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
13145         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
13146
13147 2014-10-15  Richard Biener  <rguenther@suse.de>
13148
13149         * gimple-fold.c (gimple_fold_call): Properly keep virtual
13150         SSA form up-to-date when devirtualizing a call to
13151         __builtin_unreachable and avoid fixing up EH info here.
13152
13153 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13154             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13155             Anna Tikhonova  <anna.tikhonova@intel.com>
13156             Ilya Tocar  <ilya.tocar@intel.com>
13157             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13158             Ilya Verbin  <ilya.verbin@intel.com>
13159             Kirill Yukhin  <kirill.yukhin@intel.com>
13160             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13161
13162         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
13163         to support AVX-512BW.
13164         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
13165         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
13166         (define_insn "*<plusminus_insn><mode>3"): Ditto.
13167         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
13168         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13169         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
13170         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13171         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
13172         (define_insn "*andnot<mode>3"): Ditto.
13173         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
13174         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
13175         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
13176         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
13177         (define_insn "*abs<mode>2"): Remove masking support.
13178         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
13179         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
13180         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
13181
13182 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13183             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13184             Anna Tikhonova  <anna.tikhonova@intel.com>
13185             Ilya Tocar  <ilya.tocar@intel.com>
13186             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13187             Ilya Verbin  <ilya.verbin@intel.com>
13188             Kirill Yukhin  <kirill.yukhin@intel.com>
13189             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13190
13191         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
13192         * config/i386/sse.md
13193         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
13194         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
13195         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
13196         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
13197         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
13198         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
13199         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
13200
13201 2014-10-15  Renlin Li <renlin.li@arm.com>
13202
13203         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
13204
13205 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
13206
13207         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
13208         MINUS_EXPR in unsigned type to avoid undefined behavior.
13209
13210 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
13211
13212         * stor-layout.c (self_referential_size): Do not promote arguments.
13213
13214 2014-10-15  Marek Polacek  <polacek@redhat.com>
13215
13216         * doc/invoke.texi: Update to reflect that GNU11 is the default
13217         mode for C.
13218         * c-common.h (c_language_kind): Update comment.
13219
13220 2014-10-15  Richard Biener  <rguenther@suse.de>
13221
13222         * hash-table.c: Include bconfig.h if building for the host.
13223         * hash-table.h: Do not include ggc.h on the host but just declare
13224         a few ggc allocation templates.
13225
13226 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
13227             Jeff Law  <law@redhat.com>
13228
13229         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
13230         multiple hard registers, use smaller mode derived from MODE.
13231
13232 2014-10-15  Andreas Schwab  <schwab@suse.de>
13233
13234         * explow.c (convert_memory_address_addr_space_1): Mark in_const
13235         as ATTRIBUTE_UNUSED.
13236
13237 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
13238
13239         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
13240         (decide_unrolling): ... this one.
13241         (peel_loops_completely): Remove.
13242         (decide_peel_simple): Remove.
13243         (decide_peel_once_rolling): Remove.
13244         (decide_peel_completely): Remove.
13245         (peel_loop_simple): Remove.
13246         (peel_loop_completely): Remove.
13247         (unroll_and_peel_loops): Rename to ...
13248         (unroll_loops): ... this one; handle only unrolling.
13249         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
13250         LPT_PEEL_SIMPLE.
13251         (UAP_PEEL): Remove.
13252         (unroll_and_peel_loops): Remove.
13253         (unroll_loops): New.
13254         * passes.def: Replace
13255         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
13256         * loop-init.c (gate_rtl_unroll_and_peel_loops,
13257         rtl_unroll_and_peel_loops): Rename to ...
13258         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
13259         (pass_rtl_unroll_and_peel_loops): Rename to ...
13260         (pass_rtl_unroll_loops): ... this one.
13261         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
13262         (make_pass_rtl_unroll_loops): New.
13263         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
13264         (canonicalize_loop_induction_variables): Update.
13265
13266 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
13267
13268         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
13269         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
13270         !TARGET_HARD_FLOAT_POSTINC.
13271         (*lsip, *ssip): new instructions.
13272
13273 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
13274
13275         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
13276         remove.
13277
13278 2014-10-14  Andrew Pinski  <apinski@cavium.com>
13279
13280         * explow.c (convert_memory_address_addr_space): Rename to ...
13281         (convert_memory_address_addr_space_1): This.  Add in_const argument.
13282         Inside a CONST RTL, permute the conversion and addition of constant
13283         for zero and sign extended pointers.
13284         (convert_memory_address_addr_space): New function.
13285
13286 2014-10-14  Andrew Pinski  <apinski@cavium.com>
13287
13288         Revert:
13289         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
13290
13291         PR middle-end/49721
13292         * explow.c (convert_memory_address_addr_space): Also permute the
13293         conversion and addition of constant for zero-extend.
13294
13295 2014-10-14  DJ Delorie  <dj@redhat.com>
13296
13297         * config/msp430/msp430-modes.def (PSI): Add.
13298
13299         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
13300         (msp430_hard_regno_nregs_with_padding): New.
13301         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
13302         (msp430_hard_regno_nregs_has_padding): New.
13303         (msp430_hard_regno_nregs_with_padding): New.
13304         (msp430_unwind_word_mode): Use PSImode instead of SImode.
13305         (msp430_addr_space_legitimate_address_p): New.
13306         (msp430_asm_integer): New.
13307         (msp430_init_dwarf_reg_sizes_extra): New.
13308         (msp430_print_operand): Use X suffix for PSImode even in small model.
13309         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
13310         (PTR_SIZE): ...but 4 bytes for EH.
13311         (SIZE_TYPE): Use __int20.
13312         (PTRDIFF_TYPE): Likewise.
13313         (INCOMING_FRAME_SP_OFFSET): Adjust.
13314         * config/msp430/msp430.md (movqi_topbyte): New.
13315         (movpsi): Use fixed suffixes.
13316         (movsipsi2): Enable for 430X, not large model.
13317         (extendhipsi2): Likewise.
13318         (zero_extendhisi2): Likewise.
13319         (zero_extendhisipsi2): Likewise.
13320         (extend_and_shift1_hipsi2): Likewise.
13321         (extendpsisi2): Likewise.
13322         (*bitbranch<mode>4_z): Fix suffix logic.
13323
13324 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
13325
13326         PR ada/62019
13327         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
13328         do not choke on null node.
13329         <VAR_DECL>: Likewise.
13330
13331 2014-10-14  DJ Delorie  <dj@redhat.com>
13332
13333         * machmode.h (int_n_data_t): New.
13334         (int_n_enabled_p): New.
13335         (int_n_data): New.
13336         * tree.c (int_n_enabled_p): New.
13337         (int_n_trees): New.
13338         (make_or_reuse_type): Check for all __intN types, not just
13339         __int128.
13340         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
13341         entries.
13342         * tree.h (int128_integer_type_node): Remove.
13343         (int128_unsigned_type_node): Remove.
13344         (int_n_trees_t): New.
13345         (int_n_enabled_p): New.
13346         (int_n_trees): New.
13347         * toplev.c (standard_type_bitsize): New.
13348         (do_compile): Check which __intN types are enabled for the current
13349         run.
13350         * builtin-types.def (BT_INT128): Remove.
13351         (BT_UINT128): Remove.
13352         * machmode.def: Add macro to create __int128 for all targets.
13353         * stor-layout.c (mode_for_size): Support __intN types.
13354         (smallest_mode_for_size): Likewise.
13355         (initialize_sizetypes): Support __intN types.
13356         * genmodes.c (struct mode_data): Add int_n field.
13357         (blank_mode): Likewise.
13358         (INT_N): New.
13359         (make_int_n): New.
13360         (emit_insn_modes_h): Count __intN entries and define
13361         NUM_INT_N_ENTS.
13362         (emit_mode_int_n): New.
13363         (emit_insn_modes_c): Call it.
13364         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
13365         types, not just __int128.
13366         * tree-core.h (integer_type_kind): Remove __int128-specific
13367         entries, reserve spots for __intN entries.
13368
13369         * config/msp430/msp430-modes.def (PSI): Add.
13370
13371 2014-10-14  Kito Cheng  <kito@0xlab.org>
13372
13373         * ira.c: Fix typo in comment.
13374         * ira.h: Ditto.
13375         * ira-build.c: Ditto.
13376         * ira-color.c: Ditto.
13377         * ira-emit.c: Ditto.
13378         * ira-int.h: Ditto.
13379         * ira-lives.c: Ditto.
13380
13381 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
13382
13383         PR rtl-optimization/63475
13384         * alias.c (true_dependence_1): Always use get_addr to extract
13385         true address operands from x_addr and mem_addr.  Use extracted
13386         address operands to check for references with alignment ANDs.
13387         Use extracted address operands with find_base_term and
13388         base_alias_check. For noncanonicalized operands call canon_rtx with
13389         extracted address operand.
13390         (write_dependence_1): Ditto.
13391         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
13392
13393 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
13394
13395         PR target/63534
13396         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
13397         __morestack local.
13398
13399 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13400             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13401             Anna Tikhonova  <anna.tikhonova@intel.com>
13402             Ilya Tocar  <ilya.tocar@intel.com>
13403             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13404             Ilya Verbin  <ilya.verbin@intel.com>
13405             Kirill Yukhin  <kirill.yukhin@intel.com>
13406             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13407
13408         * config/i386/i386.c
13409         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
13410         (ix86_expand_int_vcond): Ditto.
13411
13412 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13413             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13414             Anna Tikhonova  <anna.tikhonova@intel.com>
13415             Ilya Tocar  <ilya.tocar@intel.com>
13416             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13417             Ilya Verbin  <ilya.verbin@intel.com>
13418             Kirill Yukhin  <kirill.yukhin@intel.com>
13419             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13420
13421         * config/i386/i386.c
13422         (emit_reduc_half): Handle V64QI and V32HI mode.
13423         * config/i386/sse.md
13424         (define_mode_iterator VI_AVX512BW): New.
13425         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
13426
13427 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13428             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13429             Anna Tikhonova  <anna.tikhonova@intel.com>
13430             Ilya Tocar  <ilya.tocar@intel.com>
13431             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13432             Ilya Verbin  <ilya.verbin@intel.com>
13433             Kirill Yukhin  <kirill.yukhin@intel.com>
13434             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13435
13436         * config/i386/sse.md
13437         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
13438
13439 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13440             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13441             Anna Tikhonova  <anna.tikhonova@intel.com>
13442             Ilya Tocar  <ilya.tocar@intel.com>
13443             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13444             Ilya Verbin  <ilya.verbin@intel.com>
13445             Kirill Yukhin  <kirill.yukhin@intel.com>
13446             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13447
13448         * config/i386/i386.c
13449         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
13450         * config/i386/sse.md
13451         (define_mode_iterator VI): Add V64QI and V32HI modes.
13452
13453 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13454             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13455             Anna Tikhonova  <anna.tikhonova@intel.com>
13456             Ilya Tocar  <ilya.tocar@intel.com>
13457             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13458             Ilya Verbin  <ilya.verbin@intel.com>
13459             Kirill Yukhin  <kirill.yukhin@intel.com>
13460             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13461
13462         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
13463
13464 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13465             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13466             Anna Tikhonova  <anna.tikhonova@intel.com>
13467             Ilya Tocar  <ilya.tocar@intel.com>
13468             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13469             Ilya Verbin  <ilya.verbin@intel.com>
13470             Kirill Yukhin  <kirill.yukhin@intel.com>
13471             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13472
13473         * config/i386/sse.md
13474         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
13475         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
13476
13477 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13478             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13479             Anna Tikhonova  <anna.tikhonova@intel.com>
13480             Ilya Tocar  <ilya.tocar@intel.com>
13481             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13482             Ilya Verbin  <ilya.verbin@intel.com>
13483             Kirill Yukhin  <kirill.yukhin@intel.com>
13484             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13485
13486         * config/i386/sse.md
13487         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
13488         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
13489
13490 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13491             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13492             Anna Tikhonova  <anna.tikhonova@intel.com>
13493             Ilya Tocar  <ilya.tocar@intel.com>
13494             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13495             Ilya Verbin  <ilya.verbin@intel.com>
13496             Kirill Yukhin  <kirill.yukhin@intel.com>
13497             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13498
13499         * config/i386/sse.md
13500         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
13501         (define_mode_iterator VI2_AVX2): Add V32HI mode.
13502         (define_expand "mul<mode>3<mask_name>"): Add masking.
13503         (define_insn "*mul<mode>3<mask_name>"): Ditto.
13504         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
13505         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
13506         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
13507         (define_mode_attr SDOT_PMADD_SUF): Ditto.
13508         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
13509         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
13510         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
13511         (define_insn "avx2_packusdw"): Delete.
13512         (define_insn "sse4_1_packusdw"): Ditto.
13513         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
13514
13515 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13516             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13517             Anna Tikhonova  <anna.tikhonova@intel.com>
13518             Ilya Tocar  <ilya.tocar@intel.com>
13519             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13520             Ilya Verbin  <ilya.verbin@intel.com>
13521             Kirill Yukhin  <kirill.yukhin@intel.com>
13522             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13523
13524         * config/i386/sse.md
13525         (define_insn "vec_dup<mode>"): Update constraints.
13526
13527 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13528             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13529             Anna Tikhonova  <anna.tikhonova@intel.com>
13530             Ilya Tocar  <ilya.tocar@intel.com>
13531             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13532             Ilya Verbin  <ilya.verbin@intel.com>
13533             Kirill Yukhin  <kirill.yukhin@intel.com>
13534             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13535
13536         * config/i386/sse.md
13537         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
13538         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
13539         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
13540
13541 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13542             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13543             Anna Tikhonova  <anna.tikhonova@intel.com>
13544             Ilya Tocar  <ilya.tocar@intel.com>
13545             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13546             Ilya Verbin  <ilya.verbin@intel.com>
13547             Kirill Yukhin  <kirill.yukhin@intel.com>
13548             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13549
13550         * config/i386/sse.md
13551         (define_expand "mul<mode>3<mask_name>"): Add masking.
13552
13553 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13554             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13555             Anna Tikhonova  <anna.tikhonova@intel.com>
13556             Ilya Tocar  <ilya.tocar@intel.com>
13557             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13558             Ilya Verbin  <ilya.verbin@intel.com>
13559             Kirill Yukhin  <kirill.yukhin@intel.com>
13560             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13561
13562         * config/i386/sse.md
13563         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
13564         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
13565
13566 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13567             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13568             Anna Tikhonova  <anna.tikhonova@intel.com>
13569             Ilya Tocar  <ilya.tocar@intel.com>
13570             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13571             Ilya Verbin  <ilya.verbin@intel.com>
13572             Kirill Yukhin  <kirill.yukhin@intel.com>
13573             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13574
13575         * config/i386/sse.md
13576         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
13577         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
13578         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
13579         Ditto.
13580
13581 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13582             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13583             Anna Tikhonova  <anna.tikhonova@intel.com>
13584             Ilya Tocar  <ilya.tocar@intel.com>
13585             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13586             Ilya Verbin  <ilya.verbin@intel.com>
13587             Kirill Yukhin  <kirill.yukhin@intel.com>
13588             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13589
13590         * config/i386/sse.md
13591         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
13592         use VF_128_256 mode iterator and update assembler emit code.
13593         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
13594         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
13595         Add masking, use VF_128_256 mode iterator.
13596         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
13597         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
13598         Add masking, use VF_128_256 mode iterator and update assembler emit
13599         code.
13600         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
13601         (define_mode_attr avx512flogicsuff): Delete.
13602         (define_insn "avx512f_<logic><mode>"): Ditto.
13603         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
13604         MODE_TI.
13605         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
13606
13607 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13608             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13609             Anna Tikhonova  <anna.tikhonova@intel.com>
13610             Ilya Tocar  <ilya.tocar@intel.com>
13611             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13612             Ilya Verbin  <ilya.verbin@intel.com>
13613             Kirill Yukhin  <kirill.yukhin@intel.com>
13614             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13615
13616         * config/i386/sse.md
13617         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
13618         (define_expand "vashr<mode>3<mask_name>"): Add masking,
13619         use VI12_128 mode iterator.
13620         (define_expand "ashrv2di3<mask_name>"): New.
13621
13622 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13623             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13624             Anna Tikhonova  <anna.tikhonova@intel.com>
13625             Ilya Tocar  <ilya.tocar@intel.com>
13626             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13627             Ilya Verbin  <ilya.verbin@intel.com>
13628             Kirill Yukhin  <kirill.yukhin@intel.com>
13629             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13630
13631         * config/i386/i386.c
13632         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
13633         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
13634         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
13635         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
13636         CODE_FOR_avx512vl_ucmpv4si3_mask.
13637         * config/i386/sse.md
13638         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
13639         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
13640         (define_insn
13641         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
13642         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
13643         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
13644         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
13645         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
13646         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
13647
13648 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13649             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13650             Anna Tikhonova  <anna.tikhonova@intel.com>
13651             Ilya Tocar  <ilya.tocar@intel.com>
13652             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13653             Ilya Verbin  <ilya.verbin@intel.com>
13654             Kirill Yukhin  <kirill.yukhin@intel.com>
13655             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13656
13657         * config/i386/sse.md
13658         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
13659         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
13660         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
13661         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
13662         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
13663         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
13664         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
13665         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
13666         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
13667
13668 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13669             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13670             Anna Tikhonova  <anna.tikhonova@intel.com>
13671             Ilya Tocar  <ilya.tocar@intel.com>
13672             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13673             Ilya Verbin  <ilya.verbin@intel.com>
13674             Kirill Yukhin  <kirill.yukhin@intel.com>
13675             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13676
13677         * config/i386/sse.md
13678         (define_insn "avx512f_blendm<mode>"): Delete.
13679         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
13680         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
13681         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
13682         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
13683         (define_insn
13684         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
13685         Remove.
13686         (define_insn
13687         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
13688         New.
13689         (define_insn
13690         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
13691         Ditto.
13692         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
13693         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
13694         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
13695         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
13696         Delete.
13697         (define_insn
13698         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
13699         New.
13700         (define_insn
13701         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
13702         Ditto.
13703         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
13704         Delete.
13705         (define_insn
13706         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
13707         New.
13708         (define_insn
13709         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
13710         Ditto.
13711
13712 2014-10-14  Richard Biener  <rguenther@suse.de>
13713
13714         PR tree-optimization/63512
13715         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
13716         modified.
13717
13718 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
13719
13720         PR target/63260
13721         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
13722         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
13723         of FPSCR.
13724         (negsf2_i): Rename to *negsf2_i.
13725         (abssf2_i): Rename to *abssf2_i.
13726         (negdf2_i): Rename to *negdf2_i.
13727         (absdf2_i): Rename to *absdf2_i.
13728
13729 2014-10-14  Felix Yang  <felix.yang@huawei.com>
13730             Jeff Law  <law@redhat.com>
13731
13732         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
13733         "replace" into boolean bitfields; turn member "loop_depth" into a short
13734         integer; add new member "no_equiv" and "reserved".
13735         (no_equiv): Set no_equiv of struct equivalence if register is marked
13736         as having no known equivalence.
13737         (update_equiv_regs): Check all definitions for a multiple-set
13738         register to make sure that the RHS have the same value.
13739
13740 2014-10-13  Richard Henderson  <rth@redhat.com>
13741
13742         * combine-stack-adj.c (no_unhandled_cfa): New.
13743         (maybe_merge_cfa_adjust): New.
13744         (combine_stack_adjustments_for_block): Use them.
13745
13746 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
13747
13748         * Makefile.in (TAGS): Tag ../include files.
13749
13750 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13751
13752         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
13753         to rs6000_dbx_register_number.
13754         (DWARF_FRAME_REGNUM): Redefine as identity map.
13755         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
13756         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
13757         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
13758         argument to handle .debug_frame and .eh_frame directly.  Always
13759         translate SPE high register numbers.  Add special treatment for CR,
13760         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
13761
13762         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
13763         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
13764         (RS6000_USE_DWARF_NUMBERING): Define.
13765         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
13766         (RS6000_USE_DWARF_NUMBERING): Define.
13767         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
13768         (RS6000_USE_DWARF_NUMBERING): Define.
13769         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
13770         (RS6000_USE_DWARF_NUMBERING): Define.
13771         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
13772         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
13773
13774 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
13775
13776         * config/i386/i386.c (ix86_address_cost): Lower cost for
13777         when address contains GOT register.
13778
13779 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
13780             Vladimir Makarov  <vmakarov@redhat.com>
13781
13782         PR target/8340
13783         PR middle-end/47602
13784         PR rtl-optimization/55458
13785         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
13786         (ix86_init_pic_reg): New.
13787         (ix86_select_alt_pic_regnum): Add check on pseudo register.
13788         (ix86_save_reg): Likewise.
13789         (ix86_expand_prologue): Remove PIC register initialization
13790         now performed in ix86_init_pic_reg.
13791         (ix86_output_function_epilogue): Add check on pseudo register.
13792         (set_pic_reg_ever_alive): New.
13793         (legitimize_pic_address): Replace df_set_regs_ever_live with new
13794         set_pic_reg_ever_alive.
13795         (legitimize_tls_address): Likewise.
13796         (ix86_pic_register_p): New check.
13797         (ix86_delegitimize_address): Add check on pseudo register.
13798         (ix86_expand_call): Insert move from pseudo PIC register to ABI
13799         defined REAL_PIC_OFFSET_TABLE_REGNUM.
13800         (TARGET_INIT_PIC_REG): New.
13801         (TARGET_USE_PSEUDO_PIC_REG): New.
13802         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
13803         if pic_offset_table_rtx exists.
13804         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
13805         Document.
13806         * doc/tm.texi: Regenerate.
13807         * function.c (assign_parms): Generate pseudo register for PIC.
13808         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
13809         register.
13810         * ira-color.c (color_pass): Add check on pseudo register.
13811         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
13812         register.
13813         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
13814         register.
13815         (ira): Add target specific PIC register initialization.
13816         (do_reload): Keep PIC pseudo register.
13817         * lra-assigns.c (spill_for): Add checks on pseudo register.
13818         * lra-constraints.c (contains_symbol_ref_p): New.
13819         (lra_constraints): Enable lra risky transformations when PIC is pseudo
13820         register.
13821         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
13822         * target.def (use_pseudo_pic_reg): New.
13823         (init_pic_reg): New.
13824
13825 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
13826
13827         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
13828         Remove m_SILVERMONT and m_INTEL from the tune.
13829
13830 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13831
13832         PR libfortran/63471
13833         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
13834         when _HPUX_SOURCE is defined.
13835
13836 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
13837
13838         PR tree-optimization/62127
13839         * tree.c (remap_type_1): When remapping array, remap
13840         also its type.
13841
13842 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
13843
13844         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
13845         longer impact parallelization.
13846
13847 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
13848
13849         PR bootstrap/63496
13850         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
13851
13852 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
13853
13854         * asan.c (instrument_derefs): BIT_FIELD_REF added.
13855
13856 2014-10-13  Richard Biener  <rguenther@suse.de>
13857
13858         PR tree-optimization/63419
13859         * gimple-fold.h (gimple_convert): New function.
13860         * gimple-fold.c (gimple_convert): Likewise.
13861         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
13862         to split out required conversions early.
13863
13864 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
13865
13866         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
13867         Add the parts of an insn in reverse order, with the pattern at
13868         the top of the queue.  Detect when we're iterating over a SEQUENCE
13869         pattern and in that case just consider patterns of subinstructions.
13870
13871 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
13872
13873         PR target/59401
13874         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
13875         of rtx.
13876         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
13877         insn walking.
13878         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
13879         address.  Use def chains to handle GBR clobbering call insns.
13880
13881 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
13882
13883         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
13884         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
13885         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
13886         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
13887         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
13888         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
13889         * doc/gty.texi (for_user): Document new option.
13890         * gengtype.c (create_user_defined_type): Don't try to get a struct for
13891         char.
13892         (walk_type): Don't error out on for_user option.
13893         (write_func_for_structure): Emit user marking routines if requested by
13894         for_user option.
13895         (write_local_func_for_structure): Likewise.
13896         (main): Mark types with for_user option as used.
13897         * ggc.h (gt_pch_nx): Add overload for unsigned int.
13898         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
13899         * hash-table.h (ggc_hasher): New struct.
13900         (hash_table::create_ggc): New function.
13901         (gt_pch_nx): New overload for hash_table.
13902
13903 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
13904
13905         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
13906         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
13907         * config/sh/sh.c: Likewise.
13908         * config/sh/sh-mem.cc: Likewise.
13909         * config/sh/sh.md: Likewise.
13910         * config/sh/predicates.md: Likewise.
13911         * config/sh/sync.md: Likewise.
13912
13913 2014-10-11  Martin Liska  <mliska@suse.cz>
13914
13915         PR middle-end/63376
13916         * cgraphunit.c (symbol_table::process_new_functions): Missing call
13917         for call_cgraph_insertion_hooks added.
13918
13919 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
13920
13921         PR c/63495
13922         * stor-layout.c (min_align_of_type): Don't decrease alignment
13923         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
13924         TYPE_USER_ALIGN is set.
13925
13926 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
13927
13928         PR rtl-optimization/63483
13929         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
13930         references when alignment ANDs are involved.
13931         (write_dependence_p): Ditto.
13932         (may_alias_p): Ditto.
13933
13934 2014-10-10  Marek Polacek  <polacek@redhat.com>
13935
13936         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
13937         * doc/invoke.texi: Document -fsanitize=object-size.
13938         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
13939         or it into SANITIZE_UNDEFINED.
13940         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
13941         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
13942         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
13943         * opts.c (common_handle_option): Handle -fsanitize=object-size.
13944         * ubsan.c: Include tree-object-size.h.
13945         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
13946         (ubsan_expand_bounds_ifn): Use false instead of 0.
13947         (ubsan_expand_objsize_ifn): New function.
13948         (instrument_object_size): New function.
13949         (pass_ubsan::execute): Add object size instrumentation.
13950         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
13951
13952 2014-10-10  Richard Henderson  <rth@redhat.com>
13953
13954         PR target/63404
13955         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
13956         Restrict the set of expressions we're willing to move.
13957
13958 2014-10-10  Jeff Law  <law@redhat.com>
13959
13960         * ira.c (struct equivalence): Promote INIT_INSNs field to
13961         an rtx_insn_list.  Add comments.
13962         (no_equiv): Promote LIST to an rtx_insn_list.  Update
13963         testing for and creating the special marker.  Use methods
13964         to extract the insn and next pointers.  Promote INSN to an
13965         rtx_insn.
13966         (update_equiv_regs): Update test for special marker in the
13967         INIT_INSNs list.
13968
13969 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13970
13971         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
13972         * configure: Regenerate.
13973         * config/aarch64/aarch64.c (aarch64_override_options): Handle
13974         TARGET_FIX_ERR_A53_835769_DEFAULT.
13975         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
13976         value to 2.
13977         * doc/install.texi (aarch64*-*-*): Document
13978         new --enable-fix-cortex-a53-835769 option.
13979
13980 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13981             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13982
13983         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
13984         (ADJUST_INSN_LENGTH): Define.
13985         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
13986         * config/aarch64/aarch64.c (is_mem_p): New function.
13987         (is_memory_op): Likewise.
13988         (aarch64_prev_real_insn): Likewise.
13989         (is_madd_op): Likewise.
13990         (dep_between_memop_and_curr): Likewise.
13991         (aarch64_madd_needs_nop): Likewise.
13992         (aarch64_final_prescan_insn): Likewise.
13993         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
13994         and -mno-fix-cortex-a53-835769 options.
13995
13996 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
13997
13998         PR tree-optimization/63464
13999         * tree-switch-conversion.c (struct case_bit_test): Remove
14000         hi and lo fields, add wide_int mask field.
14001         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
14002         hi/lo fields into wide_int mask operations, optimize by pretending
14003         minval to be 0 if maxval is small enough.
14004         (process_switch): Adjust caller.
14005
14006 2014-10-10  Richard Biener  <rguenther@suse.de>
14007
14008         PR tree-optimization/63379
14009         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
14010         a neutral operand for min/max when it is not a reduction chain.
14011
14012 2014-10-10  Richard Biener  <rguenther@suse.de>
14013
14014         PR tree-optimization/63476
14015         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
14016         (BB_LIVE_VOP_ON_EXIT): New define.
14017         (create_expression_by_pieces): Assign VUSEs to stmts.
14018         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
14019         (pass_pre::execute): Assert virtual SSA form is up-to-date
14020         after insertion.
14021
14022 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
14023
14024         * lra-assigns.c (assign_by_spills): Error out on spill failure.
14025
14026 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
14027
14028         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
14029         assertion.
14030
14031 2014-10-09  Richard Biener  <rguenther@suse.de>
14032
14033         PR tree-optimization/63380
14034         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
14035         may trap.
14036
14037 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
14038
14039         * config/avr/avr.opt (mmcu=): Change to have a string value.
14040         (mn-flash=, mskip-bug, march=, mrmw): New options.
14041         (HeaderInclude): New.
14042         (mmcu=): Remove Var / Init clauses.
14043         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
14044         -specs option.
14045         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
14046         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
14047         (SYMBOL_FLAG_IO_LOW): Define.
14048         (avr_device_to_as, avr_device_to_ld): Don't declare.
14049         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
14050         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
14051         (EXTRA_SPEC_FUNCTIONS): Don't define.
14052         (ASM_SPEC): Translate -arch= option to -mmcu= option.
14053         (LINK_SPEC): Translate -arch= option to -m= option.
14054         Don't use device_to_ld / device_to_data_start.
14055         (STARTFILE_SPEC): Now empty.
14056         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
14057         * config/avr/gen-avr-mmcu-specs.c: New file.
14058         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
14059         (s-device-specs): Likewise.
14060         (GCC_PASSES): Add s-device-specs.
14061         (install-driver): Depend on install-device-specs.
14062         (install-device-specs): New rule.
14063         * config/avr/avr.c (avr_option_override): Look up mcu arch by
14064         avr_arch_index and provide fallback initialization for avr_n_flash.
14065         (varasm.h): #include.
14066         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
14067         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
14068         (avr_attribute_table): Add "io", "address" and "io_low".
14069         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
14070         Add special handling for symbols with "io" and/or "address" attributes.
14071         (avr_asm_asm_output_aligned_bss): New function.
14072         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
14073         as appropriate.  Handle io_low attribute.
14074         (avr_out_sbxx_branch): Handle symbolic io addresses.
14075         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
14076         avr_n_flash instead of avr_current_device->n_flash.
14077         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
14078         (avr_emit_movmemhi): Likewise.
14079         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
14080         Use TARGET_RMW instead of avr_current_device->dev_attributes.
14081         Don't define avr_current_device->macro (that's the specfile's job).
14082         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
14083         * config/avr/avr.c (avr_2word_insn_p): Likewise.
14084         * config/avr/avr.md (*cpse.ne): Likewise.
14085         (mov<mode>): Use avr_eval_addr_attrib.
14086         (cbi): Change constraint for low_io_address_operand operand to "i".
14087         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
14088         * config/avr/predicates.md (io_address_operand):
14089         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
14090         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
14091         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
14092         Update prototype.
14093         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
14094         * config/avr/genmultilib.awk: Use -march=.
14095         Remove Multilib matches processing.
14096         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
14097         * config/avr/avr-arch.h: Add double include guard.
14098         (avr_mcu_t) <library_name>: Update comment.
14099         * config/avr/driver-avr.c (avr_device_to_as): Delete.
14100         (avr_device_to_ld, avr_device_to_data_start): Likewise.
14101         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
14102         (avr_device_to_sp8): Likewise.
14103         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
14104
14105         * doc/extend.texi (io, address): Document new AVR variable attributes.
14106         (io_low): Likewise.
14107
14108 2014-10-09  Marek Polacek  <polacek@redhat.com>
14109
14110         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
14111
14112 2014-10-08  Richard Biener  <rguenther@suse.de>
14113
14114         PR tree-optimization/61969
14115         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
14116         variables.
14117
14118 2014-10-09  Richard Biener  <rguenther@suse.de>
14119
14120         PR tree-optimization/63445
14121         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
14122         overflow for non-equality compares.
14123
14124 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
14125
14126         PR rtl-optimization/57003
14127         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14128         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
14129         killing regs_invalidated_by_call.
14130
14131 2014-10-08  Teresa Johnson  <tejohnson@google.com>
14132
14133         PR bootstrap/63432.
14134         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
14135         (ssa_fix_duplicate_block_edges): Invoke it.
14136         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
14137
14138 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
14139
14140         PR target/52941
14141         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
14142         atomic_fetch_<fetchop_name>si_hard,
14143         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
14144         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
14145         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
14146         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
14147
14148 2014-10-08  Rong Xu  <xur@google.com>
14149
14150         * gcov-tool.c (profile_overlap): New driver function
14151         to compute profile overlap.
14152         (print_overlap_usage_message): New.
14153         (overlap_usage): New.
14154         (do_overlap): New.
14155         (print_usage): Add calls to overlap function.
14156         (main): Ditto.
14157         * doc/gcov-tool.texi: Add documentation.
14158
14159 2014-10-08  Steve Ellcey  <sellcey@mips.com>
14160
14161         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
14162         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
14163
14164 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
14165
14166         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
14167         pattern matching of MEM_REF.
14168         (check_stmt_for_type_change): Update.
14169
14170 2014-10-08  Steve Ellcey  <sellcey@mips.com>
14171
14172         * config/mips/linux64.h: Remove.
14173         * config/mips/gnu-user64.h: Remove.
14174         * gcc.config (mips*-*-*): Remove references to linux64.h and
14175         gnu-user64.h
14176         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
14177         with modified version from gnu-user64.h.
14178         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
14179         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
14180         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
14181         linux64.h.
14182         (GNU_USER_LINK_EMULATION64): Ditto.
14183         (GNU_USER_LINK_EMULATIONN32): Ditto.
14184         (GLIBC_DYNAMIC_LINKER32): Ditto.
14185         (GLIBC_DYNAMIC_LINKER64): Ditto.
14186         (GLIBC_DYNAMIC_LINKERN32): Ditto.
14187         (UCLIBC_DYNAMIC_LINKER32): Ditto.
14188         (UCLIBC_DYNAMIC_LINKER64): Ditto.
14189         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
14190         (BIONIC_DYNAMIC_LINKERN32): Ditto.
14191         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
14192         (GLIBC_DYNAMIC_LINKER): Delete.
14193         (UCLIBC_DYNAMIC_LINKER): Delete.
14194
14195 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
14196             Richard Biener  <rguenther@suse.de>
14197
14198         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
14199         Get address space from operand 0 (BASE).
14200
14201 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
14202
14203         PR target/61387
14204         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
14205
14206 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
14207
14208         * dwarf2out.c: Remove current_function_has_inlines.
14209         (gen_subprogram_die): Same.
14210         (gen_inlined_subroutine_die): Same.
14211
14212 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
14213
14214         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
14215         type.
14216         (_addcarry_u64): Ditto.
14217         (_addcarryx_u64): Ditto.
14218
14219 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
14220
14221         * cgraph.h (cgraph_node::get_fun): Declare.
14222         * cgraph.c (cgraph_node::get_fun): New method.
14223         * ipa-inline.c (can_inline_edge_p): Use it.
14224
14225 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
14226
14227         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
14228         and -ftrapping-math.
14229         * lto-wrapper.c (merge_and_complain): Likewise.
14230         (run_gcc): Likewise.
14231
14232 2014-10-06  Rong Xu  <xur@google.com>
14233
14234         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
14235         * tree-profile.c: (params.h): New include.
14236         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
14237         and __gcov_indirect_call_topn_counters for
14238         indirect_call_topn_profile.
14239         (gimple_init_edge_profiler): New decls for
14240         __gcov_indirect_call_topn_profiler.
14241         (gimple_gen_ic_profiler): Generate the correct profiler call.
14242         (gimple_gen_ic_func_profiler): Fix format.
14243         * value-prof.c (params.h): New include.
14244         (dump_histogram_value): Hanlde indirect_call_topn counters.
14245         (stream_in_histogram_value): Ditto.
14246         (gimple_indirect_call_to_profile): Use indirect_call_topn
14247         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
14248         (gimple_find_values_to_profile): Hanlde indirect_call_topn
14249         counters.
14250         * value-prof.h (enum hist_type): Histrogram type for
14251         indirect_call_topn counters.
14252         * profile.c (instrument_values): Instrument
14253         indirect_call_topn counters.
14254
14255 2014-10-06  Rong Xu  <xur@google.com>
14256
14257         * Makefile.in: Fix dependence.
14258         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
14259         indirect call topn profiler.
14260         * gcov-io.h: Ditto.
14261
14262 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
14263
14264         * calls.c (expand_call): Do not use the target as the return slot if
14265         it is not sufficiently aligned.
14266
14267 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14268
14269         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
14270         discussion of permutes and why we don't handle them.
14271
14272 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
14273
14274         * config/sparc/predicates.md (int_register_operand): Delete.
14275
14276 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
14277
14278         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
14279
14280 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
14281
14282         * ubsan.h (ubsan_get_source_location): New prototype.
14283         * ubsan.c (ubsan_source_location_type): New variable.
14284         Function renamed to ...
14285         (ubsan_get_source_location_type): ... this.  Cache
14286         return value in ubsan_source_location_type variable.
14287         (ubsan_source_location, ubsan_create_data): Use
14288         ubsan_get_source_location_type instead of
14289         ubsan_source_location_type.
14290         * asan.c (asan_protect_global): Don't protect globals
14291         with ubsan_get_source_location_type () type.
14292         (asan_add_global): Provide global decl location info
14293         if possible.
14294
14295 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
14296
14297         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
14298         sanity check.
14299
14300 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
14301
14302         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
14303         on size.
14304         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
14305         into vptr pointer.
14306         (ipa_polymorphic_call_context::dump): Fix formating.
14307         (walk_ssa_copies): Add logic avoiding loops; update uses.
14308         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
14309
14310 2014-10-02  Mark Wielaard  <mjw@redhat.com>
14311
14312         PR debug/63239
14313         * dwarf2out.c (gen_subprogram_die): When a member function is
14314         explicitly deleted then add a DW_AT_GNU_deleted attribute.
14315         * langhooks.h (struct lang_hooks_for_decls): Add
14316         function_decl_deleted_p langhook.
14317         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
14318         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
14319
14320 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
14321
14322         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
14323         NULL pointer checks.
14324         (ipa_polymorphic_call_context::get_dynamic_type): Return true
14325         if type doesn't change.
14326         * cgraph.h (cgraph_indirect_call_info): New flag.
14327         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
14328         (cgraph_node::dump): Dump it.
14329         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
14330         of context.get_dynamic_type.
14331         (ipa_make_edge_direct_to_target): Do not speculate
14332         edge that is already speuclative.
14333         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
14334         speculate to __builtin_unreachable
14335         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
14336         vptr_changed.
14337         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
14338
14339 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
14340
14341         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
14342         get_dynamic_type; drop TODO.
14343         * ipa-polymorphic-call.c
14344         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
14345         for otr_type to be unknown.
14346
14347 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
14348
14349         * common/config/score/score-common.c: Remove.
14350         * config.gcc: Remove support for score-*.
14351         * config/score/constraints.md: Remove.
14352         * config/score/elf.h: Remove.
14353         * config/score/predicates.md: Remove.
14354         * config/score/score-conv.h: Remove.
14355         * config/score/score-generic.md: Remove.
14356         * config/score/score-modes.def: Remove.
14357         * config/score/score-protos.h: Remove.
14358         * config/score/score.c: Remove.
14359         * config/score/score.h: Remove.
14360         * config/score/score.md: Remove.
14361         * config/score/score.opt: Remove.
14362         * doc/md.texi: Don't document score-*.
14363
14364 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
14365
14366         PR pch/63429
14367         * genconditions.c: Directly include ggc.h before rtl.h.
14368
14369 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
14370
14371         * ipa-polymorphic-call.c
14372         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
14373         code determining speculative type.
14374         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
14375
14376 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14377
14378         * altivec.md (altivec_lvsl): New define_expand.
14379         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
14380         (altivec_lvsr): New define_expand.
14381         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
14382         * rs6000.c (rs6000_expand_builtin): Change to use
14383         altivec_lvs[lr]_direct; remove commented-out code.
14384
14385 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14386
14387         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14388         Issue a warning message when vec_lvsl or vec_lvsr is used with a
14389         little endian target.
14390
14391 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14392
14393         * tree-pretty-print.c (dump_location): Make it extern. Dump also
14394         the column.
14395         * tree-pretty-print.h (dump_location): Declare.
14396         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
14397         (pp_gimple_stmt_1): Likewise.
14398         (dump_implicit_edges): Likewise.
14399         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
14400         LOCATION_LINE.
14401
14402
14403 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
14404
14405         * gcc.c (driver::global_initializations): Remove "const" so
14406         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
14407         and decoded_options_count.
14408
14409 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
14410
14411         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
14412         macro.
14413         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
14414         TARGET_E500_DOUBLE case here.
14415
14416 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
14417
14418         PR c++/54427
14419         PR c++/57198
14420         PR c++/58845
14421         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
14422
14423 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
14424
14425         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
14426         * lto-cgraph.c (lto_output_edge, input_edge): Stream
14427         in_polymorphic_cdtor
14428         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
14429         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
14430         * cgraphclones.c (cgraph_edge::clone): Likewise.
14431         * ipa-prop.c (update_jump_functions_after_inlining,
14432         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
14433         to possible_dynamic_type_change.
14434         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
14435         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
14436         IN_POLY_CDOTR argument.
14437
14438         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
14439         for BASE and OUTER_TYPE being NULL.
14440         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
14441         in_poly_cdtor parameter.
14442
14443 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
14444
14445         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
14446         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
14447         TARGET_AVX512F.
14448         (expand_vec_perm_1): Likewise.
14449
14450 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
14451             Uros Bizjak  <ubizjak@gmail.com>
14452
14453         PR tree-optimization/61403
14454         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
14455         error in comment.  Also optimize 256-bit vectors for AVX2
14456         or AVX (floating vectors only), provided the first permutation
14457         can be performed in one insn.
14458
14459 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
14460
14461         * gcc.c (class driver): New class.
14462         (main): Reimplement in terms of driver::main, moving most of the
14463         locals to be locals within individual methods of class driver.
14464         The remaining locals "explicit_link_files", "decoded_options" and
14465         "decoded_options_count" are used by multiple driver:: methods, and
14466         so become member data.  Doing so isolates the argc/argv reads and
14467         writes.  Replace "goto out" with a special exit code from
14468         new method driver::prepare_infiles.  Split out the old
14469         implementation of main into the following...
14470         (driver::main): New function, corresponding to the old "main"
14471         implementation.
14472         (driver::set_progname): New function, taken from the old
14473         "main" implementation.
14474         (driver::expand_at_files): Likewise.
14475         (driver::decode_argv): Likewise.
14476         (driver::global_initializations): Likewise.
14477         (driver::build_multilib_strings): Likewise.
14478         (driver::set_up_specs): Likewise.
14479         (driver::putenv_COLLECT_GCC): Likewise.
14480         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
14481         (driver::handle_unrecognized_options): Likewise.
14482         (driver::maybe_print_and_exit): Likewise.
14483         (driver::prepare_infiles): Likewise.
14484         (driver::do_spec_on_infiles): Likewise.
14485         (driver::maybe_run_linker): Likewise.
14486         (driver::final_actions): Likewise.
14487         (driver::get_exit_code): Likewise.
14488
14489 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
14490
14491         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
14492         don't emit empty ctors.
14493
14494 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
14495
14496         * convert.c (convert_to_integer): Do not introduce useless conversions
14497         between integral types.
14498
14499 2014-10-03  David Sherwood  <david.sherwood@arm.com>
14500
14501         * ira-int.h (ira_allocno): Mark hard_regno as signed.
14502
14503 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
14504
14505         * lra-constraints.c (inherit_in_ebb): Handle calls with
14506         multiple return values.
14507         * caller-save.c (save_call_clobbered_regs): Likewise.
14508
14509 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
14510
14511         * tree-vect-data-refs.c (vect_permute_load_chain,
14512         vect_shift_permute_load_chain): Fix a typo in temporary var names,
14513         suffle3 to shuffle3.
14514
14515         PR libgomp/61200
14516         * omp-low.c (taskreg_contexts): New variable.
14517         (scan_omp_parallel): Push newly created context into taskreg_contexts
14518         vector and move record layout code to finish_taskreg_scan.
14519         (scan_omp_task): Likewise.
14520         (finish_taskreg_scan): New function.
14521         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
14522         vector elements and release it.
14523
14524         PR target/62128
14525         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
14526         of palignr arguments can't be used due to min 0 or max - min
14527         too high, try also op0, op1 order of palignr arguments.
14528
14529 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
14530
14531         * cgraph.h (ipa_polymorphic_call_context):
14532         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
14533         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
14534         * ipa-polymorphic-call.c
14535         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
14536         past end of dynamic types.
14537         (ipa_polymorphic_call_context::stream_out,
14538         speculative_outer_type): Stream dynamic flag.
14539         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
14540         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
14541         Clear DYNAMIC.
14542         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
14543         set it.
14544         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
14545         * ipa-prop.c (update_jump_functions_after_inlining,
14546         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
14547
14548 2014-10-02  Teresa Johnson  <tejohnson@google.com>
14549
14550         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
14551         up when synthesizing counts to avoid rounding errors.
14552
14553 2014-10-02  Teresa Johnson  <tejohnson@google.com>
14554
14555         PR middle-end/63422
14556         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
14557         asserts to handle incoming insanities.
14558
14559 2014-10-02  Martin Jambor  <mjambor@suse.cz>
14560
14561         PR tree-optimization/63375
14562         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
14563         references.
14564
14565 2014-10-02  Olivier Hainque  <hainque@adacore.com>
14566
14567         * Makefile.in (CROSS): Define, to @CROSS.
14568
14569 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
14570
14571         PR target/62128
14572         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
14573         if it expands to a single insn only.
14574         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
14575         fail unless in_order is true.  Add forward declaration.
14576         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
14577         is useful for one_operand_p.
14578         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
14579
14580 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
14581
14582         * cgraphclones.c (build_function_type_skip_args): Do not make new
14583         type variant of old.
14584
14585 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
14586
14587         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
14588         when speculation is added.
14589         (ipa_edge_args): Add polymorphic_call_contexts.
14590         (ipa_get_ith_polymorhic_call_context): New accesor.
14591         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
14592         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
14593         (ipa_compute_jump_functions_for_edge): Compute contexts.
14594         (update_jump_functions_after_inlining): Update contexts.
14595         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
14596         update dumping; add speculative edge creation.
14597         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
14598         context updating.
14599         (update_indirect_edges_after_inlining): Pass down context.
14600         (ipa_edge_duplication_hook): Duplicate contexts.
14601         (ipa_write_node_info): Stream out contexts.
14602         (ipa_read_node_info): Stream in contexts.
14603         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
14604         types.
14605         (try_speculative_devirtualization): New function.
14606         * ipa-utils.h (try_speculative_devirtualization): Declare.
14607
14608 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
14609
14610         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
14611         dumping during WPA.
14612
14613 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
14614
14615         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
14616         type variants.
14617
14618 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
14619
14620         * ipa-polymorphic-call.c
14621         (ipa_polymorphic_call_context::restrict_to_inner_class):
14622         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
14623         use speculation_consistent_p to do so; Add CONSDER_BASES
14624         and CONSIDER_PLACEMENT_NEW parameters.
14625         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
14626         short circuit obvious cases.
14627         (ipa_polymorphic_call_context::dump): Improve formatting.
14628         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
14629         combine_speculation_with to record speculations; Do not ICE when
14630         object is located in pointer type decl; do not ICE for methods
14631         of UNION_TYPE; do not record nonpolymorphic types.
14632         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
14633         (ipa_polymorphic_call_context::combine_speculation_with): New method.
14634         (ipa_polymorphic_call_context::combine_with): New method.
14635         (ipa_polymorphic_call_context::make_speculative): Move here; use
14636         combine speculation.
14637         * cgraph.h (ipa_polymorphic_call_context): Update
14638         restrict_to_inner_class prototype; add offset_by, make_speculative,
14639         combine_with, useless_p, combine_speculation_with and
14640         speculation_consistent_p methods.
14641         (ipa_polymorphic_call_context::offset_by): New method.
14642         (ipa_polymorphic_call_context::useless_p): New method.
14643
14644 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
14645
14646         PR rtl-optimization/62151
14647         * combine.c (can_combine_p): Allow the destination register of INSN
14648         to be clobbered in I3.
14649         (subst): Do not substitute into clobbers of registers.
14650
14651 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
14652
14653         PR debug/63342
14654         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
14655         offset, TARGET_MEM_REF and SSA_NAME.
14656
14657         * config/i386/i386.c (expand_vec_perm_palignr): Handle
14658         256-bit vectors for TARGET_AVX2.
14659
14660         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
14661         dfirst permutation.
14662
14663         PR target/63428
14664         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
14665         argument to avx2_permv2ti.
14666
14667 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14668
14669         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
14670
14671 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
14672
14673         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
14674         (fmod<mode>3): Ditto.
14675         (fpremxf4_i387): Ditto.
14676         (reminderxf3): Ditto.
14677         (reminder<mode>3): Ditto.
14678         (fprem1xf4_i387): Ditto.
14679
14680 2014-09-30  Teresa Johnson  <tejohnson@google.com>
14681
14682         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
14683         duplicate_blocks bitmap.
14684         (remove_ctrl_stmt_and_useless_edges): Ditto.
14685         (create_block_for_threading): Ditto.
14686         (compute_path_counts): New function.
14687         (update_profile): Ditto.
14688         (recompute_probabilities): Ditto.
14689         (update_joiner_offpath_counts): Ditto.
14690         (freqs_to_counts_path): Ditto.
14691         (clear_counts_path): Ditto.
14692         (ssa_fix_duplicate_block_edges): Update profile info.
14693         (ssa_create_duplicates): Pass new parameter.
14694         (ssa_redirect_edges): Remove old profile update.
14695         (thread_block_1): New duplicate_blocks bitmap,
14696         remove old profile update.
14697         (thread_single_edge): Pass new parameter.
14698
14699 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
14700
14701         PR middle-end/62120
14702         * varasm.c (decode_reg_name_and_count): Check availability for
14703         registers from ADDITIONAL_REGISTER_NAMES.
14704
14705 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
14706
14707         PR plugins/63410
14708         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
14709         (PLUGIN_HEADERS): Add pass-instances.def.
14710
14711 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
14712
14713         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
14714         iterator.
14715         * config/aarch64/aarch64-simd.md
14716         (aarch64_sqdmull_laneq<mode>): Expand iterator.
14717         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
14718         (vqdmulls_lane_s32): Fix return type.
14719         (vqdmulls_laneq_s32): New.
14720
14721 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
14722
14723         PR inline-asm/63282
14724         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
14725         or invert_jump_1 if jump isn't any_condjump_p.
14726
14727 2014-09-30  Terry Guo  <terry.guo@arm.com>
14728
14729         * config/arm/arm-cores.def (cortex-m7): New core name.
14730         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
14731         (fpv5-d16): Ditto.
14732         * config/arm/arm-tables.opt: Regenerated.
14733         * config/arm/arm-tune.md: Regenerated.
14734         * config/arm/arm.h (TARGET_VFP5): New macro.
14735         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
14736         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
14737         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
14738         * doc/invoke.texi: Document new cpu and fpu names.
14739
14740 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
14741
14742         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
14743         before sinking insn.
14744
14745 2014-09-30  David Sherwood  <david.sherwood@arm.com>
14746
14747         * ira-int.h (ira_allocno): Add "wmode" field.
14748         * ira-build.c (create_insn_allocnos): Add new "parent" function
14749         parameter.
14750         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
14751         that cannot be accessed in wmode.
14752
14753 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
14754
14755         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
14756         integer overflow.
14757
14758 2014-09-29  Andi Kleen  <ak@linux.intel.com>
14759
14760         * opts.c (print_filtered_help): Print --param min/max/default
14761         with -Q.
14762
14763 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
14764
14765         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
14766
14767 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
14768
14769         * tree-vrp.c (get_single_symbol): New function.
14770         (build_symbolic_expr): Likewise.
14771         (symbolic_range_based_on_p): New predicate.
14772         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
14773         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
14774         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
14775         operand is symbolic and based on the other operand.
14776
14777 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
14778
14779         * config/microblaze/microblaze.md (call_internal1): Use VOID
14780         instead of SI to fix "((void (*)(void)) 0)()" issue
14781
14782 2014-09-29  Nick Clifton  <nickc@redhat.com>
14783
14784         * config/msp430/msp430.c (msp430_expand_prologue): Return a
14785         CLOBBER rtx for naked functions.
14786         (msp430_expand_epilogue): Likewise.
14787         (msp430_use_f5_series_hwmult): Cache result.
14788         (use_32bit_hwmult): Cache result.
14789         (msp430_no_hwmult): New function.
14790         (msp430_output_labelref): Use it.
14791
14792 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
14793
14794         PR middle-end/63247
14795         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
14796         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
14797         use the alignment of avar rather than ovar.
14798
14799 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
14800
14801         * config/pa/pa.c (pa_output_function_epilogue): Only update
14802         last_address when a nonnote insn is found.
14803
14804 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
14805
14806         PR ipa/60665
14807         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
14808
14809 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
14810
14811         PR ipa/62121
14812         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
14813         fix pasto in checking array size.
14814
14815 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
14816
14817         PR middle-end/35545
14818         * passes.def (pass_tracer): Move before last dominator pass.
14819
14820 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
14821
14822         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
14823         users.
14824         (run_attempt): Handle errors of "pex_run" invocation.
14825
14826 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
14827
14828         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
14829         (CC1_SPEC): Define.
14830         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
14831         (TARGET_ASAN_SHADOW_OFFSET): Define.
14832
14833 2014-09-26  Martin Liska  <mliska@suse.cz>
14834
14835         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
14836         introduced.
14837         * cgraph.h: Likewise.
14838         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
14839         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
14840         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
14841         * tree-ssa-alias.h: Likewise.
14842
14843 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
14844             Max Ostapenko  <m.ostapenko@partner.samsung.com>
14845
14846         * common.opt: New option.
14847         * doc/invoke.texi: Describe new option.
14848         * gcc.c (execute): Don't free first string early, but at the end
14849         of the function.  Call retry_ice if compiler exited with
14850         ICE_EXIT_CODE.
14851         (main): Factor out common code.
14852         (print_configuration): New function.
14853         (files_equal_p): Likewise.
14854         (check_repro): Likewise.
14855         (run_attempt): Likewise.
14856         (do_report_bug): Likewise.
14857         (append_text): Likewise.
14858         (try_generate_repro): Likewise
14859
14860 2014-09-25  Andi Kleen  <ak@linux.intel.com>
14861
14862         * config/i386/i386.c (x86_print_call_or_nop): New function.
14863         (x86_function_profiler): Support -mnop-mcount and
14864         -mrecord-mcount.
14865         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
14866         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
14867
14868 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
14869
14870         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
14871         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
14872         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
14873         Remove.
14874
14875 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
14876
14877         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
14878         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
14879         types_odr_comparable): Declare.
14880         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
14881         * ipa-polymorphic-call.c: New file.
14882         (contains_polymorphic_type_p, possible_placement_new,
14883         ipa_polymorphic_call_context::restrict_to_inner_class,
14884         contains_type_p, decl_maybe_in_construction_p,
14885         ipa_polymorphic_call_context::stream_out,
14886         ipa_polymorphic_call_context::debug,
14887         ipa_polymorphic_call_context::stream_in,
14888         ipa_polymorphic_call_context::set_by_decl,
14889         ipa_polymorphic_call_context::set_by_invariant,
14890         walk_ssa_copies,
14891         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
14892         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
14893         extr_type_from_vtbl_ptr_store, record_known_type
14894         check_stmt_for_type_change,
14895         ipa_polymorphic_call_context::get_dynamic_type): Move here from
14896         ipa-devirt.c
14897         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
14898         and streamer-hooks.h
14899         (contains_polymorphic_type_p, possible_placement_new,
14900         ipa_polymorphic_call_context::restrict_to_inner_class,
14901         contains_type_p, decl_maybe_in_construction_p,
14902         ipa_polymorphic_call_context::stream_out,
14903         ipa_polymorphic_call_context::debug,
14904         ipa_polymorphic_call_context::stream_in,
14905         ipa_polymorphic_call_context::set_by_decl,
14906         ipa_polymorphic_call_context::set_by_invariant,
14907         walk_ssa_copies,
14908         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
14909         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
14910         extr_type_from_vtbl_ptr_store, record_known_type
14911         check_stmt_for_type_change,
14912         ipa_polymorphic_call_context::get_dynamic_type): Move to
14913         ipa-polymorphic-call.c
14914         (type_all_derivations_known_p, types_odr_comparable,
14915         types_must_be_same_for_odr): Export.
14916         (type_known_to_have_no_deriavations_p): New function.
14917         * Makefile.in: Add ipa-polymorphic-call.c
14918
14919 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
14920
14921         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
14922         for better storage.
14923         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
14924         (possible_polymorphic_call_targets): Instead of computing both
14925         speculative and non-speculative answers, do just one at a time.
14926         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
14927         (dump_targets): Break out from ...
14928         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
14929         and non-speculative lists.
14930         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
14931         * ipa-utils.h (possible_polymorphic_call_targets): Update.
14932
14933 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
14934
14935         PR rtl-optimization/63348
14936         * emit-rtl.c (try_split): Do not emit extra barrier.
14937
14938 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
14939
14940         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
14941         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
14942         new predicates.
14943         (aarch64_<sur>shll2_n<mode>): Likewise.
14944         (aarch64_<sur>shr_n<mode>): Likewise.
14945         (aarch64_<sur>sra_n<mode>: Likewise.
14946         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
14947         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
14948         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
14949         * config/aarch64/iterators.md (ve_mode): New.
14950         (offsetlr): Remap to infix text for use in new predicates.
14951         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
14952         (aarch64_simd_shift_imm_hi): Likewise.
14953         (aarch64_simd_shift_imm_si): Likewise.
14954         (aarch64_simd_shift_imm_di): Likewise.
14955         (aarch64_simd_shift_imm_offset_qi): Likewise.
14956         (aarch64_simd_shift_imm_offset_hi): Likewise.
14957         (aarch64_simd_shift_imm_offset_si): Likewise.
14958         (aarch64_simd_shift_imm_offset_di): Likewise.
14959         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
14960         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
14961         (aarch64_simd_shift_imm_bitsize_si): Likewise.
14962         (aarch64_simd_shift_imm_bitsize_di): Likewise.
14963
14964 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
14965
14966         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
14967         new created BB as the intersection of live-in from "old_dest" and
14968         live-out from "bb".
14969
14970 2014-09-25  Felix Yang  <felix.yang@huawei.com>
14971
14972         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
14973         * genautomata.c (merge_states): Ditto.
14974
14975 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
14976
14977         PR target/62218
14978         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
14979         in instruction sequence.
14980
14981 2014-09-25  Nick Clifton  <nickc@redhat.com>
14982
14983         PR target/62218
14984         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
14985         in instruction sequence.
14986
14987 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14988
14989         PR target/63335
14990         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
14991         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
14992
14993 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14994             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14995             Anna Tikhonova  <anna.tikhonova@intel.com>
14996             Ilya Tocar  <ilya.tocar@intel.com>
14997             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14998             Ilya Verbin  <ilya.verbin@intel.com>
14999             Kirill Yukhin  <kirill.yukhin@intel.com>
15000             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15001
15002         * config/i386/sse.md
15003         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
15004         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
15005         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
15006         (define_expand "<avx512>_perm<mode>_mask"): ... this.
15007         Use VI8F_256_512 mode iterator.
15008         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
15009         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
15010
15011 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15012             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15013             Anna Tikhonova  <anna.tikhonova@intel.com>
15014             Ilya Tocar  <ilya.tocar@intel.com>
15015             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15016             Ilya Verbin  <ilya.verbin@intel.com>
15017             Kirill Yukhin  <kirill.yukhin@intel.com>
15018             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15019
15020         * config/i386/sse.md
15021         (define_insn "avx_movshdup256<mask_name>"): Add masking.
15022         (define_insn "sse3_movshdup<mask_name>"): Ditto.
15023         (define_insn "avx_movsldup256<mask_name>"): Ditto.
15024         (define_insn "sse3_movsldup<mask_name>"): Ditto.
15025         (define_insn "vec_dupv2df<mask_name>"): Ditto.
15026         (define_insn "*vec_concatv2df"): Add EVEX version.
15027
15028 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15029             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15030             Anna Tikhonova  <anna.tikhonova@intel.com>
15031             Ilya Tocar  <ilya.tocar@intel.com>
15032             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15033             Ilya Verbin  <ilya.verbin@intel.com>
15034             Kirill Yukhin  <kirill.yukhin@intel.com>
15035             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15036
15037         * config/i386/sse.md
15038         (define_insn "vec_set<mode>_0"): Add EVEX version.
15039
15040 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15041             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15042             Anna Tikhonova  <anna.tikhonova@intel.com>
15043             Ilya Tocar  <ilya.tocar@intel.com>
15044             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15045             Ilya Verbin  <ilya.verbin@intel.com>
15046             Kirill Yukhin  <kirill.yukhin@intel.com>
15047             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15048
15049         * config/i386/sse.md
15050         (define_insn
15051         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
15052         New.
15053         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
15054         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
15055         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
15056         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
15057         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
15058         (define_expand "sse2_cvtpd2ps_mask): New.
15059         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
15060         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
15061
15062 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15063             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15064             Anna Tikhonova  <anna.tikhonova@intel.com>
15065             Ilya Tocar  <ilya.tocar@intel.com>
15066             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15067             Ilya Verbin  <ilya.verbin@intel.com>
15068             Kirill Yukhin  <kirill.yukhin@intel.com>
15069             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15070
15071         * config/i386/i386.c
15072         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
15073         (ufix_notruncv8dfv8si2_mask_round): ... this.
15074         * config/i386/sse.md
15075         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
15076         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
15077         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
15078         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
15079         (define_expand "sse2_cvtpd2dq"): Delete.
15080         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
15081         make 2nd operand const0 vector.
15082         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
15083         Delete.
15084         (define_mode_attr pd2udqsuff): New.
15085         (define_insn
15086         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
15087         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
15088         (define_insn "*avx_cvttpd2dq256_2"): Delete.
15089         (define_expand "sse2_cvttpd2dq"): Ditto.
15090         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
15091         make 2nd operand const0 vector.
15092
15093 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
15094
15095         PR tree-optimization/63341
15096         * tree-vectorizer.h (vect_create_data_ref_ptr,
15097         vect_create_addr_base_for_vector_ref): Add another tree argument
15098         defaulting to NULL_TREE.
15099         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
15100         argument, pass it down to vect_create_addr_base_for_vector_ref.
15101         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
15102         add that to base_offset too if non-NULL.
15103         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
15104         for dr_explicit_realign_optimized set it to vector byte size
15105         - 1 instead of setting offset, pass byte_offset down to
15106         vect_create_data_ref_ptr.
15107
15108 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
15109
15110         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
15111         forgotten debug output; canonicalize querries more wtih LTO.
15112
15113 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
15114
15115         * cgraph.h (class ipa_polymorphic_call_context): Move here from
15116         ipa-utils.h; add stream_int and stream_out methods.
15117         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
15118         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
15119         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
15120         add CONTEXT.
15121         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15122         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15123         ipa_polymorphic_call_context::clear_speculation,
15124         ipa_polymorphic_call_context::clear_outer_type): Move here from
15125         ipa-utils.h
15126         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
15127         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15128         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15129         ipa_polymorphic_call_context::clear_speculation,
15130         ipa_polymorphic_call_context::clear_outer_type): Likewise.
15131         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
15132         streamer-hooks.h
15133         (ipa_polymorphic_call_context::stream_out): New method.
15134         (ipa_polymorphic_call_context::stream_in): New method.
15135         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
15136         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
15137         OUTER_TYPE.
15138         (ipa_analyze_call_uses): Simplify.
15139         (update_indirect_edges_after_inlining): Do not care about outer_type.
15140         (ipa_write_indirect_edge_info): Update.
15141         (ipa_write_indirect_edge_info): Likewise.
15142         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
15143         (dump_edge_flags): Break out from ...
15144         (cgraph_node::dump): ... here; dump indirect edges.
15145
15146 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
15147
15148         * ipa-utils.h (polymorphic_call_context): Add
15149         metdhos dump, debug and clear_outer_type.
15150         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15151         (ipa_polymorphic_call_context::clear_outer_type): New method.
15152         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
15153         * ipa-devirt.c (types_odr_comparable): New function.
15154         (types_must_be_same_for_odr): New function.
15155         (odr_subtypes_equivalent_p): Simplify.
15156         (possible_placement_new): Break out from ...
15157         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
15158         be more cuatious about returning false in cases the context may be
15159         valid in derived type or via placement new.
15160         (contains_type_p): Clear maybe_derived_type
15161         (ipa_polymorphic_call_context::dump): New method.
15162         (ipa_polymorphic_call_context::debug): New method.
15163         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
15164         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
15165         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15166         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
15167         to suceed on all valid cases; remove confused sanity check.
15168         (dump_possible_polymorphic_call_targets): Simplify.
15169
15170 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
15171
15172         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
15173         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
15174         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
15175         varpool.c: Rename all instances of DECL_ABSTRACT to
15176         DECL_ABSTRACT_P.
15177
15178 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15179
15180         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
15181         special handling for stores whose SET_SRC is an UNSPEC (such as
15182         UNSPEC_STVE).
15183
15184 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
15185
15186         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
15187         !REG_P (src) to release more instruction sink opportunities.
15188
15189 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
15190
15191         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
15192         move costs for 128-bit types.
15193
15194 2014-09-24  Martin Jambor  <mjambor@suse.cz>
15195
15196         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
15197         when duplicating a PASS_THROUGH jump function when creating a
15198         speculative edge.
15199
15200 2014-09-24  Marek Polacek  <polacek@redhat.com>
15201
15202         PR c/61405
15203         PR c/53874
15204         * asan.c (maybe_instrument_call): Add default case.
15205         * ipa-pure-const.c (special_builtin_state): Likewise.
15206         * predict.c (expr_expected_value_1): Likewise.
15207         * lto-streamer-out.c (write_symbol): Initialize variable.
15208
15209 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15210
15211         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
15212         the lane.
15213         (vmuld_laneq_f64): Likewise.
15214         (vmuls_lane_f32): Likewise.
15215         (vmuls_laneq_f32): Likewise.
15216
15217 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
15218
15219         PR bootstrap/63235
15220         * varpool.c (varpool_node::add): Pass decl attributes
15221         to lookup_attribute.
15222
15223 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
15224
15225         PR sanitizer/63316
15226         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
15227
15228 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15229
15230         PR tree-optimization/63266
15231         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
15232         marker for unknown byte value.
15233         (MARKER_MASK): New macro.
15234         (MARKER_BYTE_UNKNOWN): New macro.
15235         (HEAD_MARKER): New macro.
15236         (do_shift_rotate): Mark bytes with unknown values due to sign
15237         extension when doing an arithmetic right shift. Replace hardcoded
15238         mask for marker by new MARKER_MASK macro.
15239         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
15240         numbers accordingly.
15241
15242 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15243             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15244             Anna Tikhonova  <anna.tikhonova@intel.com>
15245             Ilya Tocar  <ilya.tocar@intel.com>
15246             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15247             Ilya Verbin  <ilya.verbin@intel.com>
15248             Kirill Yukhin  <kirill.yukhin@intel.com>
15249             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15250
15251         * config/i386/sse.md
15252         (define_insn
15253         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
15254         Add masking.
15255         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
15256         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
15257
15258 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15259             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15260             Anna Tikhonova  <anna.tikhonova@intel.com>
15261             Ilya Tocar  <ilya.tocar@intel.com>
15262             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15263             Ilya Verbin  <ilya.verbin@intel.com>
15264             Kirill Yukhin  <kirill.yukhin@intel.com>
15265             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15266
15267         * config/i386/sse.md
15268         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
15269         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
15270         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
15271         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
15272         (define_expand "avx512vl_pshuflw_mask"): New.
15273         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
15274         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
15275         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
15276         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
15277         (define_expand "avx512vl_pshufhw_mask"): New.
15278         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
15279
15280 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15281             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15282             Anna Tikhonova  <anna.tikhonova@intel.com>
15283             Ilya Tocar  <ilya.tocar@intel.com>
15284             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15285             Ilya Verbin  <ilya.verbin@intel.com>
15286             Kirill Yukhin  <kirill.yukhin@intel.com>
15287             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15288
15289         * config/i386/i386.c
15290         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
15291         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
15292         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
15293         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
15294         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
15295         * config/i386/sse.md
15296         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
15297         (define_insn
15298         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
15299         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
15300         (define_insn
15301         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
15302         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
15303         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
15304         (define_expand "avx512vl_pshufd_mask"): New.
15305         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
15306
15307 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15308             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15309             Anna Tikhonova  <anna.tikhonova@intel.com>
15310             Ilya Tocar  <ilya.tocar@intel.com>
15311             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15312             Ilya Verbin  <ilya.verbin@intel.com>
15313             Kirill Yukhin  <kirill.yukhin@intel.com>
15314             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15315
15316         * config/i386/i386.c
15317         (CODE_FOR_avx2_extracti128): Rename to ...
15318         (CODE_FOR_avx_vextractf128v4di): this.
15319         (CODE_FOR_avx2_inserti128): Rename to ...
15320         (CODE_FOR_avx_vinsertf128v4di): this.
15321         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
15322         CODE_FOR_avx_vextractf128v4di.
15323         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
15324         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
15325         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
15326         CODE_FOR_avx512vl_vinsertv8si.
15327         * config/i386/sse.md
15328         (define_expand
15329         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
15330         AVX512_VEC mode iterator.
15331         (define_insn
15332         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
15333         Ditto.
15334         (define_expand
15335         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
15336         AVX512_VEC_2 mode iterator.
15337         (define_insn "vec_set_lo_<mode><mask_name>"): New.
15338         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
15339         (define_expand "avx512vl_vinsert<mode>"): Ditto.
15340         (define_insn "avx2_vec_set_lo_v4di"): Delete.
15341         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
15342         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
15343         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
15344         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
15345         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
15346         (define_expand "avx2_extracti128"): Delete.
15347         (define_expand "avx2_inserti128"): Ditto.
15348
15349 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15350             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15351             Anna Tikhonova  <anna.tikhonova@intel.com>
15352             Ilya Tocar  <ilya.tocar@intel.com>
15353             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15354             Ilya Verbin  <ilya.verbin@intel.com>
15355             Kirill Yukhin  <kirill.yukhin@intel.com>
15356             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15357
15358         * config/i386/sse.md
15359         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
15360         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
15361         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
15362         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
15363         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
15364         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
15365         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
15366         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
15367         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
15368         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
15369         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
15370         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
15371         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
15372
15373 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
15374
15375         PR rtl-optimization/63210
15376         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
15377         HARD_REGNO is not available for CONFLICT_A.
15378
15379 2014-09-23  Andi Kleen  <ak@linux.intel.com>
15380
15381         * cgraph.h (symtab_node): Add no_reorder attribute.
15382         (symbol_table::output_asm_statements): Remove.
15383         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
15384         (cgraph_node::create_version_clone): Dito.
15385         (symbol_table::output_asm_statements): Remove.
15386         * trans-mem.c (ipa_tm_create_version_alias): Dito.
15387         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
15388         (output_in_order): Add no_reorder flag. Only handle no_reorder
15389         nodes when set.
15390         (symbol_table::compile): Add separate pass for no_reorder nodes.
15391         (process_common_attributes): Set no_reorder flag in symtab node.
15392         Add node argument.
15393         (process_function_and_variable_attributes): Pass symtab nodes to
15394         process_common_attributes.
15395         * doc/extend.texi (no_reorder): Document no_reorder attribute.
15396         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
15397         (lto_output_varpool_node): Dito.
15398         (input_overwrite_node): Dito.
15399         (input_varpool_node): Dito.
15400         * varpool.c (varpool_node::add): Set no_reorder attribute.
15401         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
15402         (symbol_table::output_variables): Dito.
15403         * symtab.c (symtab_node::dump_base): Print no_reorder.
15404
15405 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
15406
15407         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
15408         be INVALID_REGNUM.
15409
15410 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
15411
15412         * configure: Regenerate.
15413
15414 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
15415
15416         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
15417         when result_mode == shift_mode.
15418
15419 2014-09-23  Kostya Serebryany  <kcc@google.com>
15420
15421         Update to match the changed asan API.
15422         * asan.c (asan_global_struct): Update the __asan_global definition
15423         to match the new API.
15424         (asan_add_global): Ditto.
15425         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
15426         to __asan_init_v4.
15427
15428 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15429
15430         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
15431         refine the constraints used on 32/64-bit floating point moves.
15432         (f32_av): Likewise.
15433         (f64_vsx): Likewise.
15434         (f64_dm): Likewise.
15435         (f64_av): Likewise.
15436         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
15437         (BOOL_REGS_OP1): Likewise.
15438         (BOOL_REGS_OP2): Likewise.
15439         (BOOL_REGS_UNARY): Likewise.
15440         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
15441         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
15442         for moves involving VSX registers.  Do not use constraints that
15443         target VSX registers for decimal types.
15444         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
15445         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
15446
15447 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
15448
15449         * tree.h (int_bit_position): Turn into inline function;
15450         implement using wide int.
15451         * tree.c (int_bit_position): Remove.
15452
15453 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
15454
15455         PR bootstrap/63280
15456         * target-globals.c (target_globals::~target_globals): Fix location
15457         of ira_int destruction.
15458
15459 2014-09-23  Renlin Li  <renlin.li@arm.com>
15460
15461         * config/aarch64/aarch64.md (return): New.
15462         (simple_return): Likewise.
15463         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
15464         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
15465
15466 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
15467
15468         * common/config/aarch64/aarch64-common.c:
15469         (default_options aarch_option_optimization_table):
15470         Default to -fsched-pressure.
15471
15472 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
15473
15474         * cfgcleanup.c (try_optimize_cfg): Do not remove label
15475         with LABEL_PRESERVE_P flag set.
15476
15477 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15478             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15479             Anna Tikhonova  <anna.tikhonova@intel.com>
15480             Ilya Tocar  <ilya.tocar@intel.com>
15481             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15482             Ilya Verbin  <ilya.verbin@intel.com>
15483             Kirill Yukhin  <kirill.yukhin@intel.com>
15484             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15485
15486         * config/i386/sse.md
15487         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
15488         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
15489         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
15490         (define_insn "sse2_shufpd_v2df_mask"): New.
15491
15492 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15493             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15494             Anna Tikhonova  <anna.tikhonova@intel.com>
15495             Ilya Tocar  <ilya.tocar@intel.com>
15496             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15497             Ilya Verbin  <ilya.verbin@intel.com>
15498             Kirill Yukhin  <kirill.yukhin@intel.com>
15499             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15500
15501         * config/i386/sse.md
15502         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
15503         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
15504         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
15505         (define_insn "sse_shufps_v4sf_mask"): New.
15506
15507 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15508             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15509             Anna Tikhonova  <anna.tikhonova@intel.com>
15510             Ilya Tocar  <ilya.tocar@intel.com>
15511             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15512             Ilya Verbin  <ilya.verbin@intel.com>
15513             Kirill Yukhin  <kirill.yukhin@intel.com>
15514             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15515
15516         * config/i386/sse.md
15517         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
15518         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
15519         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
15520         (define_insn "unpcklps128_mask"): New.
15521
15522 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15523             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15524             Anna Tikhonova  <anna.tikhonova@intel.com>
15525             Ilya Tocar  <ilya.tocar@intel.com>
15526             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15527             Ilya Verbin  <ilya.verbin@intel.com>
15528             Kirill Yukhin  <kirill.yukhin@intel.com>
15529             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15530
15531         * config/i386/sse.md
15532         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
15533         (define_insn "avx512vl_unpckhpd128_mask"): New.
15534         (define_expand "avx_movddup256<mask_name>"): Add masking.
15535         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
15536         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
15537         (define_insn "avx512vl_unpcklpd128_mask"): New.
15538
15539 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
15540
15541         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15542         * doc/tm.texi: Regenerate.
15543         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
15544         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15545         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
15546         Remove.
15547         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15548         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15549         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15550         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15551         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
15552         Remove.
15553         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15554         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15555         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15556         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15557         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15558         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15559         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15560         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15561         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15562         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
15563         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
15564         Remove.
15565
15566 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
15567
15568         * tree-ssa-ccp.c (prop_value_d): Rename to ...
15569         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
15570         * ipa-prop.c (struct type_change_info): Rename to ...
15571         (prop_type_change_info): ... this; update uses.
15572         * ggc-page.c (globals): Rename to ...
15573         (static struct ggc_globals): ... this; update uses.
15574         * tree-ssa-loop-im.c (mem_ref): Rename to ...
15575         (im_mem_ref): ... this; update uses.
15576         * ggc-common.c (loc_descriptor): Rename to ...
15577         (ggc_loc_descriptor): ... this; update uses.
15578         * lra-eliminations.c (elim_table): Rename to ...
15579         (lra_elim_table): ... this; update uses.
15580         * bitmap.c (output_info): Rename to ...
15581         (bitmap_output_info): ... this; update uses.
15582         * gcse.c (expr): Rename to ...
15583         (gcse_expr) ... this; update uses.
15584         (occr): Rename to ...
15585         (gcse_occr): .. this; update uses.
15586         * tree-ssa-copy.c (prop_value_d): Rename to ...
15587         (prop_value_t): ... this.
15588         * predict.c (block_info_def): Rename to ...
15589         (block_info): ... this; update uses.
15590         (edge_info_def): Rename to ...
15591         (edge_info): ... this; update uses.
15592         * profile.c (bb_info): Rename to ...
15593         (bb_profile_info): ... this; update uses.
15594         * alloc-pool.c (output_info): Rename to ...
15595         (pool_output_info): ... this; update uses.
15596         * ipa-cp.c (topo_info): Rename to ..
15597         (ipa_topo_info): ... this; update uses.
15598         * tree-nrv.c (nrv_data): Rename to ...
15599         (nrv_data_t): ... this; update uses.
15600         * ipa-split.c (bb_info): Rename to ...
15601         (split_bb_info): ... this one.
15602         * profile.h (edge_info): Rename to ...
15603         (edge_profile_info): ... this one; update uses.
15604         * dse.c (bb_info): Rename to ...
15605         (dse_bb_info): ... this one; update uses.
15606         * cprop.c (occr): Rename to ...
15607         (cprop_occr): ... this one; update uses.
15608         (expr): Rename to ...
15609         (cprop_expr): ... this one; update uses.
15610
15611 2014-09-22  Jason Merrill  <jason@redhat.com>
15612
15613         * Makefile.in (check-parallel-%): Add @.
15614
15615 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
15616
15617         * config/aarch64/geniterators.sh: New.
15618         * config/aarch64/iterators.md (VDQF_DF): New.
15619         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
15620         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
15621
15622 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
15623
15624         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
15625         -lnosys when -msim absent.
15626
15627 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
15628
15629         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
15630
15631 2014-09-22  Richard Biener  <rguenther@suse.de>
15632
15633         * gimplify.c (gimplify_init_constructor): Do not leave
15634         non-GIMPLE vector constructors around.
15635         * tree-cfg.c (verify_gimple_assign_single): Verify that
15636         CONSTRUCTORs have gimple elements.
15637
15638 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
15639
15640         PR debug/63328
15641         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
15642         insert a debug source bind stmt setting DEBUG_EXPR_DECL
15643         instead of a normal gimple assignment stmt.
15644
15645 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
15646
15647         * config/bfin/bfin.md: Fix use of constraints in define_split.
15648
15649 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
15650
15651         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
15652         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
15653
15654 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
15655
15656         * hard-reg-set.h: Include hash-table.h.
15657         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
15658         field.
15659         * target-globals.c (target_globals::~target_globals): Call
15660         hard_regs->finalize.
15661         * rtl.h (subreg_shape): New structure.
15662         (shape_of_subreg): New function.
15663         (simplifiable_subregs): Declare.
15664         * reginfo.c (simplifiable_subreg): New structure.
15665         (simplifiable_subregs_hasher): Likewise.
15666         (simplifiable_subregs): New function.
15667         (invalid_mode_changes): Delete.
15668         (alid_mode_changes, valid_mode_changes_obstack): New variables.
15669         (record_subregs_of_mode): Remove subregs_of_mode parameter.
15670         Record valid mode changes in valid_mode_changes.
15671         (find_subregs_of_mode): Remove subregs_of_mode parameter.
15672         Update calls to record_subregs_of_mode.
15673         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
15674         handling.  Initialize new variables.  Update call to
15675         find_subregs_of_mode.
15676         (invalid_mode_change_p): Check new variables instead of
15677         invalid_mode_changes.
15678         (finish_subregs_of_mode): Finalize new variables instead of
15679         invalid_mode_changes.
15680         (target_hard_regs::finalize): New function.
15681         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
15682         even when CLASS_CANNOT_CHANGE_MODE is undefined.
15683
15684 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
15685
15686         * combine.c (subst): Use simplify_subreg_regno rather than
15687         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
15688
15689 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
15690
15691         * rtl.h (subreg_info): Expand commentary
15692         * rtlanal.c (subreg_get_info): Likewise.
15693
15694 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
15695
15696         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
15697         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
15698         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
15699
15700 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
15701
15702         * config/arm/arm.c: #include "tm-constrs.h"
15703         (thumb1_size_rtx_costs): Adjust rtx costs.
15704
15705 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
15706
15707         * configure.ac (target_header_dir): Move block defining
15708         this to before the block setting inhibit_libc.
15709         (inhibit_libc): When considering $with_headers, just
15710         check it it's explicitly "no".  If not, also check if
15711         $target_header_dir/stdio.h is present.  If not, set
15712         inhibit_libc=true.
15713         * configure: Regenerate.
15714
15715 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
15716
15717         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
15718
15719 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15720
15721         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
15722         insn for divides by integer powers of two.
15723         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
15724         (mod<mode>3): Fix formatting.
15725         (three anonymous define_insn and two define_split): Delete.
15726
15727 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15728
15729         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
15730         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
15731         (floatdisf2_internal2): Ditto.
15732         (ashrdi3_no_power): Ditto.  Fix formatting.
15733
15734 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15735
15736         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
15737         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
15738         Tidy.
15739
15740 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15741
15742         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
15743         constant, use addsi3 directly.
15744         (three anonymous define_insn, two define_split): Delete.
15745         (sub<mode>3): Move.  Do not allow constant second operand.
15746         Generate different insn for constant first operand.
15747         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
15748         (subf<mode>3_imm): New.
15749         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
15750         (*plus_ltu<mode>): Only handle registers.
15751         (*plus_ltu<mode>_1): New.  Handle integer third operand.
15752         (*plus_gtu<mode>): Only handle registers.
15753         (*plus_gtu<mode>_1): New.  Handle integer third operand.
15754
15755 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15756
15757         * config/rs6000/rs6000.md (iorxor): New code_iterator.
15758         (iorxor): New code_attr.
15759         (IORXOR): New code_attr.
15760         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
15761         (ior<mode>3, xor<mode>3): Delete.
15762         (<iorxor><mode>3): New.
15763         (splitter for "big" integer ior, xor): New.
15764         (*bool<mode>3): Move.  Also handle AND.
15765         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
15766         (splitter for "big" integer ior, xor): Delete.
15767
15768 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15769
15770         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
15771         (two anonymous define_insn and two define_split): Delete.
15772         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
15773
15774 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15775
15776         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
15777         (two anonymous define_insn and two define_split): Delete.
15778         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
15779
15780 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15781
15782         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
15783
15784 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
15785
15786         * config/rs6000/predicates.md (ca_operand): Allow subregs.
15787         (input_operand): Do not allow ca_operand.
15788         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
15789         carry bit, allow SImode and Pmode.
15790         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
15791
15792 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
15793
15794         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
15795         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
15796         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
15797         (*call_rex64_ms_sysv): Remove.
15798         (*call_value_rex64_ms_sysv): Ditto.
15799         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
15800
15801 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
15802
15803         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
15804         operand 3 to "CnL".
15805
15806 2014-09-20  Andreas Schwab  <schwab@suse.de>
15807
15808         * config/ia64/ia64.md: Remove constraints from define_split
15809         patterns.
15810
15811 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
15812
15813         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
15814         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
15815         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
15816         (get_dynamic_type): Remove.
15817         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
15818         (clear_speculation): Bring to ipa-deivrt.h
15819         (get_class_context): Rename to ...
15820         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
15821         (contains_type_p): Update.
15822         (get_dynamic_type): Rename to ...
15823         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
15824         (possible_polymorphic_call_targets): UPdate.
15825         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
15826         * ipa-prop.c (ipa_analyze_call_uses): Update.
15827
15828 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
15829
15830         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
15831         privatize dynamic TLS variables.
15832
15833 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
15834
15835         * diagnostic.c (warning_n): New function.
15836         * diagnostic-core.h (warning_n): Declare.
15837         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
15838         output dynamic counts when available.
15839
15840 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
15841
15842         PR tree-optimization/63255
15843         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
15844         issue in setting body_removed flag.
15845
15846 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
15847
15848         PR c++/61825
15849         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
15850         that visibility change is possible
15851         (handle_weakref_attribute): Likewise.
15852         * cgraph.h (symtab_node): Add method get_create and
15853         field refuse_visibility_changes.
15854         (symtab_node::get_create): New method.
15855         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
15856         * varasm.c (mark_weak): Verify that visibility change is
15857         possible.
15858
15859 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15860
15861         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
15862         for base_reg_operand to be common between LO_SUM and PLUS.
15863         (fusion_gpr_mem_combo): New predicate to match a fused address
15864         that combines the addis and memory offset address.
15865
15866         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
15867         calling signature.
15868         (emit_fusion_gpr_load): Likewise.
15869
15870         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
15871         signature to pass each argument separately, rather than
15872         using an operands array.  Rewrite the insns found by peephole2 to
15873         be a single insn, rather than hoping the insns will still be
15874         together when the peephole pass is done.  Drop being called via a
15875         normal peephole.
15876         (emit_fusion_gpr_load): Change calling signature to be called from
15877         the fusion_gpr_load_<mode> insns with a combined memory address
15878         instead of the peephole pass passing the addis and offset
15879         separately.
15880
15881         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
15882         fusion.
15883         (power8 fusion peephole): Drop support for doing power8 via a
15884         normal peephole that was created by the peephole2 pass.
15885         (power8 fusion peephole2): Create a new insn with the fused
15886         address, so that the fused operation is kept together after
15887         register allocation is done.
15888         (fusion_gpr_load_<mode>): Likewise.
15889
15890 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
15891
15892         PR lto/63286
15893         * tree.c (need_assembler_name_p): Do not mangle variadic types.
15894
15895 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
15896
15897         * recog.c (scratch_operand): Do not simply allow all hard registers:
15898         only allow those that are allocatable.
15899
15900 2014-09-19  Felix Yang  <felix.yang@huawei.com>
15901
15902         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
15903         comments and fix spacing to conform to coding style.
15904
15905 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15906
15907         * genrecog.c (validate_pattern): Allow empty constraints in
15908         a match_scratch.
15909
15910 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
15911
15912         * dwarf2out.c (decl_ultimate_origin): Update comment.
15913         * tree.c (block_ultimate_origin): Same.
15914
15915 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15916
15917         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
15918         Update GCC version name to GCC 5.
15919         (rs6000_function_arg_boundary): Likewise.
15920         (rs6000_function_arg): Likewise.
15921
15922 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15923
15924         * config/sh/sh.md: Fix use of constraints in define_split.
15925
15926 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
15927
15928         PR ipa/61998
15929         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
15930
15931 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15932
15933         * doc/md.texi (Modifiers): Consistently use "read/write"
15934         nomenclature rather than "input/output".
15935         * genrecog.c (constraints_supported_in_insn_p): New.
15936         (validate_pattern): If needed, also check constraints on
15937         MATCH_SCRATCH operands.
15938         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
15939         operands with no '=' or '+' modifier.
15940
15941 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15942
15943         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
15944         scratch register as written.
15945
15946 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15947
15948         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
15949         assignment.
15950
15951 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15952
15953         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
15954         expanders.
15955
15956 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15957
15958         PR target/62662
15959         * config/s390/s390.c (s390_emit_epilogue): When doing the return
15960         address load optimization force s390_optimize_prologue to leave it
15961         that way.  Only do the optimization if we already decided to push
15962         r14 into a stack slot.
15963
15964 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
15965
15966         * asan.c (build_check_stmt): Alignment arg was added.
15967         (asan_expand_check_ifn): Optimization for alignment >= 8.
15968
15969 2014-09-19  Olivier Hainque  <hainque@adacore.com>
15970
15971         * config/i386/vxworksae.h: Remove obsolete definitions.
15972         (STACK_CHECK_PROTECT): Define.
15973         * config/i386/vx-common.h: Remove.  Merge contents within
15974         config/i386/vxworks.h.
15975         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
15976         i386/vx-common.h.
15977
15978 2014-09-19  Olivier Hainque  <hainque@adacore.com>
15979
15980         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
15981         * config/rs6000/t-vxworksmils: New file.
15982         * config/rs6000/vxworksmils.h: New file.
15983
15984 2014-09-19  Olivier Hainque  <hainque@adacore.com>
15985
15986         * varasm.c (default_section_type_flags): Flag .persistent.bss
15987         sections as SECTION_BSS.
15988
15989 2014-09-19  Nick Clifton  <nickc@redhat.com>
15990
15991         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
15992         pop'ed registers so that DCE does not eliminate them.
15993
15994 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
15995
15996         PR lto/63298
15997         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
15998
15999 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
16000
16001         * system.h (LIBGCC2_TF_CEXT): Poison.
16002         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
16003         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
16004         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
16005         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
16006         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
16007         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
16008         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
16009         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
16010         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
16011
16012 2014-09-19  Kito Cheng  <kito@0xlab.org>
16013
16014         * except.h: Fix header guard.
16015         * addresses.h: Add missing header guard.
16016         * cfghooks.h: Likewise.
16017         * collect-utils.h: Likewise.
16018         * collect2-aix.h: Likewise.
16019         * conditions.h: Likewise.
16020         * cselib.h: Likewise.
16021         * dwarf2asm.h: Likewise.
16022         * graphds.h: Likewise.
16023         * graphite-scop-detection.h: Likewise.
16024         * gsyms.h: Likewise.
16025         * hw-doloop.h: Likewise.
16026         * incpath.h: Likewise.
16027         * ipa-inline.h: Likewise.
16028         * ipa-ref.h: Likewise.
16029         * ira-int.h: Likewise.
16030         * ira.h: Likewise.
16031         * lra-int.h: Likewise.
16032         * lra.h: Likewise.
16033         * lto-section-names.h: Likewise.
16034         * read-md.h: Likewise.
16035         * reload.h: Likewise.
16036         * rtl-error.h: Likewise.
16037         * sdbout.h: Likewise.
16038         * targhooks.h: Likewise.
16039         * tree-affine.h: Likewise.
16040         * xcoff.h: Likewise.
16041         * xcoffout.h: Likewise.
16042
16043 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
16044
16045         PR debug/63285
16046         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
16047         if advance != 0.
16048
16049 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
16050
16051         PR target/61360
16052         * lra.c (lra): Call recog_init.
16053
16054 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
16055
16056         PR c++/62017
16057         * asan.c (transform_statements): Don't instrument clobber statements.
16058
16059 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16060
16061         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
16062         to neon_load1_1reg<q>.
16063
16064 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
16065
16066         PR debug/63284
16067         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
16068         if there are only debug stmts after the noreturn call, instead
16069         remove the debug stmts.
16070
16071 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
16072
16073         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
16074         (odr_types_equivalent_p): Use pair hash.
16075         (odr_subtypes_equivalent_p): Likewise, do structural compare
16076         on ODR types that may be mismatched.
16077         (warn_odr): Support warning when only one field is given.
16078         (odr_types_equivalent_p): Strenghten comparsions made;
16079         support VOIDtype.
16080         (add_type_duplicate): Update VISITED hash set.
16081
16082 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16083
16084         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
16085         Enable selection of 'posix' or no thread model.
16086
16087 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
16088
16089         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
16090         when architecture is older than ARMv7.
16091
16092 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
16093
16094         PR target/61853
16095         * config/pa/pa.c (pa_function_value): Directly handle aggregates
16096         that fit exactly in a word or double word.
16097
16098 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
16099
16100         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
16101         zmm/k regs support.
16102
16103 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16104             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16105             Anna Tikhonova  <anna.tikhonova@intel.com>
16106             Ilya Tocar  <ilya.tocar@intel.com>
16107             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16108             Ilya Verbin  <ilya.verbin@intel.com>
16109             Kirill Yukhin  <kirill.yukhin@intel.com>
16110             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16111
16112         * config/i386/i386.c
16113         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
16114         * config/i386/sse.md
16115         (define_mode_iterator VI48F_256): New.
16116         (define_mode_attr extract_type): Ditto.
16117         (define_mode_attr extract_suf): Ditto.
16118         (define_mode_iterator AVX512_VEC): Ditto.
16119         (define_expand
16120         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
16121         AVX512_VEC.
16122         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
16123         (define_insn
16124         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
16125         Ditto.
16126         (define_mode_attr extract_type_2): Ditto.
16127         (define_mode_attr extract_suf_2): Ditto.
16128         (define_mode_iterator AVX512_VEC_2): Ditto.
16129         (define_expand
16130         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
16131         AVX512_VEC_2 mode iterator.
16132         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16133         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
16134         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16135         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16136         (define_split for V16FI mode): Ditto.
16137         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16138         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16139         (define_split for VI8F_256 mode): Ditto.
16140         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16141         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16142         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16143         (define_split for VI4F_256 mode): Ditto.
16144         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
16145         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16146         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16147         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
16148         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
16149         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
16150         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
16151         Update `type' attribute, remove explicit `memory' attribute calculation.
16152
16153 2014-09-16  Kito Cheng  <kito@0xlab.org>
16154
16155         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
16156         ira_spilled_reg_stack_slots_num if using lra.
16157         (do_reload): Remove release ira_spilled_reg_stack_slots part.
16158         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
16159         make sure not using lra.
16160         (ira_reuse_stack_slot): Likewise.
16161         (ira_mark_new_stack_slot): Likewise.
16162
16163 2014-09-15  Andi Kleen  <ak@linux.intel.com>
16164
16165         * function.c (allocate_struct_function): Force
16166         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
16167         profiling is disabled.
16168
16169 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
16170
16171         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
16172         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
16173         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
16174         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
16175         macro with statically checked member functions.
16176         * rtl.h (rtx_insn::deleted): New method.
16177         (rtx_insn::set_deleted): Likewise.
16178         (rtx_insn::set_undeleted): Likewise.
16179         (INSN_DELETED_P): Remove.
16180
16181 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
16182
16183         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
16184         result of emit_jump_insn_before to a new variable.
16185         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
16186         (mark_jump_label_1): Likewise.
16187         (mark_jump_label_asm): Likewise.
16188         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
16189         * rtl.h (mark_jump_label): Adjust.
16190
16191 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
16192
16193         * Makefile.in (dg_target_exps): Remove.
16194         (check_gcc_parallelize): Change to just an upper bound number.
16195         (check-%-subtargets): Always print the non-parallelized goals.
16196         (check_p_vars, check_p_comma, check_p_subwork): Remove.
16197         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
16198         check_p_numbers3, check_p_numbers4, check_p_numbers5,
16199         check_p_numbers6): New variables.
16200         (check_p_numbers): Set to sequence from 1 to 9999.
16201         (check_p_subdirs): Set to sequence from 1 to minimum of
16202         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
16203         or 128.
16204         (check-%, check-parallel-%): Rewritten so that for parallelized
16205         testing each job runs all the *.exp files, with
16206         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
16207
16208 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
16209
16210         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
16211         rtx to rtx_insn *.
16212         (arc_sets_cc_p): Likewise.
16213         * config/arc/arc.c (arc_print_operand): Use methods of
16214         "final_sequence" for clarity, and to enable strengthening of
16215         locals "jump" and "delay" from rtx to rtx_insn *.
16216         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
16217         rtx_insn *; use method of rtx_sequence for typesafety.
16218         (arc_get_insn_variants): Use insn method of rtx_sequence for
16219         typesafety.
16220         (arc_pad_return): Likewise.
16221         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
16222         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
16223         dyn_cast to rtx_sequence *, using insn method for typesafety.
16224         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
16225         rtx_sequence * and use insn method when invoking get_attr_length.
16226         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
16227         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
16228         rtx_sequence *, introducing a local "seq", using its insn method
16229         from typesafety and clarity.
16230         (add_sched_insns_for_speculation): Strengthen local "next" from
16231         rtx to rtx_insn *.
16232         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
16233         (predicate_insn): Likewise.
16234         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
16235         second param.
16236         * config/cris/cris.c (cris_notice_update_cc): Likewise.
16237         * config/epiphany/epiphany-protos.h
16238         (extern void epiphany_insert_mode_switch_use): Likewise for param
16239         "insn".
16240         (get_attr_sched_use_fpu): Likewise for param.
16241         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
16242         Likewise for param "insn".
16243         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
16244         param "insn" of "target_insert_mode_switch_use" callback.
16245         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
16246         (frv_issues_to_branch_unit_p): Likewise.
16247         (frv_pack_insn_p): Likewise.
16248         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
16249         const rtx * (i.e. mutable rtx_def * const *) to
16250         rtx_insn * const *.
16251         * config/i386/i386-protos.h (standard_sse_constant_opcode):
16252         Strengthen first param from rtx to rtx_insn *.
16253         (output_fix_trunc): Likewise.
16254         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
16255         (output_fix_trunc): Likewise.
16256         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
16257         local "insn".
16258         (min_insn_size): Likewise for param "insn".
16259         (get_mem_group): Likewise.
16260         (is_cmp): Likewise.
16261         (get_insn_path): Likewise.
16262         (get_insn_group): Likewise.
16263         (count_num_restricted): Likewise.
16264         (fits_dispatch_window): Likewise.
16265         (add_insn_window): Likewise.
16266         (add_to_dispatch_window): Likewise.
16267         (debug_insn_dispatch_info_file): Likewise.
16268         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
16269         first param.
16270         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
16271         "cmp" and local "prev".
16272         (m32c_output_compare): Likewise for param "insn".
16273         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
16274         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
16275         (define_predicate "large_insn_p"): Likewise.
16276         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
16277         param from rtx to rtx_insn *.
16278         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
16279         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
16280         (m68k_sched_attr_size): Likewise.
16281         (sched_get_opxy_mem_type): Likewise for param "insn".
16282         (m68k_sched_attr_op_mem): Likewise.
16283         (sched_mem_operand_p): Likewise.
16284         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
16285         * config/mep/mep.c (mep_multi_slot): Likewise.
16286         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
16287         first param.
16288         (mips_sync_loop_insns): Likewise.
16289         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
16290         method of "final_sequence" for typesafety.
16291         (mips_process_sync_loop): Strengthen param "insn" from rtx to
16292         rtx_insn *.
16293         (mips_output_sync_loop): Likewise.
16294         (mips_sync_loop_insns): Likewise.
16295         (mips_74k_agen_init): Likewise.
16296         (mips_sched_init): Use NULL rather than NULL_RTX when working with
16297         insns.
16298         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
16299         Strengthen param "insn" from rtx to rtx_insn *.
16300         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
16301         local "insn".
16302         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
16303         param.
16304         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
16305         "insn".  Use method of rtx_sequence for typesafety.
16306         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
16307         rtx_insn *.
16308         (branch_needs_nop_p): Likewise.
16309         (use_skip_p): Likewise.
16310         (pa_insn_refs_are_delayed): Likewise.
16311         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
16312         for locals "insn", "ninsn".
16313         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
16314         "insn".
16315         (is_cracked_insn): Likewise.
16316         (is_branch_slot_insn): Likewise.
16317         (is_nonpipeline_insn): Likewise.
16318         (insn_terminates_group_p): Likewise.
16319         (insn_must_be_first_in_group): Likewise.
16320         (insn_must_be_last_in_group): Likewise.
16321         (force_new_group): Likewise for param "next_insn".
16322         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
16323         "insn".
16324         (s390_sched_score): Likewise.
16325         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
16326         (rtx sfunc_uses_reg): Likewise for sole param.
16327         * config/sh/sh.c (sh_print_operand): Use insn method of
16328         final_sequence for typesafety.
16329         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
16330         Use insn method of final_sequence for typesafety.
16331         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
16332         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
16333         for param.
16334         (eligible_for_return_delay): Likewise.
16335         (eligible_for_sibcall_delay): Likewise.
16336         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
16337         (eligible_for_return_delay): Likewise.
16338         (eligible_for_sibcall_delay): Likewise.
16339         * config/stormy16/stormy16-protos.h
16340         (xstormy16_output_cbranch_hi): Likewise for final param.
16341         (xstormy16_output_cbranch_si): Likewise.
16342         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
16343         (xstormy16_output_cbranch_si): Likewise.
16344         * config/v850/v850-protos.h (notice_update_cc): Likewise.
16345         * config/v850/v850.c (notice_update_cc): Likewise.
16346
16347         * final.c (get_attr_length_1): Strengthen param "insn" and param
16348         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
16349         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
16350         (get_attr_min_length): Likewise.
16351         (shorten_branches): Likewise for signature of locals "length_fun"
16352         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
16353         from a checked cast and use its methods for clarity and to enable
16354         strengthening local "inner_insn" from rtx to rtx_insn *.
16355         * genattr.c (gen_attr): When writing out the prototypes of the
16356         various generated "get_attr_" functions, strengthen the params of
16357         the non-const functions from rtx to rtx_insn *.
16358         Similarly, strengthen the params of insn_default_length,
16359         insn_min_length, insn_variable_length_p, insn_current_length.
16360         (main): Similarly, strengthen the param of num_delay_slots,
16361         internal_dfa_insn_code, insn_default_latency, bypass_p,
16362         insn_latency, min_issue_delay, print_reservation,
16363         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
16364         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
16365         to hook_int_rtx_insn_unreachable.
16366         * genattrtab.c (write_attr_get): When writing out the generated
16367         "get_attr_" functions, strengthen the param "insn" from rtx to
16368         rtx_insn *, eliminating a checked cast.
16369         (make_automaton_attrs): When writing out prototypes of
16370         "internal_dfa_insn_code_", "insn_default_latency_" functions
16371         and the "internal_dfa_insn_code" and "insn_default_latency"
16372         callbacks, strengthen their params from rtx to rtx_insn *
16373         * genautomata.c (output_internal_insn_code_evaluation): When
16374         writing out code, add a checked cast from rtx to rtx_insn * when
16375         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
16376         (output_dfa_insn_code_func): Strengthen param of generated
16377         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
16378         (output_trans_func): Likewise for generated function
16379         "state_transition".
16380         (output_internal_insn_latency_func): When writing out generated
16381         function "internal_insn_latency", rename params from "insn" and
16382         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
16383         locals "insn" and "insn2" as rtx_insn * with checked casts once
16384         we've proven that we're not dealing with const0_rtx.
16385         (output_insn_latency_func):  Strengthen param of generated
16386         function "insn_latency" from rtx to rtx_insn *.
16387         (output_print_reservation_func): Likewise for generated function
16388         "print_reservation".
16389         (output_insn_has_dfa_reservation_p): Likewise for generated
16390         function "insn_has_dfa_reservation_p".
16391         * hooks.c (hook_int_rtx_unreachable): Rename to...
16392         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
16393         from rtx to rtx_insn *.
16394         * hooks.h (hook_int_rtx_unreachable): Likewise.
16395         (extern int hook_int_rtx_insn_unreachable): Likewise.
16396         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
16397         (get_attr_min_length): Likewise.
16398         * recog.c (get_enabled_alternatives): Likewise.
16399         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
16400         * reorg.c (find_end_label): Introduce local rtx "pat" and
16401         strengthen local "insn" from rtx to rtx_insn *.
16402         (redundant_insn): Use insn method of "seq" rather than element for
16403         typesafety; strengthen local "control" from rtx to rtx_insn *.
16404         * resource.c (mark_referenced_resources): Add checked cast to
16405         rtx_insn * within INSN/JUMP_INSN case.
16406         (mark_set_resources): Likewise.
16407         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
16408         rtx to rtx_insn *.
16409
16410 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
16411
16412         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
16413         param "label" from rtx to rtx_insn *.
16414         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
16415         and local "op".
16416         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
16417         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
16418         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
16419         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
16420         * final.c (default_label_align_after_barrier_max_skip): Strengthen
16421         param from rtx to rtx_insn *.
16422         (default_loop_align_max_skip): Likewise.
16423         (default_label_align_max_skip): Likewise.
16424         (default_jump_align_max_skip): Likewise.
16425         * target.def (label_align_after_barrier_max_skip): Likewise.
16426         (loop_align_max_skip): Likewise.
16427         (label_align_max_skip): Likewise.
16428         (jump_align_max_skip): Likewise.
16429         * targhooks.h (default_label_align_after_barrier_max_skip):
16430         Likewise.
16431         (default_loop_align_max_skip): Likewise.
16432         (default_label_align_max_skip): Likewise.
16433         (default_jump_align_max_skip): Likewise.
16434
16435 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
16436
16437         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
16438         from const_rtx to const rtx_insn *.  Update union members from rtx
16439         to rtx_insn *.
16440         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
16441         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
16442         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
16443         strengthen both params from const_rtx to const rtx_insn *.
16444         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
16445         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
16446         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
16447         rtx_insn *.
16448         * target.def (can_follow_jump): Strengthen both params from
16449         const_rtx to const rtx_insn *, and update default implementation
16450         from hook_bool_const_rtx_const_rtx_true to
16451         hook_bool_const_rtx_insn_const_rtx_insn_true.
16452
16453 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
16454
16455         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
16456         "insn" from rtx to rtx_insn *.
16457         * sched-int.h (deps_start_bb): Likewise for 2nd param.
16458
16459 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16460             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16461             Anna Tikhonova  <anna.tikhonova@intel.com>
16462             Ilya Tocar  <ilya.tocar@intel.com>
16463             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16464             Ilya Verbin  <ilya.verbin@intel.com>
16465             Kirill Yukhin  <kirill.yukhin@intel.com>
16466             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16467
16468         * config/i386/sse.md
16469         (define_insn "vcvtph2ps<mask_name>"): Add masking.
16470         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
16471         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
16472         (define_expand "vcvtps2ph_mask"): New.
16473         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
16474         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
16475         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
16476
16477 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16478             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16479             Anna Tikhonova  <anna.tikhonova@intel.com>
16480             Ilya Tocar  <ilya.tocar@intel.com>
16481             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16482             Ilya Verbin  <ilya.verbin@intel.com>
16483             Kirill Yukhin  <kirill.yukhin@intel.com>
16484             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16485
16486         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
16487         New.
16488         (define_mode_iterator VI24_AVX512BW_1): Ditto.
16489         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
16490         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
16491         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
16492         also for TARGET_AVX512VL.
16493         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
16494
16495 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
16496
16497         * doc/install.texi (Options specification): add
16498         --disable-libsanitizer item.
16499
16500 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
16501             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
16502
16503         PR target/61407
16504         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
16505         and above.
16506         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
16507         kernel version check to avoid incrementing it after every major OS X
16508         release.
16509         (darwin_default_min_version): Avoid static memory buffer.
16510
16511 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
16512
16513         * tree.c (need_assembler_name_p): Store C++ type mangling only
16514         for aggregates.
16515
16516 2014-09-13  Marek Polacek  <polacek@redhat.com>
16517
16518         * tree.c (protected_set_expr_location): Don't check whether T is
16519         non-null here.
16520
16521 2014-09-12  DJ Delorie  <dj@redhat.com>
16522
16523         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
16524         (extend_and_shift1_hipsi2): Likewise.
16525         (extend_and_shift2_hipsi2): Likewise.
16526
16527 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
16528
16529         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
16530         with NULL when dealing with an insn.
16531         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
16532         from rtx to rtx_insn *.
16533         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
16534         const_rtx to const rtx_insn *.
16535         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
16536
16537 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
16538
16539         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
16540         assert.
16541
16542 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
16543
16544         * target.def (libgcc_floating_mode_supported_p): New hook.
16545         * targhooks.c (default_libgcc_floating_mode_supported_p): New
16546         function.
16547         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
16548         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
16549         (LIBGCC2_HAS_TF_MODE): Remove.
16550         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
16551         * doc/tm.texi: Regenerate.
16552         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
16553         machine mode.
16554         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
16555         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
16556         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
16557         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
16558         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16559         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
16560         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
16561         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
16562         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
16563         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
16564         function.
16565         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
16566         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16567         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16568         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16569         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16570         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16571         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16572         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
16573         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
16574         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
16575         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
16576         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
16577         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
16578         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
16579         Remove.
16580         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
16581         New macro.
16582         (ia64_libgcc_floating_mode_supported_p): New function.
16583         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
16584         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
16585         (IA64_NO_LIBGCC_TFMODE): Define.
16586         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
16587         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
16588         macro.
16589         (pdp11_scalar_mode_supported_p): New function.
16590         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
16591         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
16592
16593 2014-09-12  Richard Biener  <rguenther@suse.de>
16594
16595         PR middle-end/63237
16596         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
16597
16598 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
16599
16600         * tree.c (integer_each_onep): New function.
16601         * tree.h (integer_each_onep): Declare it.
16602         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
16603         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
16604         (X & 1) == 0 for vector and complex.
16605
16606 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16607
16608         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
16609         for A57.
16610         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
16611         cost to spilling from integer to FP registers.
16612
16613 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16614
16615         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
16616         move handling.
16617         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
16618         are now handled correctly.
16619
16620 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16621
16622         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
16623         handling of CALLER_SAVE_REGS and POINTER_REGS.
16624
16625 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16626
16627         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
16628         the number of hard registers.
16629
16630 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16631             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16632             Anna Tikhonova  <anna.tikhonova@intel.com>
16633             Ilya Tocar  <ilya.tocar@intel.com>
16634             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16635             Ilya Verbin  <ilya.verbin@intel.com>
16636             Kirill Yukhin  <kirill.yukhin@intel.com>
16637             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16638
16639         * config/i386/sse.md
16640         (define_mode_iterator VI48_AVX512VL): New.
16641         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
16642         "avx512f_vternlog<mode>_maskz" and update mode iterator.
16643         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
16644         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
16645         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
16646         "avx512f_vternlog<mode>_mask" and update mode iterator.
16647         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
16648         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
16649         iterator.
16650         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
16651         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
16652         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
16653         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
16654         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
16655         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
16656
16657 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16658             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16659             Anna Tikhonova  <anna.tikhonova@intel.com>
16660             Ilya Tocar  <ilya.tocar@intel.com>
16661             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16662             Ilya Verbin  <ilya.verbin@intel.com>
16663             Kirill Yukhin  <kirill.yukhin@intel.com>
16664             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16665
16666         * config/i386/sse.md (VI128_256): Delete.
16667         (define_mode_iterator VI124_256): New.
16668         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
16669         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
16670         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
16671         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
16672         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
16673         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
16674         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
16675         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
16676         iterator.
16677         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
16678         in presence of AVX-512.
16679
16680 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16681             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16682             Anna Tikhonova  <anna.tikhonova@intel.com>
16683             Ilya Tocar  <ilya.tocar@intel.com>
16684             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16685             Ilya Verbin  <ilya.verbin@intel.com>
16686             Kirill Yukhin  <kirill.yukhin@intel.com>
16687             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16688
16689         * config/i386/sse.md
16690         (define_expand "<avx512>_gathersi<mode>"): Rename from
16691         "avx512f_gathersi<mode>".
16692         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
16693         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
16694         (define_expand "<avx512>_gatherdi<mode>"): Rename from
16695         "avx512f_gatherdi<mode>".
16696         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
16697         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
16698         wide versions.
16699         (define_expand "<avx512>_scattersi<mode>"): Rename from
16700         "avx512f_scattersi<mode>".
16701         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
16702         (define_expand "<avx512>_scatterdi<mode>"): Rename from
16703         "avx512f_scatterdi<mode>".
16704         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
16705
16706 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
16707
16708         * ira.h (ira_finish_once): Delete.
16709         * ira-int.h (target_ira_int::~target_ira_int): Declare.
16710         (target_ira_int::free_ira_costs): Likewise.
16711         (target_ira_int::free_register_move_costs): Likewise.
16712         (ira_finish_costs_once): Delete.
16713         * ira.c (free_register_move_costs): Replace with...
16714         (target_ira_int::free_register_move_costs): ...this new function.
16715         (target_ira_int::~target_ira_int): Define.
16716         (ira_init): Call free_register_move_costs as a member function rather
16717         than a global function.
16718         (ira_finish_once): Delete.
16719         * ira-costs.c (free_ira_costs): Replace with...
16720         (target_ira_int::free_ira_costs): ...this new function.
16721         (ira_init_costs): Call free_ira_costs as a member function rather
16722         than a global function.
16723         (ira_finish_costs_once): Delete.
16724         * target-globals.c (target_globals::~target_globals): Call the
16725         target_ira_int destructor.
16726         * toplev.c: Include lra.h.
16727         (finalize): Call lra_finish_once rather than ira_finish_once.
16728
16729 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
16730
16731         * common.opt (flto-odr-type-merging): New flag.
16732         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
16733         (types_same_for_odr): Likewise.
16734         (odr_subtypes_equivalent_p): Likewise.
16735         (add_type_duplicate): Do not walk type variants.
16736         (register_odr_type): New function.
16737         * ipa-utils.h (register_odr_type): Declare.
16738         (odr_type_p): New function.
16739         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
16740         TYPE_DECLs
16741         * doc/invoke.texi (-flto-odr-type-merging): Document.
16742         * tree.c (need_assembler_name_p): Compute ODR names when asked
16743         for it.
16744         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
16745
16746 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
16747
16748         PR target/63228
16749         * config/i386/i386.c (ix86_option_override_internal): Also turn
16750         off OPTION_MASK_ABI_X32 for -m16.
16751
16752 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
16753
16754         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
16755         GPR instead of P.
16756
16757 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
16758
16759         PR target/58757
16760         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16761         Directly forward to __*_DENORM_MIN__.
16762
16763 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
16764
16765         * rtl.h (LABEL_REF_LABEL): New macro.
16766
16767         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
16768         of XEXP (, 0), where we know that we have a LABEL_REF.
16769         * cfgbuild.c (make_edges): Likewise.
16770         (purge_dead_tablejump_edges): Likewise.
16771         * cfgexpand.c (convert_debug_memory_address): Likewise.
16772         * cfgrtl.c (patch_jump_insn): Likewise.
16773         * combine.c (distribute_notes): Likewise.
16774         * cse.c (hash_rtx_cb): Likewise.
16775         (exp_equiv_p): Likewise.
16776         (fold_rtx): Likewise.
16777         (check_for_label_ref): Likewise.
16778         * cselib.c (rtx_equal_for_cselib_1): Likewise.
16779         (cselib_hash_rtx): Likewise.
16780         * emit-rtl.c (mark_label_nuses): Likewise.
16781         * explow.c (convert_memory_address_addr_space): Likewise.
16782         * final.c (output_asm_label): Likewise.
16783         (output_addr_const): Likewise.
16784         * gcse.c (add_label_notes): Likewise.
16785         * genconfig.c (walk_insn_part): Likewise.
16786         * genrecog.c (validate_pattern): Likewise.
16787         * ifcvt.c (cond_exec_get_condition): Likewise.
16788         (noce_emit_store_flag): Likewise.
16789         (noce_get_alt_condition): Likewise.
16790         (noce_get_condition): Likewise.
16791         * jump.c (maybe_propagate_label_ref): Likewise.
16792         (mark_jump_label_1): Likewise.
16793         (redirect_exp_1): Likewise.
16794         (rtx_renumbered_equal_p): Likewise.
16795         * lra-constraints.c (operands_match_p): Likewise.
16796         * reload.c (operands_match_p): Likewise.
16797         (find_reloads): Likewise.
16798         * reload1.c (set_label_offsets): Likewise.
16799         * reorg.c (get_branch_condition): Likewise.
16800         * rtl.c (rtx_equal_p_cb): Likewise.
16801         (rtx_equal_p): Likewise.
16802         * rtlanal.c (reg_mentioned_p): Likewise.
16803         (rtx_referenced_p): Likewise.
16804         (get_condition): Likewise.
16805         * sched-vis.c (print_value): Likewise.
16806         * varasm.c (const_hash_1): Likewise.
16807         (compare_constant): Likewise.
16808         (const_rtx_hash_1): Likewise.
16809         (output_constant_pool_1): Likewise.
16810
16811 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
16812
16813         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
16814         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
16815         instead of minus.
16816         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
16817         cr6_test_for_lt_reverse): Ditto.
16818
16819 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
16820
16821         PR c++/61489
16822         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
16823
16824 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
16825
16826         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
16827         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
16828         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
16829         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
16830         Delete.
16831
16832         (aarch64_fold_builtin): Remove all reinterpret cases.
16833
16834         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
16835
16836         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
16837
16838         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
16839         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
16840         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
16841         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
16842         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
16843         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
16844         aarch64_reinterpretv2df<mode>): Delete.
16845
16846         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
16847
16848         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
16849         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
16850         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
16851         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
16852         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
16853         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
16854         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
16855         vreinterpret_u32_f64): Use cast.
16856
16857         * config/aarch64/iterators.md (VD_RE): Delete.
16858
16859 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
16860
16861         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
16862         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
16863         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
16864         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
16865         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
16866         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
16867         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
16868         Replace inline assembler with __aarch64_vset_lane_any.
16869
16870 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
16871
16872         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
16873         types.
16874         (vmull_high_lane_s32): Likewise.
16875         (vmull_high_lane_u16): Likewise.
16876         (vmull_high_lane_u32): Likewise.
16877
16878 2014-09-11  Jason Merrill  <jason@redhat.com>
16879
16880         PR c++/58678
16881         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
16882
16883 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
16884
16885         PR target/63223
16886         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
16887         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
16888         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
16889
16890 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16891             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16892             Anna Tikhonova  <anna.tikhonova@intel.com>
16893             Ilya Tocar  <ilya.tocar@intel.com>
16894             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16895             Ilya Verbin  <ilya.verbin@intel.com>
16896             Kirill Yukhin  <kirill.yukhin@intel.com>
16897             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16898
16899         * config/i386/sse.md
16900         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
16901         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
16902         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
16903         New.
16904         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
16905         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
16906         iterator.
16907         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
16908         New.
16909         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
16910         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
16911         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
16912         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
16913         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
16914         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
16915         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
16916         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
16917         iterator.
16918         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
16919         New.
16920         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
16921         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
16922         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
16923
16924 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
16925
16926         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
16927         to access removed nodes.
16928
16929 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
16930
16931         PR tree-optimization/63186
16932         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
16933         (mark_nonssa_use): Likewise.
16934         (verify_non_ssa_vars): Verify all header blocks for label
16935         definitions.
16936
16937 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16938             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16939             Anna Tikhonova  <anna.tikhonova@intel.com>
16940             Ilya Tocar  <ilya.tocar@intel.com>
16941             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16942             Ilya Verbin  <ilya.verbin@intel.com>
16943             Kirill Yukhin  <kirill.yukhin@intel.com>
16944             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16945
16946         * config/i386/sse.md
16947         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
16948         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
16949         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
16950         "<avx2_avx512f>_permvar<mode><mask_name>".
16951         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
16952         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
16953         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
16954         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
16955         Ditto.
16956         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
16957         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
16958         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
16959         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
16960
16961 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
16962
16963         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
16964         V2DF, V4SF, DF, and DI modes.
16965         (vsx_fmav2df2): Likewise.
16966         (vsx_float_fix_<mode>2): Likewise.
16967         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
16968
16969 2014-09-10  Xinliang David Li  <davidxl@google.com>
16970
16971         PR target/63209
16972         * config/arm/arm.md (movcond_addsi): Handle case where source
16973         and target operands are the same.
16974
16975 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
16976
16977         * final.c (this_is_asm_operands): Strengthen this variable from
16978         rtx to const rtx_insn *.
16979         * output.h (this_is_asm_operands): Likewise.
16980         * rtl-error.c (location_for_asm): Strengthen param "insn" from
16981         const_rtx to const rtx_insn *.
16982         (diagnostic_for_asm): Likewise.
16983         * rtl-error.h (error_for_asm): Likewise.
16984         (warning_for_asm): Likewise.
16985
16986 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
16987
16988         * genextract.c (print_header): When writing out insn_extract to
16989         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
16990         * recog.h (insn_extract): Strengthen the param from rtx to
16991         rtx_insn *.
16992
16993 2014-09-10  Mike Stump  <mikestump@comcast.net>
16994
16995         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
16996         8.6.1.
16997
16998 2014-09-10  Martin Jambor  <mjambor@suse.cz>
16999
17000         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
17001         (analyze): Do not set analyze flag if expand_thunk returns false;.
17002         (create_wrapper): Likewise.
17003         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
17004
17005 2014-09-10  Martin Jambor  <mjambor@suse.cz>
17006
17007         PR ipa/61654
17008         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
17009         new decl properly.  Analyze the new thunk if it is expanded.
17010
17011 2014-09-10  Andreas Schwab  <schwab@suse.de>
17012
17013         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
17014         [USED_FOR_TARGET]: Define.
17015
17016 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
17017
17018         * config/mips/mips.c (mips_secondary_reload_class): Handle
17019         regno < 0 case.
17020
17021 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
17022
17023         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
17024         assignment.
17025
17026 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
17027
17028         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
17029         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
17030         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
17031         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
17032         flag_delete_null_pointer_checks for them.
17033         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
17034         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
17035         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
17036         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
17037         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
17038         stmt's iterator.
17039         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
17040         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
17041         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
17042         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
17043         * doc/invoke.texi (-fsanitize=nonnull-attribute,
17044         -fsanitize=returns-nonnull-attribute): Document.
17045
17046         * ubsan.h (struct ubsan_mismatch_data): Removed.
17047         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17048         * ubsan.c (ubsan_source_location): For unknown locations,
17049         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
17050         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17051         Allow more than one location and arbitrary extra arguments passed
17052         in ... instead of through MISMATCH pointer.
17053         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
17054         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
17055         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
17056         callers.
17057
17058 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17059             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17060             Anna Tikhonova  <anna.tikhonova@intel.com>
17061             Ilya Tocar  <ilya.tocar@intel.com>
17062             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17063             Ilya Verbin  <ilya.verbin@intel.com>
17064             Kirill Yukhin  <kirill.yukhin@intel.com>
17065             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17066
17067         * config/i386/sse.md
17068         (define_mode_iterator VI48F): New.
17069         (define_insn "<avx512>_compress<mode>_mask"): Rename from
17070         "avx512f_compress<mode>_mask" and update mode iterator.
17071         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
17072         "avx512f_compressstore<mode>_mask" and update mode iterator.
17073         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
17074         "avx512f_expand<mode>_maskz" and update mode iterator.
17075         (define_insn "<avx512>_expand<mode>_mask"): Rename from
17076         "avx512f_expand<mode>_mask" and update mode iterator.
17077
17078 2014-09-10  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/i386.c
17088         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
17089         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
17090         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
17091         avx512dq_rangepv4sf_mask.
17092         * config/i386/sse.md
17093         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
17094         UNSPEC_RANGE.
17095         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
17096         (define_insn "reduces<mode>"): Ditto.
17097         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
17098         Ditto.
17099         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
17100         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
17101         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
17102
17103 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17104             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17105             Anna Tikhonova  <anna.tikhonova@intel.com>
17106             Ilya Tocar  <ilya.tocar@intel.com>
17107             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17108             Ilya Verbin  <ilya.verbin@intel.com>
17109             Kirill Yukhin  <kirill.yukhin@intel.com>
17110             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17111
17112         * config/i386/i386.c
17113         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
17114         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
17115         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
17116         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
17117         avx512vl_getmantv2df_mask.
17118         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
17119         avx512f_vgetmantv4sf_round.
17120         * config/i386/sse.md
17121         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
17122         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
17123         mode iterator.
17124         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
17125         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
17126         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
17127         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
17128         iterator..
17129         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
17130         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
17131         update mode iterator.
17132         (define_expand
17133         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
17134         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
17135         mode iterator.
17136         (define_insn
17137         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
17138         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
17139         update mode iterator.
17140         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
17141         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
17142         iterator..
17143         (define_insn
17144         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
17145         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
17146         mode iterator..
17147         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
17148         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
17149         update mode iterator.
17150         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
17151         "avx512f_getmant<mode><round_saeonly_name>".
17152
17153 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17154
17155         PR ipa/63166
17156         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
17157
17158 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17159             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17160             Anna Tikhonova  <anna.tikhonova@intel.com>
17161             Ilya Tocar  <ilya.tocar@intel.com>
17162             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17163             Ilya Verbin  <ilya.verbin@intel.com>
17164             Kirill Yukhin  <kirill.yukhin@intel.com>
17165             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17166
17167         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
17168         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
17169         (define_mode_iterator FMAMODE_AVX512): New.
17170         (define_mode_iterator FMAMODE): Remove conditions.
17171         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
17172         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
17173         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
17174         mode iterator.
17175         (define_mode_iterator FMAMODE_NOVF512): Remove.
17176         (define_insn "*fma_fmadd_<mode>"): Rename from
17177         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
17178         FMAMODE mode iterator.
17179         (define_mode_iterator VF_SF_AVX512VL): New.
17180         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
17181         Use VF_SF_AVX512VL mode iterator.
17182         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
17183         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
17184         iterator.
17185         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
17186         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17187         iterator.
17188         (define_insn "*fma_fmsub_<mode>"): Rename from
17189         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
17190         FMAMODE mode iterator.
17191         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
17192         Use VF_SF_AVX512VL mode iterator.
17193         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
17194         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
17195         iterator.
17196         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
17197         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17198         iterator.
17199         (define_insn "*fma_fnmadd_<mode>"): Rename from
17200         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
17201         use FMAMODE mode iterator.
17202         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
17203         Use VF_SF_AVX512VL mode iterator.
17204         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
17205         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
17206         iterator.
17207         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
17208         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17209         iterator.
17210         (define_insn "*fma_fnmsub_<mode>"): Rename from
17211         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
17212         FMAMODE mode iterator.
17213         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
17214         Use VF_SF_AVX512VL mode iterator.
17215         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
17216         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
17217         iterator.
17218         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
17219         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17220         iterator.
17221         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
17222         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
17223         use VF_AVX512VL mode iterator.
17224         (define_insn "*fma_fmaddsub_<mode>"): Rename from
17225         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
17226         remove subst usage.
17227         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
17228         Use VF_SF_AVX512VL mode iterator.
17229         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
17230         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
17231         iterator.
17232         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
17233         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17234         iterator.
17235         (define_insn "*fma_fmsubadd_<mode>"): Rename from
17236         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
17237         remove usage of subst.
17238         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
17239         Use VF_SF_AVX512VL mode iterator.
17240         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
17241         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
17242         iterator.
17243         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
17244         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17245         iterator.
17246
17247 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
17248
17249         Revert r213751:
17250         * calls.c (precompute_arguments): Check
17251          promoted_for_signed_and_unsigned_p and set the promoted mode.
17252         (promoted_for_signed_and_unsigned_p): New function.
17253         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
17254         and set the promoted mode.
17255         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
17256         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
17257         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
17258
17259 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17260
17261         * opth-gen.awk: Generate mapping from cpp message reasons to the
17262         options that enable them.
17263         * doc/options.texi (CppReason): Document.
17264
17265 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17266
17267         * doc/invoke.texi (Wnormalized=): Update.
17268
17269 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
17270
17271         PR target/63195
17272         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
17273         operands.  Split off the constant operand alternative to ...
17274         (*bool<mode>3_imm): New.
17275
17276 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
17277
17278         * rtl.h (single_set_2): Strengthen first param from const_rtx to
17279         const rtx_insn *, and move prototype to above...
17280         (single_set): ...this.  Convert this from a macro to an inline
17281         function, enforcing the requirement that the param is a const
17282         rtx_insn *.
17283         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
17284
17285         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
17286         Strengthen both params from rtx to rtx_insn *.
17287         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
17288         Likewise; introduce locals "producer_set", "consumer_set", using
17289         them in place of "producer" and "consumer" when dealing with SET
17290         rather than insn.
17291         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
17292         when invoking single_set in region guarded by INSN_P.
17293         (avr_out_bitop): Likewise.
17294         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
17295         region guarded by GET_CODE check, using methods to strengthen
17296         local "this_insn" from rtx to rtx_insn *, and for clarity.
17297         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
17298         Strengthen local "insn" from rtx to rtx_insn *.
17299         (define_insn_and_split "xload<mode>_A"): Likewise.
17300         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
17301         "insn".
17302         (find_load): Likewise for return type.
17303         (workaround_speculation): Likewise for both locals named
17304         "load_insn".
17305         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
17306         local "cc0_user".
17307         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
17308         for local "prev".
17309         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
17310         param 2.
17311         * config/h8300/h8300.c (notice_update_cc): Likewise.
17312         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
17313         "insn" and "dep_insn".
17314         (exact_store_load_dependency): Likewise for both params.
17315         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
17316         since this now clashes with inline function.  Instead, delay
17317         calling single_set until the point where its needed, and then
17318         assign the result to "compare_set" and rework the conditional that
17319         follows.
17320         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
17321         local "last" from rtx to rtx_insn *.
17322         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
17323         second param.
17324         (mips_store_data_bypass_p): Likewise for both params.
17325         * config/mips/mips.c (mips_load_store_insns): Likewise for second
17326         param.
17327         (mips_store_data_bypass_p): Likewise for both params.
17328         (mips_orphaned_high_part_p): Likewise for param "insn".
17329         * config/mn10300/mn10300.c (extract_bundle): Likewise.
17330         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
17331         Introduce local rtx "insn2_pat".
17332         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
17333         "ninsn".
17334         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
17335         Introduce local rtx "set", using it in place of "insn" for the
17336         result of single_set.  This appears to fix a bug, since the call
17337         to find_regno_note on a SET does nothing.
17338         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
17339         params from rtx to rtx_insn *.
17340         (set_to_load_agen): Likewise.
17341         * config/s390/s390.c (s390_label_align): Likewise for local
17342         "prev_insn".  Introduce new rtx locals "set" and "src", using
17343         them in place of "prev_insn" for the results of single_set
17344         and SET_SRC respectively.
17345         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
17346         Introduce new rtx local "set" using in place of "jump" for the
17347         result of single_set.  Use SET_SRC (set) rather than plain
17348         XEXP (set, 1).
17349         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
17350         rtx to rtx_insn *.
17351         (noncall_uses_reg): Likewise.
17352         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
17353         guarded by GET_CODE check, using its methods for clarity, and to
17354         enable strengthening local "this_insn" from rtx to rtx_insn *.
17355         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
17356         "insn" from rtx to rtx_insn *.
17357         (define_expand "umulhisi3"): Likewise.
17358         (define_expand "smulsi3_highpart"): Likewise.
17359         (define_expand "umulsi3_highpart"): Likewise.
17360         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
17361         local "after".  Replace GET_CODE check with a dyn_cast,
17362         introducing new local rtx_sequence * "seq", using insn method for
17363         typesafety.
17364
17365         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
17366         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
17367         place of "insn" once we're dealing with patterns rather than the
17368         input insn.
17369         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
17370         (scan_trace): Likewise for local "elt", updating lookups within
17371         sequence to use insn method rather than element method.
17372         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
17373         to rtx_insn *.
17374         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
17375         * ifcvt.c (noce_try_abs): Likewise for local "insn".
17376         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
17377         invoking single_set.
17378         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
17379         "insn" from rtx to rtx_insn *.
17380         (skip_usage_debug_insns): Likewise for return type, adding a
17381         checked cast.
17382         (check_secondary_memory_needed_p): Likewise for local "insn".
17383         (inherit_reload_reg): Likewise.
17384         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
17385         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
17386         checked casts.
17387         (store_data_bypass_p): Likewise for both params.
17388         (if_test_bypass_p): Likewise.
17389         * recog.h (store_data_bypass_p): Likewise for both params.
17390         (if_test_bypass_p): Likewise.
17391         * reload.c (find_equiv_reg): Likewise for local "where".
17392         * reorg.c (delete_jump): Likewise for param "insn".
17393         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
17394         to const rtx_insn *.
17395         * store-motion.c (replace_store_insn): Likewise for param "del".
17396         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
17397         and use its methods for clarity, and to strengthen local "del"
17398         from rtx to rtx_insn *.
17399         (build_store_vectors): Use insn method of "st" when calling
17400         replace_store_insn for typesafety and clarity.
17401
17402 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17403
17404         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
17405         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
17406         on how to make it legal in future.
17407
17408 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
17409
17410         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
17411         to rtx_insn *.
17412         (restinsn): Likewise.
17413         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
17414         Likewise for param.
17415         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
17416         Likewise.
17417         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
17418         first param.
17419         (arc_hazard): Likewise for both params.
17420         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
17421         checked casts to rtx_sequence * and uses of the insn method for
17422         type-safety.
17423         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
17424         (arc_adjust_insn_length): Likewise for param "insn".
17425         (struct insn_length_parameters_s): Likewise for first param of
17426         "get_variants" callback field.
17427         (arc_get_insn_variants): Likewise for first param and local
17428         "inner".  Replace a check of GET_CODE with a dyn_cast to
17429         rtx_sequence *, using methods for type-safety and clarity.
17430         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
17431         rtx_sequence * and uses of the insn method for type-safety when
17432         invoking arc_adjust_insn_length.
17433         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
17434         for param.
17435         (arm_address_offset_is_imm): Likewise.
17436         (struct tune_params): Likewise for params 1 and 3 of the
17437         "sched_adjust_cost" callback field.
17438         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
17439         params 1 and 3 ("insn" and "dep").
17440         (xscale_sched_adjust_cost): Likewise.
17441         (fa726te_sched_adjust_cost): Likewise.
17442         (cortexa7_older_only): Likewise for param "insn".
17443         (cortexa7_younger): Likewise.
17444         (arm_attr_length_move_neon): Likewise.
17445         (arm_address_offset_is_imm): Likewise.
17446         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
17447         * config/avr/avr.c (avr_notice_update_cc): Likewise.
17448         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
17449         (workaround_speculation): Likewise for local "last_condjump".
17450         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
17451         (shadow_or_blockage_p): Likewise.
17452         (get_unit_reqs): Likewise.
17453         (get_unit_operand_masks): Likewise.
17454         (c6x_registers_update): Likewise.
17455         (returning_call_p): Likewise.
17456         (can_use_callp): Likewise.
17457         (convert_to_callp): Likewise.
17458         (find_last_same_clock): Likwise for local "t".
17459         (reorg_split_calls): Likewise for local "shadow".
17460         (hwloop_pattern_reg): Likewise for param "insn".
17461         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
17462         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
17463         (frv_extract_membar): Likewise.
17464         (frv_optimize_membar_local): Strengthen param "last_membar" from
17465         rtx * to rtx_insn **.
17466         (frv_optimize_membar_global): Strengthen param "membar" from rtx
17467         to rtx_insn *.
17468         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
17469         to rtx_insn **.
17470         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
17471         both params from rtx to rtx_insn *.
17472         (ia64_ld_address_bypass_p): Likewise.
17473         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
17474         "insn".
17475         (ia64_safe_type): Likewise.
17476         (group_barrier_needed): Likewise.
17477         (safe_group_barrier_needed): Likewise.
17478         (ia64_single_set): Likewise.
17479         (is_load_p): Likewise.
17480         (record_memory_reference): Likewise.
17481         (get_mode_no_for_insn): Likewise.
17482         (important_for_bundling_p): Likewise.
17483         (unknown_for_bundling_p): Likewise.
17484         (ia64_st_address_bypass_p): Likewise for both params.
17485         (ia64_ld_address_bypass_p): Likewise.
17486         (expand_vselect): Introduce new local rtx_insn * "insn", using it
17487         in place of rtx "x" after the emit_insn call.
17488         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
17489         Strengthen param from rtx to rtx_insn *.
17490         (ix86_agi_dependent): Likewise for both params.
17491         (ix86_attr_length_immediate_default): Likewise for param 1.
17492         (ix86_attr_length_address_default): Likewise for param.
17493         (ix86_attr_length_vex_default): Likewise for param 1.
17494         * config/i386/i386.c (ix86_attr_length_immediate_default):
17495         Likewise for param "insn".
17496         (ix86_attr_length_address_default): Likewise.
17497         (ix86_attr_length_vex_default): Likewise.
17498         (ix86_agi_dependent): Likewise for both params.
17499         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
17500         (vselect_insn): Likewise for this variable.
17501         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
17502         for param 1.
17503         (m68k_sched_attr_opy_type): Likewise.
17504         * config/m68k/m68k.c (sched_get_operand): Likewise.
17505         (sched_attr_op_type): Likewise.
17506         (m68k_sched_attr_opx_type): Likewise.
17507         (m68k_sched_attr_opy_type): Likewise.
17508         (sched_get_reg_operand): Likewise.
17509         (sched_get_mem_operand): Likewise.
17510         (m68k_sched_address_bypass_p): Likewise for both params.
17511         (sched_get_indexed_address_scale): Likewise.
17512         (m68k_sched_indexed_address_bypass_p): Likewise.
17513         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
17514         (m68k_sched_indexed_address_bypass_p): Likewise.
17515         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
17516         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
17517         removing another.
17518         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
17519         params from rtx to rtx_insn *.
17520         (mips_fmadd_bypass): Likewise.
17521         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
17522         (mips_linked_madd_p): Likewise.
17523         (mips_macc_chains_last_hilo): Likewise for this variable.
17524         (mips_macc_chains_record): Likewise for param.
17525         (vr4130_last_insn): Likewise for this variable.
17526         (vr4130_swap_insns_p): Likewise for both params.
17527         (mips_ls2_variable_issue): Likewise for param.
17528         (mips_need_noat_wrapper_p): Likewise for param "insn".
17529         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
17530         in place of "x" after the emit_insn.
17531         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
17532         params from rtx to rtx_insn *.
17533         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
17534         (pa_combine_instructions): Introduce local "par" for result of
17535         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
17536         to make_insn_raw.
17537         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
17538         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
17539         (rl78_alloc_physical_registers_op1): Likewise.
17540         (rl78_alloc_physical_registers_op2): Likewise.
17541         (rl78_alloc_physical_registers_ro1): Likewise.
17542         (rl78_alloc_physical_registers_cmp): Likewise.
17543         (rl78_alloc_physical_registers_umul): Likewise.
17544         (rl78_alloc_address_registers_macax): Likewise.
17545         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
17546         * config/s390/predicates.md (execute_operation): Likewise for
17547         local "insn".
17548         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
17549         params.
17550         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
17551         (addr_generation_dependency_p): Likewise for param "insn".
17552         (s390_agen_dep_p): Likewise for both params.
17553         (s390_fpload_toreg): Likewise for param "insn".
17554         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
17555         * config/sh/sh.c (sh_loop_align): Likewise for param and local
17556         "next".
17557         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
17558         * config/sh/sh_treg_combine.cc
17559         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
17560         and local "i".
17561         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
17562         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
17563         "and_insn", "load", "shift".
17564         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
17565         "insn".
17566         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
17567         for XEXP (note, 0) of the REG_CC_SETTER note.
17568         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
17569         rtx_insn *, eliminating a checked cast made redundant by this.
17570         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
17571         to rtx_insn *.
17572         * genattr.c (main): When writing out the prototype to
17573         const_num_delay_slots, strengthen the param from rtx to
17574         rtx_insn *.
17575         * genattrtab.c (write_const_num_delay_slots): Likewise when
17576         writing out the implementation of const_num_delay_slots.
17577         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
17578         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
17579         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
17580         favor of new rtx locals "src" and "set" and new local rtx_insn *
17581         "insn" and "seq".
17582         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
17583         to rtx_insn *.
17584         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
17585         locals "cond", "if_then_else", "set" and new rtx_insn * locals
17586         "insn" and "seq".
17587         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
17588         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
17589         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
17590         the top-level scope, replacing with new more tightly-scoped rtx
17591         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
17592         "new_insn", "copy_of_insn_b", and make local rtx "set" more
17593         tightly-scoped.
17594         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
17595         rtx_insn *.
17596         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
17597         "move_insn".
17598         (ira_setup_alts): Likewise for param "insn".
17599         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
17600         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
17601         and an rtx_insn *.
17602         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
17603         new more-tightly scoped rtx locals "add3_insn", "insn",
17604         "add2_insn" and rtx_insn * "move_insn".
17605         * postreload-gcse.c (eliminate_partially_redundant_load): Add
17606         checked cast on result of gen_move_insn when invoking
17607         extract_insn.
17608         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
17609         rtx_insn *.
17610         (verify_changes): Add a checked cast on "object" when invoking
17611         insn_invalid_p.
17612         (extract_insn_cached): Strengthen param "insn" from rtx to
17613         rtx_insn *.
17614         (extract_constrain_insn_cached): Likewise.
17615         (extract_insn): Likewise.
17616         * recog.h (insn_invalid_p): Likewise for param 1.
17617         (recog_memoized): Likewise for param.
17618         (extract_insn): Likewise.
17619         (extract_constrain_insn_cached): Likewise.
17620         (extract_insn_cached): Likewise.
17621         * reload.c (can_reload_into): Likewise for local "test_insn".
17622         * reload.h (cleanup_subreg_operands): Likewise for param.
17623         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
17624         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
17625         result of emit_insn.  Remove a checked cast made redundant by this
17626         change.
17627         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
17628         rtx to rtx_insn *.
17629         * sel-sched.c (get_reg_class): Likewise.
17630
17631 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17632             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17633
17634         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
17635         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
17636         Define.
17637         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
17638
17639 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
17640
17641         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
17642         const rtx_insn *, and from rtx to rtx_insn * for the other
17643         overloaded variant.
17644         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
17645         INSN_LOCATION, since we know INSN_P holds.
17646         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
17647         (insn_file): Likewise.
17648         (insn_scope): Likewise.
17649         (insn_location): Likewise.
17650
17651         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
17652         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
17653         for the result of gen_load_const_gp.
17654         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
17655         param from rtx to rtx_insn *.
17656         * config/rs6000/rs6000.c (output_call): Likewise.
17657         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
17658         introducing a checked cast to rtx_sequence * and use of the insn
17659         method.
17660         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
17661         from rtx to rtx_insn *.
17662         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
17663         (insn_line): Likewise.
17664         (insn_file): Likewise.
17665         (insn_location): Likewise.
17666         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
17667         from rtx to rtx_insn *.
17668         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
17669         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
17670         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
17671         via a checked cast.
17672         * reorg.c (relax_delay_slots): Strengthen locals named "after"
17673         from rtx to rtx_insn *; use methods of "pat" for type-safety.
17674
17675 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
17676
17677         * combine.c (try_combine): Eliminate checked cast on result of
17678         gen_rtx_INSN.
17679         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
17680         autogenerated one by strengthening the return type and params 2 and 3
17681         from rtx to rtx_insn *, and by naming the params.
17682         * gengenrtl.c (special_rtx): Add INSN to those that are
17683         special-cased.
17684         * rtl.h (gen_rtx_INSN): New prototype.
17685
17686 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
17687
17688         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
17689         than NULL_RTX.
17690         (no_equiv): Likewise.
17691         (update_equiv_regs): Likewise.
17692         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
17693         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
17694         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
17695         clarity.
17696         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
17697         from rtx to rtx_insn_list *.
17698         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
17699         rtx_insn_list * and use methods for clarity and typesafety.
17700         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
17701         "list".
17702         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
17703         redundant check on INSN_P (insns): this cannot hold, as "insns" is
17704         an INSN_LIST, not an insn.
17705         (reverse_equiv_p): Strengthen local "insns" from rtx to
17706         rtx_insn_list * and use methods for clarity and typesafety.
17707         (contains_reloaded_insn_p): Likewise for local "list".
17708
17709 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
17710
17711         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
17712         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
17713         (arm_builtin_vectorized_function): Likewise.
17714         * config/arm/arm_neon_builtins.def: New macro for copysignf.
17715         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
17716
17717 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
17718
17719         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
17720         * builtins.h (default_target_builtins): Likewise.
17721         * gcse.h (default_target_gcse): Likewise.
17722         * target-globals.h (target_globals): Add a destructor.  Convert
17723         void-pointer fields back to their real type and change from
17724         GTY((atomic)) to GTY((skip)).
17725         (restore_target_globals): Remove casts accordingly.
17726         * target-globals.c (save_target_globals): Use XCNEW rather than
17727         ggc_internal_cleared_alloc to allocate non-GC structures.
17728         Use ggc_cleared_alloc to allocate the target_globals structure
17729         itself.
17730         (target_globals::~target_globals): Define.
17731
17732 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17733
17734         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
17735         mnemonic instead of fldmfdd.
17736         * config/arm/arm.c (vfp_output_fstmd): Rename to...
17737         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
17738         Output vpush when address register is SP.
17739         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
17740         (vfp_output_vstmd): ... This.
17741         * config/arm/vfp.md (push_multi_vfp): Update call to
17742         vfp_output_vstmd.
17743
17744 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17745
17746         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
17747
17748 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17749
17750         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
17751         (*sqrtdf2_vfp): Likewise.
17752         (*cmpsf_vfp): Likewise.
17753         (*cmpsf_trap_vfp): Likewise.
17754         (*cmpdf_vfp): Likewise.
17755         (*cmpdf_trap_vfp): Likewise.
17756
17757 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17758
17759         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
17760         (*truncdfsf2_vfp): Likewise.
17761         (*truncsisf2_vfp): Likewise.
17762         (*truncsidf2_vfp): Likewise.
17763         (fixuns_truncsfsi2): Likewise.
17764         (fixuns_truncdfsi2): Likewise.
17765         (*floatsisf2_vfp): Likewise.
17766         (*floatsidf2_vfp): Likewise.
17767         (floatunssisf2): Likewise.
17768         (floatunssidf2): Likewise.
17769
17770 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17771
17772         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
17773         (*muldf3_vfp): Likewise.
17774         (*mulsf3negsf_vfp): Likewise.
17775         (*muldf3negdf_vfp): Likewise.
17776         (*mulsf3addsf_vfp): Likewise.
17777         (*muldf3adddf_vfp): Likewise.
17778         (*mulsf3subsf_vfp): Likewise.
17779         (*muldf3subdf_vfp): Likewise.
17780         (*mulsf3negsfaddsf_vfp): Likewise.
17781         (*fmuldf3negdfadddf_vfp): Likewise.
17782         (*mulsf3negsfsubsf_vfp): Likewise.
17783         (*muldf3negdfsubdf_vfp): Likewise.
17784
17785 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17786
17787         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
17788         (*absdf2_vfp): Likewise.
17789         (*negsf2_vfp): Likewise.
17790         (*negdf2_vfp): Likewise.
17791         (*addsf3_vfp): Likewise.
17792         (*adddf3_vfp): Likewise.
17793         (*subsf3_vfp): Likewise.
17794         (*subdf3_vfp): Likewise.
17795         (*divsf3_vfp): Likewise.
17796         (*divdf3_vfp): Likewise.
17797
17798 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17799
17800         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
17801         multiple.
17802         (arm_print_operand): Don't convert real values to decimal
17803         representation in default case.
17804         (fp_immediate_constant): Delete.
17805         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
17806         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
17807         syntax.
17808         (*thumb2_movsi_vfp): Likewise.
17809         (*movdi_vfp): Likewise.
17810         (*movdi_vfp_cortexa8): Likewise.
17811         (*movhf_vfp_neon): Likewise.
17812         (*movhf_vfp): Likewise.
17813         (*movsf_vfp): Likewise.
17814         (*thumb2_movsf_vfp): Likewise.
17815         (*movdf_vfp): Likewise.
17816         (*thumb2_movdf_vfp): Likewise.
17817         (*movsfcc_vfp): Likewise.
17818         (*thumb2_movsfcc_vfp): Likewise.
17819         (*movdfcc_vfp): Likewise.
17820         (*thumb2_movdfcc_vfp): Likewise.
17821
17822 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
17823
17824         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
17825         (-mtune): Likewise.
17826         (-mcpu): Likewise.
17827
17828 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17829
17830         PR target/61749
17831         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
17832         Use qualifier_immediate for last operand.  Rename to...
17833         (aarch64_types_ternop_lane_qualifiers): ... This.
17834         (TYPES_QUADOP): Rename to...
17835         (TYPES_TERNOP_LANE): ... This.
17836         (aarch64_simd_expand_args): Return const0_rtx when encountering user
17837         error.  Change return of 0 to return of NULL_RTX.
17838         (aarch64_crc32_expand_builtin): Likewise.
17839         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
17840         ICE when expanding unknown builtin.
17841         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
17842         TERNOP_LANE qualifiers.
17843         (sqdmlsl_lane): Likewise.
17844         (sqdmlal_laneq): Likewise.
17845         (sqdmlsl_laneq): Likewise.
17846         (sqdmlal2_lane): Likewise.
17847         (sqdmlsl2_lane): Likewise.
17848         (sqdmlal2_laneq): Likewise.
17849         (sqdmlsl2_laneq): Likewise.
17850
17851 2014-09-09  Nick Clifton  <nickc@redhat.com>
17852
17853         * doc/invoke.texi (Optimization Options): Add missing @gol to the
17854         end of a line.
17855         (S/390 and zSeries Options): Remove superfluous word from the
17856         description of the -mhotpatch option.
17857
17858 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
17859
17860         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
17861         * ira.c: #include "shrink-wrap.h"
17862         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
17863         * ifcvt.c: #include "shrink-wrap.h"
17864         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
17865
17866 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
17867
17868         * common/config/picochip/picochip-common.c: Remove.
17869         * config.gcc: Remove support for picochip.
17870         * config/picochip/constraints.md: Remove.
17871         * config/picochip/dfa_space.md: Remove.
17872         * config/picochip/dfa_speed.md: Remove.
17873         * config/picochip/picochip-protos.h: Remove.
17874         * config/picochip/picochip.c: Remove.
17875         * config/picochip/picochip.h: Remove.
17876         * config/picochip/picochip.md: Remove.
17877         * config/picochip/picochip.opt: Remove.
17878         * config/picochip/predicates.md: Remove.
17879         * config/picochip/t-picochip: Remove.
17880         * doc/md.texi: Don't document picochi.
17881
17882 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
17883
17884         * basic-block.h (control_flow_insn_p): Strengthen param from
17885         const_rtx to const rtx_insn *.
17886         * cfgbuild.c (control_flow_insn_p): Likewise.
17887
17888 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
17889
17890         * gcse.c (modify_mem_list): Strengthen this variable from
17891         vec<rtx> * to vec<rtx_insn *> *.
17892         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
17893         vec<rtx_insn *>.
17894         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
17895         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
17896         (record_last_mem_set_info): Strengthen param "insn" from rtx to
17897         rtx_insn *.
17898         (record_last_set_info): Likewise for local "last_set_insn".
17899
17900 2014-09-08  DJ Delorie  <dj@redhat.com>
17901
17902         * doc/invoke.texi (MSP430 Options): Add -minrt.
17903
17904 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17905
17906         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
17907         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
17908         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
17909         handling SH_SPLAT.
17910         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
17911         of extracted lane.
17912         (adjust_splat): New function.
17913         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
17914         (dump_swap_insn_table): Add case for SH_SPLAT.
17915
17916 2014-09-08  Richard Biener  <rguenther@suse.de>
17917
17918         PR ipa/63196
17919         * tree-inline.c (copy_loops): The source loop header should
17920         always be non-NULL.
17921         (tree_function_versioning): If loops need fixup after removing
17922         unreachable blocks fix them.
17923         * omp-low.c (simd_clone_adjust): Do not add incr block to
17924         loop under construction.
17925
17926 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
17927
17928         * config/aarch64/aarch64-builtins.c
17929         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
17930
17931 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
17932
17933         * config/i386/cygming.h (TF_SIZE): Remove.
17934         * config/i386/darwin.h (TF_SIZE): Remove.
17935         * config/i386/dragonfly.h (TF_SIZE): Remove.
17936         * config/i386/freebsd.h (TF_SIZE): Remove.
17937         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
17938         * config/i386/openbsdelf.h (TF_SIZE): Remove.
17939         * config/i386/sol2.h (TF_SIZE): Remove.
17940         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
17941         * config/ia64/linux.h (TF_SIZE): Remove.
17942         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
17943         * doc/tm.texi: Regenerate.
17944         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
17945
17946 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
17947
17948         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
17949         Remove.
17950         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
17951         Remove.
17952         * doc/tm.texi: Regenerate.
17953         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
17954         Poison.
17955         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
17956         * config/cris/cris.h (__make_dp): Remove.
17957
17958 2014-09-08  Richard Biener  <rguenther@suse.de>
17959
17960         PR bootstrap/63204
17961         * cfgloop.c (mark_loop_for_removal): Track former header
17962         unconditionally.
17963         * cfgloop.h (struct loop): Add former_header member unconditionally.
17964         * loop-init.c (fix_loop_structure): Enable bogus loop removal
17965         diagnostic unconditionally.
17966
17967 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
17968
17969         PR target/63190
17970         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
17971         constraint for operand0 and remove write only modifier from operand3.
17972
17973 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
17974
17975         PR rtl-optimization/62208
17976         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
17977         rather than const0_rtx in eq/ne-xor simplifications.
17978
17979 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
17980
17981         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
17982         (arc_output_mi_thunk): Likewise.
17983
17984         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
17985         arguments to silence bogus warning.
17986
17987 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
17988
17989         PR middle-end/63171
17990         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
17991
17992 2014-09-06  Tom de Vries  <tom@codesourcery.com>
17993
17994         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
17995         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
17996         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
17997
17998 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
17999
18000         PR target/63188
18001         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
18002         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
18003
18004 2014-09-05  Easwaran Raman  <eraman@google.com>
18005
18006         PR rtl-optimization/62146
18007         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
18008         hoisted instruction unconditional.
18009
18010 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
18011
18012         PR target/63187
18013         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
18014         Do not allow any_mask_operand for operands[2].
18015         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
18016
18017 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18018
18019         * config/arc/arc.c (arc_print_operand): Use insn method of
18020         final_sequence for type-safety.
18021         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
18022         "insn" from rtx to rtx_insn *.
18023         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
18024         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
18025         Likewise for locals "branch", "label".
18026         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
18027         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
18028         (same_cmp_following_p): Likewise for locals "i2", "i3".
18029         * config/sh/sh_optimize_sett_clrt.cc
18030         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
18031         param "cbranch_insn".
18032         * function.c (convert_jumps_to_returns): Likewis for local "jump".
18033         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
18034         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
18035         const rtx_insn *.
18036         (condjump_p): Likewise.
18037         (condjump_in_parallel_p): Likewise.
18038         (pc_set): Likewise.
18039         (any_uncondjump_p): Likewise.
18040         (any_condjump_p): Likewise.
18041         (condjump_label): Likewise.
18042         (returnjump_p): Strengthen param "insn" from rtx to
18043         const rtx_insn *.
18044         (onlyjump_p): Strengthen param "insn" from const_rtx to
18045         const rtx_insn *.
18046         (jump_to_label_p): Likewise.
18047         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
18048         (invert_jump): Likewise.
18049         * reorg.c (simplejump_or_return_p): Add checked cast when calling
18050         simplejump_p.
18051         (get_jump_flags): Strengthen param "insn" from rtx to
18052         const rtx_insn *.
18053         (get_branch_condition): Likewise.
18054         (condition_dominates_p): Likewise.
18055         (make_return_insns): Move declaration of local "pat" earlier, to
18056         after we've handled NONJUMP_INSN_P and non-sequences, using its
18057         methods to simplify the code and for type-safety.
18058         * rtl.h (find_constant_src): Strengthen param from const_rtx to
18059         const rtx_insn *.
18060         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
18061         (condjump_p): Strengthen param from const_rtx to
18062         const rtx_insn *.
18063         (any_condjump_p): Likewise.
18064         (any_uncondjump_p): Likewise.
18065         (pc_set): Likewise.
18066         (condjump_label): Likewise.
18067         (simplejump_p): Likewise.
18068         (returnjump_p): Likewise.
18069         (onlyjump_p): Likewise.
18070         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
18071         (invert_jump): Likewise.
18072         (condjump_in_parallel_p): Strengthen param from const_rtx to
18073         const rtx_insn *.
18074         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
18075         to const rtx_insn *.
18076         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
18077         to const rtx_insn *.
18078         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
18079
18080 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18081
18082         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
18083         above the conditional, and convert the check on GET_CODE to a
18084         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
18085         the conditional.  Simplify the conditional by using methods of
18086         "trial_seq".
18087
18088 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18089
18090         * haifa-sched.c (check_clobbered_conditions): Strengthen local
18091         "link" from rtx to rtx_insn_list *, and use its methods for
18092         clarity and type-safety.
18093         (toggle_cancelled_flags): Likewise.
18094         (restore_last_backtrack_point): Likewise.
18095         (queue_to_ready): Use insn method of "link" in one place.
18096         (schedule_block): Strengthen local "link" from rtx to
18097         rtx_insn_list *, and use its methods for clarity and type-safety.
18098
18099 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18100
18101         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
18102         param "insn" from const_rtx to const rtx_insn *.
18103         (sched_get_reverse_condition_uncached): Likewise.
18104         (sched_get_condition_with_rev): Likewise.
18105         (sched_has_condition_p): Likewise.
18106         (sched_insns_conditions_mutex_p): Likewise for both params.
18107         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
18108         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
18109         (setup_insn_reg_uses): Move local "list" to be more tightly
18110         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
18111         its methods for clarity and type-safety.
18112         (sched_analyze_1): Strengthen local "pending" from rtx to
18113         rtx_insn_list *, and local "pending_mem" from rtx to
18114         rtx_expr_list *.  Use methods of each for clarity and type-safety.
18115         (sched_analyze_2): Likewise.
18116         (sched_analyze_insn): Likewise.
18117
18118         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
18119         param from const_rtx to const rtx_insn *.
18120         (sched_insns_conditions_mutex_p): Likewise for both params.
18121         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
18122         param.
18123
18124         * system.h (CONST_CAST_RTX_INSN): New macro.
18125
18126 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18127
18128         * recog.c (peep2_attempt): Strengthen return type from rtx to
18129         rtx_insn *.
18130         (peep2_update_life): Likewise for params "last", "prev", removing
18131         a checked cast made redundant by this.
18132         (peephole2_optimize): Likewise for local "last".
18133
18134 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18135
18136         * basic-block.h (set_block_for_insn): Eliminate this macro in
18137         favor of...
18138         * rtl.h (set_block_for_insn): New inline function, imposing the
18139         requirement that the "insn" param is an rtx_insn *.
18140
18141 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18142
18143         * caller-save.c (setup_save_areas): Strengthen local "insn" from
18144         rtx to rtx_insn *.
18145         * final.c (get_call_reg_set_usage): Likewise for first param,
18146         eliminating a checked cast.
18147         * regs.h (get_call_reg_set_usage): Likewise for first param.
18148         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
18149         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
18150         cast, replacing references to "x" with "call_insn" where
18151         appropriate.
18152         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
18153         rtx_insn *, adding a checked cast.
18154
18155 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18156
18157         * output.h (final_scan_insn): Strengthen first param from rtx to
18158         rtx_insn *.
18159
18160         * final.c (final_scan_insn): Likewise, renaming it back from
18161         "uncast_insn" to "insn", eliminating the checked cast.
18162
18163         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
18164         "vec" with an rtx_sequence * "seq", taking a copy of
18165         "final_sequence", and using methods of "seq" for clarity, and for
18166         type-safety in the calls to final_scan_insn.
18167         * config/mips/mips.c (mips_output_conditional_branch): Use methods
18168         of "final_sequence" for clarity, and for type-safety in the call to
18169         final_scan_insn.
18170         * config/sh/sh.c (print_slot): Strengthen param from rtx to
18171         rtx_sequence * and rename from "insn" to "seq".
18172
18173 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18174
18175         * jump.c (delete_related_insns): Introduce a new local "table" by
18176         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
18177         get_labels method of "table" to simplify access to the labels in
18178         the jump table.
18179
18180 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18181
18182         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
18183         f_minmaxs, f_minmaxd types.
18184
18185 2014-09-05  Richard Biener  <rguenther@suse.de>
18186
18187         * cfgloop.c (mark_loop_for_removal): Record former header
18188         when ENABLE_CHECKING.
18189         * cfgloop.h (strut loop): Add former_header member when
18190         ENABLE_CHECKING.
18191         * loop-init.c (fix_loop_structure): Sanity check loops
18192         marked for removal if they re-appeared.
18193
18194 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18195
18196         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
18197         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
18198
18199         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
18200         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
18201         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
18202         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
18203         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
18204         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
18205         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
18206         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
18207         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
18208         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
18209         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
18210         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
18211         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
18212         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
18213         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
18214         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
18215         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
18216         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
18217         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
18218         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
18219         with int{32,16,8}_t.
18220
18221 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18222
18223         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
18224         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
18225         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
18226         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
18227         Remove temporary __asm__ and reimplement.
18228
18229 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18230
18231         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
18232         handling cmge, cmgt, cmeq, cmtst.
18233
18234         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
18235         cmlt, cmgeu, cmgtu, cmtst): Remove.
18236
18237         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
18238         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
18239         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
18240         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
18241
18242 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18243
18244         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
18245         TYPES_TST): Define.
18246         (aarch64_fold_builtin): Update pattern for cmtst.
18247
18248         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
18249         Declare.
18250
18251         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
18252
18253         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
18254         Switch operands, separate out more cases, refactor.
18255
18256         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
18257
18258         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
18259         argument; rename old version to...
18260         (aarch64_const_vec_all_same_in_range_p): ...this.
18261         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
18262
18263         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
18264
18265 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18266
18267         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18268         Remove qualifier_const_pointer, update comment.
18269
18270 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18271
18272         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
18273
18274 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18275
18276         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
18277         varargs with pointer parameter.
18278         (aarch64_simd_expand_builtin): pass pointer into previous.
18279
18280 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18281
18282         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
18283         alus_ext.
18284
18285 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
18286
18287         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
18288         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
18289         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
18290         Replace temporary asm with call to builtin.
18291         (vrbit_p8, vrbitq_p8): New functions.
18292
18293 2014-09-05  Richard Biener  <rguenther@suse.de>
18294
18295         * cfgloop.c (mark_loop_for_removal): New function.
18296         * cfgloop.h (mark_loop_for_removal): Declare.
18297         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
18298         (merge_blocks): Likewise.
18299         (duplicate_block): Likewise.
18300         * except.c (sjlj_emit_dispatch_table): Likewise.
18301         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
18302         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
18303         (thread_through_loop_header): Likewise.
18304
18305 2014-09-05  Richard Biener  <rguenther@suse.de>
18306
18307         PR middle-end/63148
18308         * fold-const.c (try_move_mult_to_index): Remove.
18309         (fold_binary_loc): Do not call it.
18310         * tree-data-ref.c (dr_analyze_indices): Strip conversions
18311         from the base object again.
18312
18313 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
18314
18315         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
18316         DImode.
18317
18318 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
18319
18320         PR target/55701
18321         * config/arm/arm.md (setmem): New pattern.
18322         * config/arm/arm-protos.h (struct tune_params): New fields.
18323         (arm_gen_setmem): New prototype.
18324         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18325         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18326         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18327         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18328         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18329         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18330         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18331         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18332         (arm_const_inline_cost): New function.
18333         (arm_block_set_max_insns): New function.
18334         (arm_block_set_non_vect_profit_p): New function.
18335         (arm_block_set_vect_profit_p): New function.
18336         (arm_block_set_unaligned_vect): New function.
18337         (arm_block_set_aligned_vect): New function.
18338         (arm_block_set_unaligned_non_vect): New function.
18339         (arm_block_set_aligned_non_vect): New function.
18340         (arm_block_set_vect, arm_gen_setmem): New functions.
18341
18342 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
18343
18344         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
18345
18346 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
18347
18348         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18349
18350 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
18351
18352         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
18353         an rtx.
18354         * valtrack.h: Adjust.
18355
18356 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
18357
18358         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
18359         an rtx.
18360         (emit_jump_insn_before_noloc): Likewise.
18361         (emit_call_insn_before_noloc): Likewise.
18362         (emit_label_before): Likewise.
18363         (emit_label_after): Likewise.
18364         (emit_insn_before_setloc): Likewise.
18365         (emit_jump_insn_before_setloc): Likewise.
18366         (emit_call_insn_before_setloc): Likewise.
18367         (emit_call_insn_before): Likewise.
18368         * rtl.h: Adjust.
18369
18370 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18371
18372         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
18373         rtx_insn *, eliminating a checked cast.
18374
18375 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18376
18377         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
18378         const_rtx to const rtx_insn *.
18379         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
18380         cast.
18381
18382 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18383
18384         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
18385         fixup_args_size_notes.
18386         * expr.c (fixup_args_size_notes): Strengthen first two params from
18387         rtx to rtx_insn *, eliminating a checked cast.
18388         * rtl.h (fixup_args_size_notes): Strengthen first two params from
18389         rtx to rtx_insn *.
18390
18391 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18392
18393         * haifa-sched.c (get_ready_element): Strengthen return type from
18394         rtx to rtx_insn *.
18395         * sched-int.h (get_ready_element): Likewise.
18396
18397 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
18398
18399         PR target/63165
18400         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
18401         indexed_or_indirect_operand instead of memory_operand.
18402         (floatsi<mode>2_lfiwzx_mem): Ditto.
18403
18404 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
18405
18406         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
18407         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
18408         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
18409
18410 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
18411
18412         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
18413         rtx.
18414         (get_last_nonnote_insn): Likewise.
18415         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
18416         * resource.c (find_basic_block): Likewise.
18417         * rtl.h: Adjust.
18418         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
18419         const_rtx.
18420
18421 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
18422
18423         * genattr.c (main): Within the prototype of insn_latency written
18424         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
18425         * genautomata.c (output_internal_maximal_insn_latency_func):
18426         Within the implementation of insn_latency written out to
18427         insn-automata.c, strengthen both params from rtx to rtx_insn *,
18428         eliminating a pair of checked casts.
18429
18430 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
18431
18432         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
18433         rtx_insn *.
18434
18435         * rtl.h (eh_returnjump_p): Likewise.
18436
18437 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
18438
18439         * Makefile.in (TAGS): Handle constructs in timevar.def.
18440
18441 2014-09-04  Guozhi Wei  <carrot@google.com>
18442
18443         PR target/62040
18444         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
18445         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
18446         it into two patterns.
18447         (move_lo_quad_internal_be_<mode>): Likewise.
18448
18449 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18450
18451         * doc/options.texi: Document that Var and Init are required if CPP
18452         is given.
18453         * optc-gen.awk: Require Var and Init if CPP is given.
18454         * common.opt (Wpedantic): Use Init.
18455
18456 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18457
18458         * config/rs6000/rs6000.c (special_handling_values): Add
18459         SH_EXTRACT.
18460         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
18461         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
18462         as swappable with special handling SH_EXTRACT.  Remove
18463         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
18464         optimization.
18465         (adjust_extract): New function.
18466         (handle_special_swappables): Add default to case statement; add
18467         case for SH_EXTRACT that calls adjust_extract.
18468         (dump_swap_insn_table): Handle SH_EXTRACT.
18469
18470 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18471
18472         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
18473         selection of 0th memory doubleword, regardless of endianness.
18474
18475 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18476
18477         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
18478
18479 2014-09-04  Alan Modra  <amodra@gmail.com>
18480
18481         PR debug/60655
18482         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
18483         can't be output.
18484
18485 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
18486
18487         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
18488         * targhooks.c (default_dwarf_frame_reg_mode): New function.
18489         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
18490         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
18491         * doc/tm.texi: Regenerate.
18492         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
18493         selection logic to default_dwarf_frame_reg_mode.
18494
18495 2014-09-03  Marek Polacek  <polacek@redhat.com>
18496
18497         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
18498         by -Wall.
18499
18500 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
18501
18502         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
18503         the automodified register.
18504
18505 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
18506
18507         * output.h (get_some_local_dynamic_name): Declare.
18508         * final.c (some_local_dynamic_name): New variable.
18509         (get_some_local_dynamic_name): New function.
18510         (final_end_function): Clear some_local_dynamic_name.
18511         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
18512         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
18513         (print_operand): Report an error if '%&' is used inappropriately.
18514         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
18515         (get_some_local_dynamic_name_1): Delete.
18516         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
18517         (rs6000_get_some_local_dynamic_name): Delete.
18518         (rs6000_get_some_local_dynamic_name_1): Delete.
18519         (print_operand): Report an error if '%&' is used inappropriately.
18520         * config/s390/s390.c (machine_function): Remove some_ld_name.
18521         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
18522         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
18523         * config/sparc/sparc.c: Include rtl-iter.h.
18524         (machine_function): Remove some_ld_name.
18525         (sparc_print_operand): Report an error if '%&' is used inappropriately.
18526         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
18527
18528 2014-09-03  Richard Henderson  <rth@redhat.com>
18529
18530         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
18531         (aarch64_popwb_pair_reg): Remove.
18532         (aarch64_set_frame_expr): Remove.
18533         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
18534         the restore ops performed by the insns generated.
18535         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
18536         insn.  Perform the calls_eh_return addition later; do not attempt to
18537         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
18538         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
18539         special markup at all.  Load cfun->machine->frame.hard_fp_offset
18540         into a local variable.
18541         (aarch64_frame_pointer_required): Don't check calls_alloca.
18542
18543 2014-09-03  Richard Biener  <rguenther@suse.de>
18544
18545         * opts.c (default_options_optimization): Adjust
18546         max-combine-insns to 2 for -Og.
18547
18548 2014-09-03  Martin Jambor  <mjambor@suse.cz>
18549
18550         PR ipa/62015
18551         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
18552         pass-trough jump functions correctly.
18553
18554 2014-09-03  Martin Jambor  <mjambor@suse.cz>
18555
18556         PR ipa/61986
18557         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
18558         created replacements in ascending order of offsets.
18559         (known_aggs_to_agg_replacement_list): Likewise.
18560
18561 2014-09-03  Martin Liska  <mliska@suse.cz>
18562
18563         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
18564         is set to set uninitialized value for vnresult.
18565
18566 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18567
18568         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
18569         for TARGET_MUST_PASS_IN_STACK.
18570
18571 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18572
18573         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
18574         for TARGET_ARG_PARTIAL_BYTES.
18575
18576 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18577
18578         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
18579         instructions for varargs implementation.
18580         (nds32_expand_epilogue): Emit stack adjustment instructions for
18581         varargs implementation.
18582
18583 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18584
18585         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
18586         optimization detection.
18587
18588 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18589
18590         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
18591         arguments.
18592         (nds32_function_arg_advance): Deal with nameless arguments.
18593         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
18594         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
18595         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
18596
18597 2014-09-03  Richard Biener  <rguenther@suse.de>
18598
18599         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
18600         (struct bb_bitmap_sets): Remove deferred member.
18601         (BB_DEFERRED): Remove.
18602         (defer_or_phi_translate_block): Remove.
18603         (compute_antic_aux): Remove deferring of blocks, assert
18604         proper iteration order.
18605         (compute_antic): Do not set BB_DEFERRED.
18606         (eliminate): Allocate el_avail of proper size initially.
18607
18608 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18609
18610         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
18611         according to the value of crtl->args.pretend_args_size.
18612
18613 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18614
18615         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
18616         varargs information.
18617
18618 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18619
18620         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
18621         implementation for TARGET_SETUP_INCOMING_VARARGS.
18622         (nds32_strict_argument_naming): Refine comment.
18623         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
18624         Define for future implementation.
18625
18626 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
18627
18628         * config/i386/adxintrin.h (_subborrow_u32): New.
18629         (_addcarry_u32): Ditto.
18630         (_subborrow_u64): Ditto.
18631         (_addcarry_u64): Ditto.
18632         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
18633         IX86_BUILTIN_SBB64.
18634         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
18635         __builtin_ia32_sbb_u64
18636
18637 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18638
18639         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
18640         GPR-specific stuff.
18641         (nds32_function_arg_advance): Likewise.
18642         (nds32_init_cumulative_args): Likewise.
18643         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
18644         (NDS32_FIRST_GPR_REGNUM): Define.
18645         (NDS32_LAST_GPR_REGNUM): Define.
18646         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
18647         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
18648         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
18649         (machine_function): Use GRP-specific stuff.
18650
18651 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18652
18653         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
18654         (nds32_expand_epilogue): Likewise.
18655         (nds32_expand_prologue_v3push): Likewise.
18656         (nds32_expand_epilogue_v3pop): Likewise.
18657
18658 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18659
18660         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
18661         v3push/v3pop for variadic function.
18662         * config/nds32/nds32.md (prologue, epilogue): Likewise.
18663
18664 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18665
18666         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
18667         Check rtx for varargs implementation.
18668         (nds32_output_stack_pop): Likewise.
18669         * config/nds32/nds32-protos.h: Have a rtx argument for
18670         nds32_output_stack_push and nds32_output_stack_pop.
18671         * config/nds32/nds32.md: Likewise.
18672
18673 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18674
18675         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
18676         to check if FUNC is an interrupt service routine.
18677         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
18678
18679 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18680
18681         * config/nds32/nds32.h (machine_function): Add some fields for variadic
18682         arguments implementation.
18683
18684 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18685
18686         * config/nds32/nds32-predicates.c
18687         (nds32_valid_stack_push_pop): Rename to ...
18688         (nds32_valid_stack_push_pop_p): ... this.
18689         * config/nds32/nds32-protos.h: Likewise.
18690         * config/nds32/predicates.md: Likewise.
18691
18692 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18693
18694         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
18695         (nds32_emit_stack_v3push): ... this.
18696         (nds32_gen_stack_v3pop): Rename to ...
18697         (nds32_emit_stack_v3pop): ... this and consider CFA restore
18698         information.
18699
18700 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18701
18702         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
18703         (nds32_emit_stack_push_multiple): ... this.
18704         (nds32_gen_stack_pop_multiple): Rename to ...
18705         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
18706         information.
18707
18708 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18709
18710         PR target/61078
18711         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
18712         and add a second splitter to handle the remaining cases.
18713
18714 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
18715
18716         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
18717
18718 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
18719
18720         * cfgexpand.c (label_rtx_for_bb): Change type to
18721         hash_map<basic_block, rtx_code_label *> *.
18722         (expand_gimple_basic_block): Adjust.
18723         (pass_expand::execute): Likewise.
18724
18725 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
18726
18727         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
18728         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
18729         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
18730         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
18731         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
18732         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
18733         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
18734         of rtx.
18735
18736 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
18737
18738         * alloc-pool.c: Include coretypes.h.
18739         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
18740         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
18741         hash_set instead of htab.
18742         * ggc-page.c (in_gc): New variable.
18743         (ggc_free): Do nothing if a collection is taking place.
18744         (ggc_collect): Set in_gc appropriately.
18745         * ggc.h (gt_ggc_mx(const char *)): New function.
18746         (gt_pch_nx(const char *)): Likewise.
18747         (gt_ggc_mx(int)): Likewise.
18748         (gt_pch_nx(int)): Likewise.
18749         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
18750         (hash_map::hash_entry::pch_nx): Likewise.
18751         (hash_map::hash_entry::pch_nx_helper): Likewise.
18752 (hash_map::hash_map): Adjust.
18753 (hash_map::create_ggc): New function.
18754 (gt_ggc_mx): Likewise.
18755 (gt_pch_nx): Likewise.
18756         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
18757 (default_hashset_traits::pch_nx): Likewise.
18758 (hash_set::hash_entry::ggc_mx): Likewise.
18759 (hash_set::hash_entry::pch_nx): Likewise.
18760 (hash_set::hash_entry::pch_nx_helper): Likewise.
18761 (hash_set::hash_set): Adjust.
18762 (hash_set::create_ggc): New function.
18763 (hash_set::elements): Likewise.
18764 (gt_ggc_mx): Likewise.
18765 (gt_pch_nx): Likewise.
18766         * hash-table.h (hash_table::hash_table): Adjust.
18767 (hash_table::m_ggc): New member.
18768         (hash_table::~hash_table): Adjust.
18769         (hash_table::expand): Likewise.
18770         (hash_table::empty): Likewise.
18771 (gt_ggc_mx): New function.
18772         (hashtab_entry_note_pointers): Likewise.
18773 (gt_pch_nx): Likewise.
18774
18775 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18776
18777         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
18778         built-in definition.
18779         (XVCVUXDDP_SCALE): Likewise.
18780         (XVCVDPSXDS_SCALE): Likewise.
18781         (XVCVDPUXDS_SCALE): Likewise.
18782         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
18783         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
18784         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
18785         VSX_BUILTIN_XVCVDPUXDS_SCALE.
18786         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
18787         prototype.
18788         * config/rs6000/rs6000.c (real.h): New include.
18789         (rs6000_scale_v2df): New function.
18790         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
18791         (UNSPEC_VSX_XVCVUXDDP): Likewise.
18792         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
18793         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
18794         (vsx_xvcvsxddp_scale): New define_expand.
18795         (vsx_xvcvsxddp): New define_insn.
18796         (vsx_xvcvuxddp_scale): New define_expand.
18797         (vsx_xvcvuxddp): New define_insn.
18798         (vsx_xvcvdpsxds_scale): New define_expand.
18799         (vsx_xvcvdpsxds): New define_insn.
18800         (vsx_xvcvdpuxds_scale): New define_expand.
18801         (vsx_xvcvdpuxds): New define_insn.
18802         * doc/extend.texi (vec_ctf): Add new prototypes.
18803         (vec_cts): Likewise.
18804         (vec_ctu): Likewise.
18805         (vec_splat): Likewise.
18806         (vec_div): Likewise.
18807         (vec_mul): Likewise.
18808
18809 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18810
18811         PR target/62275
18812         * config/arm/neon.md
18813         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
18814         <v_cmp_result>): New pattern.
18815         * config/arm/iterators.md (NEON_VCVT): New int iterator.
18816         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
18817         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
18818         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
18819         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
18820         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
18821
18822 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18823
18824         PR target/62275
18825         * config/arm/iterators.md (FIXUORS): New code iterator.
18826         (VCVT): New int iterator.
18827         (su_optab): New code attribute.
18828         (su): Likewise.
18829         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
18830
18831 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18832
18833         * config/aarch64/predicates.md (aarch64_comparison_operation):
18834         New special predicate.
18835         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
18836         aarch64_comparison_operation instead of matching an operator.
18837         Update operand numbers.
18838         (csinc3<mode>_insn): Likewise.
18839         (*csinv3<mode>_insn): Likewise.
18840         (*csneg3<mode>_insn): Likewise.
18841         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
18842         * config/aarch64/aarch64.c (aarch64_get_condition_code):
18843         Return -1 instead of aborting on invalid condition codes.
18844         (aarch64_print_operand): Update aarch64_get_condition_code callsites
18845         to assert that the returned condition code is valid.
18846         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
18847
18848 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
18849
18850         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
18851         tree.def, and gimple.def
18852
18853 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
18854             Balaji V. Iyer  <balaji.v.iyer@intel.com>
18855             Igor Zamyatin  <igor.zamyatin@intel.com>
18856
18857         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
18858         (__cilkrts_cilk_for_64): Likewise.
18859         * cilk-common.c (declare_cilk_for_builtin): New function.
18860         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
18861         __cilkrts_cilk_for_64 bultins.
18862         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
18863         CILK_TI_F_LOOP_64.
18864         (cilk_for_32_fndecl): New define.
18865         (cilk_for_64_fndecl): Likewise.
18866         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
18867         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
18868         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
18869         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
18870         GF_OMP_FOR_COMBINED_INTO.
18871         * gimplify.c (gimplify_scan_omp_clauses): Added
18872         OMP_CLAUSE__CILK_FOR_COUNT_ case.
18873         (gimplify_adjust_omp_clauses): Ditto.
18874         (gimplify_omp_for): Added CILK_FOR case.
18875         (gimplify_expr): Ditto.
18876         * omp-low.c: Include cilk.h.
18877         (extract_omp_for_data): Set appropriate kind for
18878         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
18879         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
18880         (create_omp_child_function_name): Added second argument to handle
18881         cilk_for case.
18882         (cilk_for_check_loop_diff_type): New function.
18883         (expand_cilk_for_call): Likewise.
18884         (expand_cilk_for): Likewise.
18885         (create_omp_child_function): Set cilk_for_count; handle the cases when
18886         it is true; call create_omp_child_function_name with second argument.
18887         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
18888         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
18889         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
18890         * tree-nested.c (convert_nonlocal_omp_clauses): Added
18891         OMP_CLAUSE__CILK_FOR_COUNT_ case.
18892         (convert_local_omp_clauses): Ditto.
18893         * tree-pretty-print.c (dump_omp_clause): Added
18894         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
18895         (dump_generic_node): Added CILK_FOR case.
18896         * tree.c (omp_clause_num_ops): New element
18897         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
18898         (omp_clause_code_name): New element _Cilk_for_count_.
18899         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
18900         * tree.def: Add tree code for CILK_FOR.
18901
18902 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18903
18904         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
18905         (ppc403-compare): Add "exts with dot" case.
18906         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
18907         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
18908         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
18909         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
18910         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
18911         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
18912         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
18913         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
18914         cell-cmp-microcoded): Similarly.
18915         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
18916         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
18917         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
18918         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
18919         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
18920         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
18921         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
18922         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
18923         (power6-compare): Add "exts with dot" case.
18924         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
18925         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
18926         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
18927
18928         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
18929         if avoiding Cell microcode.
18930         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
18931         (is_cracked_insn): Ditto.
18932         (insn_must_be_first_in_group): Ditto.
18933         * config/rs6000/rs6000.md (dot): Adjust comment.
18934         (cell_micro): Handle exts+dot.
18935         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
18936         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
18937         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
18938         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
18939         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
18940         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
18941         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
18942
18943 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18944
18945         * config/rs6000/rs6000.md (QHSI): Delete.
18946         (EXTQI, EXTHI, EXTSI): New mode iterators.
18947         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
18948         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
18949         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
18950         9 anonymous instructions, and 8 splitters): Delete.
18951         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
18952         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
18953         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
18954         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
18955         *zero_extendsi<mode>2_dot2): New.
18956
18957 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18958
18959         * config/rs6000/rs6000.md (any_extend): New code iterator.
18960         (u, su): New code attributes.
18961         (dmode, DMODE): New mode attributes.
18962         (<su>mul<mode>3_highpart): New.
18963         (*<su>mul<mode>3_highpart): New.
18964         (<su>mulsi3_highpart_le): New.
18965         (<su>muldi3_highpart_le): New.
18966         (<su>mulsi3_highpart_64): New.
18967         (<u>mul<mode><dmode>3): New.
18968         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
18969         splitters): Delete.
18970         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
18971         splitters): Delete.
18972
18973 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18974
18975         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
18976         *mulsi3_internal2, and two splitters): Delete.
18977         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
18978         Delete.
18979         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
18980
18981 2014-09-02  Richard Biener  <rguenther@suse.de>
18982
18983         PR tree-optimization/62695
18984         * tree-ssa-structalias.c (find_func_clobbers): Add missing
18985         vector truncate.
18986
18987 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
18988
18989         PR target/62312
18990         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
18991
18992 2014-09-01  Andi Kleen  <ak@linux.intel.com>
18993
18994         * file-find.c (add_prefix_begin): Add.
18995         (do_add_prefix): Rename from add_prefix with first argument.
18996         (add_prefix): Add new wrapper.
18997         * file-find.h (add_prefix_begin): Add.
18998         * gcc-ar.c (main): Support -B option.
18999
19000 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
19001
19002         * genemit.c: Include dumpfile.h.
19003         (gen_split): Print name of splitter function to dump file.
19004
19005 2014-09-01  Richard Biener  <rguenther@suse.de>
19006
19007         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
19008         Use stack auto_vecs for constraint expressions.
19009         (find_func_aliases_for_call): Likewise.
19010         (find_func_aliases): Likewise.
19011         (find_func_clobbers): Likewise.
19012
19013 2014-09-01  Richard Biener  <rguenther@suse.de>
19014
19015         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
19016         operands vector in most cases.  Remove redundant code.
19017
19018 2014-09-01  Olivier Hainque  <hainque@adacore.com>
19019
19020         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
19021         $WIND_BASE instead of designating a harcoded arbitrary home dir.
19022         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
19023
19024 2014-09-01  Richard Biener  <rguenther@suse.de>
19025
19026         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
19027         copy_reference_ops_from_call, vn_nary_op_compute_hash,
19028         vn_reference_compute_hash, vn_reference_insert): Remove.
19029         (vn_reference_lookup_call): New function.
19030         * tree-ssa-sccvn.c (vn_reference_compute_hash,
19031         copy_reference_ops_from_ref, copy_reference_ops_from_call,
19032         vn_reference_insert, vn_nary_op_compute_hash): Make static.
19033         (create_reference_ops_from_call): Remove.
19034         (vn_reference_lookup_3): Properly update shared_lookup_references.
19035         (vn_reference_lookup_pieces): Assert that we updated
19036         shared_lookup_references properly.
19037         (vn_reference_lookup): Likewise.
19038         (vn_reference_lookup_call): New function.
19039         (visit_reference_op_call): Use it.  Avoid re-building the
19040         reference ops.
19041         (visit_reference_op_load): Remove redundant lookup.
19042         (visit_reference_op_store): Perform special tail-merging work
19043         only when possibly doing tail-merging.
19044         (visit_use): Likewise.
19045         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
19046
19047 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
19048
19049         PR target/62025
19050         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
19051         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
19052         (find_inc): Revert 2014-08-13 change.
19053
19054 2014-09-01  Marek Polacek  <polacek@redhat.com>
19055
19056         PR middle-end/61903
19057         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
19058         Change the type of V to unsigned HOST_WIDE_INT.
19059
19060 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19061
19062         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
19063         the size of byte markers.
19064         (do_shift_rotate): Fix confusion between host, target and marker byte
19065         size.
19066         (verify_symbolic_number_p): Likewise.
19067         (find_bswap_or_nop_1): Likewise.
19068         (find_bswap_or_nop): Likewise.
19069
19070 2014-09-01  Olivier Hainque  <hainque@adacore.com>
19071
19072         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
19073         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
19074
19075 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
19076
19077         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
19078         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
19079         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
19080
19081 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
19082
19083         PR sanitizer/61897
19084         PR sanitizer/62140
19085         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
19086         (build_check_stmt): Likewise.
19087         (instrument_strlen_call): Likewise.
19088         (asan_expand_check_ifn): Likewise and fix types.
19089         (maybe_cast_to_ptrmode): New function.
19090
19091 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19092
19093         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
19094
19095 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
19096
19097         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
19098
19099 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
19100
19101         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
19102         prefix to function labels when generating fast indirect calls.
19103
19104 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
19105
19106         PR bootstrap/62304
19107
19108         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
19109         param back from rtx_insn * to rtx.  Rename param from "label" to
19110         "label_or_return", reintroducing "label" as an rtx_insn * after
19111         we've ensured it's not a RETURN.
19112         (first_active_target_insn): Likewise for return type and param;
19113         add a checked cast to rtx_insn * once we've ensured "insn" is not
19114         a RETURN.
19115         (steal_delay_list_from_target): Convert param "pnew_thread" back
19116         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
19117         with JUMP_LABEL.
19118         (own_thread_p): Convert param "thread" back from an rtx_insn * to
19119         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
19120         cast once we've established we're not dealing with a RETURN,
19121         renaming subsequent uses of "thread" to "thread_insn".
19122         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
19123         to JUMP_LABEL.
19124         (follow_jumps): Convert return type and param "label" from
19125         rtx_insn * back to rtx.  Move initialization of "value" to after
19126         the handling for ANY_RETURN_P, adding a checked cast there to
19127         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
19128         rename to "this_label_or_return", reintroducing "this_label" as
19129         an rtx_insn * once we've handled the case where it could be an
19130         ANY_RETURN_P.
19131         (fill_slots_from_thread): Rename param "thread" to
19132         "thread_or_return", converting from an rtx_insn * back to an rtx.
19133         Reintroduce name "thread" as an rtx_insn * local with a checked
19134         cast once we've handled the case of it being an ANY_RETURN_P.
19135         Convert local "new_thread" from an rtx_insn * back to an rtx.
19136         Add a checked cast when assigning to "trial" from "new_thread".
19137         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
19138         checked cast to rtx_insn * from "new_thread" when invoking
19139         get_label_before.
19140         (fill_eager_delay_slots): Convert locals "target_label",
19141         "insn_at_target" from rtx_insn * back to rtx.
19142         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
19143         (relax_delay_slots): Convert locals "trial", "target_label" from
19144         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
19145         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
19146         invoking update_block.
19147         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
19148         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
19149
19150         * resource.h (mark_target_live_regs): Undo erroneous conversion
19151         of second param of r214693, converting it back from rtx_insn * to
19152         rtx, since it could be a RETURN.
19153
19154         * resource.c (find_dead_or_set_registers): Similarly, convert
19155         param "jump_target" back from an rtx_insn ** to an rtx *, as we
19156         could be writing back a RETURN.  Rename local rtx_insn * "next" to
19157         "next_insn", and introduce "lab_or_return" as a local rtx,
19158         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
19159         (mark_target_live_regs): Undo erroneous conversion
19160         of second param of r214693, converting it back from rtx_insn * to
19161         rtx, since it could be a RETURN.  Rename it from "target" to
19162         "target_maybe_return", reintroducing the name "target" as a local
19163         rtx_insn * with a checked cast, after we've handled the case of
19164         ANY_RETURN_P.
19165
19166 2014-08-29  DJ Delorie  <dj@redhat.com>
19167
19168         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
19169         pointer size up to a power of two.
19170         * defaults.h (DWARF2_ADDR_SIZE): Round up.
19171         (POINTER_SIZE_UNITS): New, rounded up value.
19172         * dwarf2asm.c (size_of_encoded_value): Use it.
19173         (dw2_output_indirect_constant_1): Likewise.
19174         * expmed.c (init_expmed_one_conv): We now know the sizes of
19175         partial int modes.
19176         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
19177         * optabs.c (expand_float): Use precision, not size.
19178         (expand_fix): Likewise.
19179         * simplify-rtx (simplify_unary_operation_1): Likewise.
19180         * tree-dfa.c (get_ref_base_and_extent): Likewise.
19181         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
19182         (default_assemble_integer) Likewise.
19183         (dump_tm_clone_pairs): Likewise.
19184         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
19185         * var-tracking.c (adjust_mems): Allow partial-int modes also.
19186         (prepare_call_arguments): Likewise.
19187         * stor-layout.c (finalize_type_size): Preserve precision.
19188         (layout_type): Use precision, not size.
19189
19190         * expr.c (convert_move): If the target has an explicit converter,
19191         use it.
19192
19193 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
19194
19195         * gdbinit.in: Skip various inline functions in rtl.h when
19196         stepping.
19197
19198 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
19199
19200         PR bootstrap/62301
19201         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
19202
19203 2014-08-29  Richard Biener  <rguenther@suse.de>
19204
19205         PR tree-optimization/62291
19206         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
19207         exactly the vector size needed and use quick_push.
19208         (phi_translate_1): Adjust comment.
19209         (valid_in_sets): Remove block argument and remove pointless
19210         checking of NAMEs.
19211         (dependent_clean): Adjust for removal of block argument.
19212         (clean): Likewise.
19213         (compute_antic_aux): Likewise.
19214         (compute_partial_antic_aux): Likewise.
19215
19216 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19217             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19218             Anna Tikhonova  <anna.tikhonova@intel.com>
19219             Ilya Tocar  <ilya.tocar@intel.com>
19220             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19221             Ilya Verbin  <ilya.verbin@intel.com>
19222             Kirill Yukhin  <kirill.yukhin@intel.com>
19223             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19224
19225         * config/i386/sse.md
19226         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
19227         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
19228         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
19229         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
19230
19231 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19232             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19233             Anna Tikhonova  <anna.tikhonova@intel.com>
19234             Ilya Tocar  <ilya.tocar@intel.com>
19235             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19236             Ilya Verbin  <ilya.verbin@intel.com>
19237             Kirill Yukhin  <kirill.yukhin@intel.com>
19238             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19239
19240         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
19241         * config/i386/sse.md
19242         (define_mode_iterator VI4_128_8_256): New.
19243         (define_mode_iterator VI2_128_4_256): Ditto.
19244         (define_mode_iterator PMOV_DST_MODE): Rename into
19245         (define_mode_iterator PMOV_DST_MODE_1): this.
19246         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
19247         Use PMOV_DST_MODE_1 mode iterator.
19248         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
19249         Ditto.
19250         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
19251         Ditto.
19252         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
19253         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
19254         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
19255         (define_mode_iterator PMOV_DST_MODE_2): New.
19256         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
19257         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
19258         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
19259         Ditto.
19260         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
19261         (define_mode_attr pmov_dst_3): Ditto.
19262         (define_mode_attr pmov_dst_zeroed_3): Ditto.
19263         (define_mode_attr pmov_suff_3): Ditto.
19264         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
19265         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
19266         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
19267         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
19268         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
19269         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
19270         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
19271         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
19272         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
19273         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
19274         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
19275         (define_mode_attr pmov_dst_4): Ditto.
19276         (define_mode_attr pmov_dst_zeroed_4): Ditto.
19277         (define_mode_attr pmov_suff_4): Ditto.
19278         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
19279         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
19280         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
19281         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
19282         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
19283         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
19284         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
19285         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
19286         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
19287         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
19288         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
19289
19290 2014-08-29  Richard Biener  <rguenther@suse.de>
19291
19292         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
19293         NON_LVALUE_EXPR in gimple.
19294
19295 2014-08-29  Richard Biener  <rguenther@suse.de>
19296
19297         PR middle-end/62292
19298         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
19299         from previous refactoring.
19300         (gimple_fold_builtin_strncpy): Likewise.
19301
19302 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
19303
19304         PR bootstrap/62300
19305         * function.c (assign_parm_setup_reg): Remove erroneous checked
19306         cast to rtx_insn * on result of gen_extend_insn in favor of
19307         introducing a new local rtx "pat".
19308
19309 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19310
19311         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
19312         to silence warning.
19313         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
19314
19315 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19316
19317         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
19318         (next_insn): Likewise.
19319         * emit-rtl.c (next_insn): Likewise.
19320         (previous_insn): Likewise.
19321         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
19322         "insn" and "next" from rtx to rtx_insn *.
19323         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
19324         "insn", "insn1", "vliw_start",  "prologue_end_note",
19325         "last_insn_in_packet".
19326
19327 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19328
19329         * shrink-wrap.h (active_insn_between): Strengthen both params from
19330         rtx to rtx_insn *.
19331         * function.c (active_insn_between): Likewise.
19332
19333 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19334
19335         * genattr.c (main): When writing out insn-attr.h, strengthen param
19336         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
19337         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
19338         writing out the definition of dfa_clear_single_insn_cache to the
19339         generated insn-automata.c
19340
19341 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19342
19343         * resource.h (clear_hashed_info_for_insn): Strengthen param from
19344         rtx to rtx_insn *.
19345         (incr_ticks_for_insn): Likewise.
19346         (init_resource_info): Likewise.
19347
19348         * resource.c (init_resource_info): Likewise.
19349         (clear_hashed_info_for_insn): Likewise.
19350         (incr_ticks_for_insn): Likewise.
19351
19352         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
19353         rtx to rtx_insn *.
19354         (steal_delay_list_from_target): Use methods of "seq".
19355         (try_merge_delay_insns): Use methods of "merged_insns".
19356         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
19357         (reorg_redirect_jump): Likewise for param "jump".
19358
19359 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19360
19361         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
19362         rtx to rtx_insn *.
19363         * config/s390/s390.c (s390_split_branches): Eliminate top-level
19364         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
19365         "set_insn".
19366         (s390_mainpool_finish): In three places, split out a local rtx
19367         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
19368         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
19369         and split another local rtx "insn" out into rtx "pat" and
19370         rtx_insn * "insn".
19371         * config/sh/sh.c (output_branchy_insn): Rather than working
19372         directly on operands[9], introduce local rtx_code_label *
19373         variables named "lab" in two places, working on them, and then
19374         assigning them to operands[9], so that the intervening operations
19375         are known by the type system to be on insns.
19376
19377 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19378
19379         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
19380         const rtx_insn *.
19381
19382         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
19383         in invocation of INSN_HAS_LOCATION.
19384
19385 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19386
19387         * config/rs6000/altivec.h (vec_xl): New #define.
19388         (vec_xst): Likewise.
19389         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
19390         (XXSPLTD_V2DI): Likewise.
19391         (DIV_V2DI): Likewise.
19392         (UDIV_V2DI): Likewise.
19393         (MUL_V2DI): Likewise.
19394         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19395         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
19396         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
19397         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
19398         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
19399         (UNSPEC_VSX_DIVSD): Likewise.
19400         (UNSPEC_VSX_DIVUD): Likewise.
19401         (UNSPEC_VSX_MULSD): Likewise.
19402         (vsx_mul_v2di): New insn-and-split.
19403         (vsx_div_v2di): Likewise.
19404         (vsx_udiv_v2di): Likewise.
19405         (vsx_xxspltd_<mode>): New insn.
19406
19407 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19408
19409         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
19410         NEXT_INSN.
19411         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
19412         (NEXT_INSN): Likewise.
19413         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
19414         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
19415         const rtx_insn *.
19416         (no_labels_between_p): Likewise for both params.
19417
19418         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
19419         cast when using NEXT_INSN on operands[2].
19420         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
19421         "insn" from rtx to rtx_insn *, adding a checked cast.
19422         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
19423         rtx_insn *.
19424         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
19425         for third param.
19426         (arc_text_label): Likewise for param "insn".
19427         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
19428         "insn".
19429         (arc_ccfsm_record_condition): Likewise for param "jump".
19430         (arc_text_label): Likewise for local "label".
19431         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
19432         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
19433         a method for typesafety.  Add a checked cast.
19434         * config/arc/constraints.md (Clb): Add a checked cast when getting
19435         the CODE_LABEL from a LABEL_REF.
19436         * config/arm/arm.c (require_pic_register): Strengthen locals
19437         "seq", "insn" from rtx to rtx_insn *.
19438         (create_fix_barrier): Likewise for locals "selected", "next".
19439         (thumb1_reorg): Likewise for locals "prev", "insn".
19440         (arm_expand_prologue): Likewise for local "last".
19441         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
19442         operands[0].
19443         (thumb2_output_casesi): Likewise for operands[2].
19444         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
19445         strengthen local "insn" from rtx to rtx_insn *.
19446         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
19447         type and param "insn".
19448         (find_prev_insn_start): Likewise.
19449         (hwloop_optimize): Likewise for locals "insn", "last_insn",
19450         "prev".
19451         (gen_one_bundle): Likewise for loal "t".
19452         (find_load): Likewise for param "insn".
19453         (workaround_speculation): Likewise for locals "insn", "next",
19454         "target", "next_tgt".
19455         * config/c6x/c6x.c (assign_reservations): Likewise for both params
19456         and for locals "insn", "within", "last".
19457         (count_unit_reqs): Likewise for params "head", "tail" and local
19458         "insn".
19459         (try_rename_operands): Likewise for params "head", "tail".
19460         (reshuffle_units): Likewise for locals "head", "tail", "insn".
19461         (struct c6x_sched_context): Likewise for fields
19462         "last_scheduled_insn", "last_scheduled_iter0".
19463         (init_sched_state): Replace NULL_RTX with NULL.
19464         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
19465         to rtx_insn *.
19466         (undo_split_delayed_nonbranch): Likewise for param and for local
19467         "prev".
19468         (conditionalize_after_sched): Likewise for local "insn".
19469         (bb_earliest_end_cycle): Likewise.
19470         (filter_insns_above): Likewise for locals "insn", "next".
19471         (hwloop_optimize): Remove redundant checked cast.
19472         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
19473         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
19474         NULL_RTX with NULL.
19475         (cris_simple_epilogue): Likewise.
19476         (cris_expand_prologue): Likewise.
19477         (cris_expand_epilogue): Likewise.
19478         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
19479         local "insn" from rtx to rtx_insn *.
19480         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
19481         (struct frv_packet_group): Likewise for the elements within array
19482         fields "insns", "sorted", and for field "nop".
19483         (frv_packet): Likewise for the elements within array field
19484         "insns".
19485         (frv_add_insn_to_packet): Likewise for param "insn".
19486         (frv_insert_nop_in_packet): Likewise for param "insn" and local
19487         "last".
19488         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
19489         (frv_sort_insn_group_1): Likewise for local "insn".
19490         (frv_optimize_membar_local): Likewise.
19491         (frv_align_label): Likewise for locals "x", "last", "barrier",
19492         "label".
19493         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
19494         local.
19495         (ia64_sched_init): Likewise for local "insn".
19496         (scheduled_good_insn): Likewise for param "last".
19497         (struct _ia64_sched_context): Likewise for field
19498         "last_scheduled_insn".
19499         (ia64_init_sched_context): Replace NULL_RTX with NULL.
19500         (struct bundle_state): Likewise for field "insn".
19501         (issue_nops_and_insn): Likewise for param "insn".
19502         (get_next_important_insn): Likewise for return type and both
19503         params.
19504         (ia64_add_bundle_selector_before): Likewise for param "insn".
19505         (bundling): Likewise for params "prev_head_insn", "tail" and
19506         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
19507         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
19508         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
19509         Strengthen final param from rtx to rtx_insn *.
19510         (iq2000_move_1word): Likewise for second param.
19511         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
19512         param "cur_insn" and local "next_insn".
19513         (iq2000_move_1word): Likewise for param "insn".
19514         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
19515         casts when using NEXT_INSN on operands[1].
19516         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
19517         "insn" from rtx to rtx_insn *.
19518         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
19519         "x", introducing local rtx_insn * "insn" for when working with the
19520         CODE_LABEL of the LABEL_REF.
19521         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
19522         rtx_insn *.
19523         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
19524         param.
19525         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
19526         type.
19527         (conditionalize_block): Likewise for return type and param.
19528         (mcore_is_dead): Likewise for param "first" and local "insn".
19529         (emit_new_cond_insn): Likewise for return type.
19530         (conditionalize_block): Likewise for return type, param, and
19531         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
19532         "newinsn".
19533         (conditionalize_optimization): Likewise for local "insn".
19534         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
19535         using NEXT_INSN.
19536         * config/microblaze/microblaze.md: Add checked casts when using
19537         NEXT_INSN.
19538         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
19539         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
19540         and rtx_insn * "insn".
19541         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
19542         checked cast when using NEXT_INSN on operands[2].
19543         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
19544         local "insn" from rtx to rtx_insn *.
19545         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
19546         Likewise.
19547         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
19548         Add a checked cast when using NEXT_INSN on operands[1].
19549         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
19550         rtx to rtx_insn *.
19551         (pa_output_cbranch): Likewise for final param.
19552         (pa_output_lbranch): Likewise for second param.
19553         (pa_output_bb): Likewise for third param.
19554         (pa_output_bvb): Likewise.
19555         (pa_output_dbra): Likewise for second param.
19556         (pa_output_movb): Likewise.
19557         (pa_output_parallel_movb): Likewise.
19558         (pa_output_parallel_addb): Likewise.
19559         (pa_output_millicode_call): Likewise for first param.
19560         (pa_output_mul_insn): Likewise for second param.
19561         (pa_output_div_insn): Likewise for third param.
19562         (pa_output_mod_insn): Likewise for second param.
19563         (pa_jump_in_call_delay): Likewise for param.
19564         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
19565         (pa_output_div_insn): Likewise.
19566         (pa_output_mod_insn): Likewise.
19567         (pa_output_cbranch): Likewise.
19568         (pa_output_lbranch): Likewise.
19569         (pa_output_bb): Likewise.
19570         (pa_output_bvb): Likewise.
19571         (pa_output_dbra): Likewise.
19572         (pa_output_movb): Likewise.
19573         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
19574         to simplify and for typesafety.
19575         (pa_output_call): Use method of rtx_sequence *.
19576         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
19577         (pa_jump_in_call_delay): Likewise.
19578         (pa_output_parallel_movb): Likewise.
19579         (pa_output_parallel_addb): Likewise.
19580         (pa_following_call): Likewise.
19581         (pa_combine_instructions): Likewise for locals "anchor",
19582         "floater".
19583         (pa_can_combine_p): Likewise for params "anchor", "floater" and
19584         locals "start", "end".
19585         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
19586         param "insn" and local "local_insn".
19587         (picochip_final_prescan_insn): Likewise for local "local_insn".
19588         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
19589         local "insn".
19590         (uses_TOC): Likewise.
19591         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
19592         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
19593         splitting out to more tightly-scoped locals, 3 as rtx and one as
19594         rtx_insn *.
19595         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
19596         to rtx_insn *.
19597         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
19598         where needed.
19599         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
19600         to rtx_insn *.
19601         (fixup_addr_diff_vecs): Likewise.
19602         (reg_unused_after): Likewise for param 2.
19603         (sh_can_redirect_branch): Likewise for both params.
19604         (check_use_sfunc_addr): Likewise for param 1.
19605         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
19606         (find_barrier): Likewise for local "last_got".
19607         (gen_block_redirect): Likewise for return type, param "jump" and
19608         locals "prev", "scan", "next", "insn".
19609         (struct far_branch): Likewise for fields "near_label",
19610         "insert_place", "far_label".
19611         (gen_far_branch): Likewise for local "jump".
19612         (fixup_addr_diff_vecs): Likewise for param "first" and locals
19613         "insn", "prev".
19614         (barrier_align): Likewise for param and for locals "prev", "x".
19615         Introduce local rtx_sequence * "prev_seq" and use insn method for
19616         typesafety and clarity.
19617         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
19618         (get_dest_uid): Likewise for local "dest".
19619         (split_branches): Likewise for locals "next", "beyond", "label",
19620         "block", "far_label".  Add checked casts when assigning to
19621         bp->far_label and "far_label".
19622         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
19623         (sequence_insn_p): Likewise.
19624         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
19625         more loop-scoped rtx "insn" when walking LABEL_REFS.
19626         (sh_can_redirect_branch): Strengthen both params from rtx to
19627         rtx_insn *.
19628         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
19629         new local rtx_sequence * "seq" via a dyn_cast, and use a method
19630         for clarity and typesafety.
19631         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
19632         "insn" from rtx to rtx_insn *.
19633         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
19634         when using NEXT_INSN on the CODE_LABEL in operands[2].
19635         (define_insn "casesi_worker_2"): Likewise.
19636         (define_insn "casesi_shift_media"): Likewise.
19637         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
19638         operands[3].
19639         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
19640         Strengthen field "insn" from rtx to rtx_insn *.
19641         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
19642         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
19643         param "start_insn" and local "start_insn".
19644         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
19645         field "insn".
19646         (find_set_of_reg_bb): Likewise for param "insn".
19647         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
19648         (trace_reg_uses): Likewise for param "start_insn".
19649         (sh_treg_combine::cbranch_trace): Likewise for field
19650         "cbranch_insn".
19651         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
19652         param "insn".
19653         (sh_treg_combine::record_set_of_reg): Likewise for param
19654         "start_insn" and local "i".
19655         (sh_treg_combine::can_remove_cstore): Likewise for local
19656         "prev_insn".
19657         (sh_treg_combine::try_optimize_cbranch): Likewise for param
19658         "insn".
19659         (sh_treg_combine::execute): Likewise for local "i".
19660         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
19661         param.
19662         (sparc_check_64): Likewise for second param.
19663         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
19664         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
19665         dyn_cast, using its insn method for typesafety and clarity.
19666         (empty_delay_slot): Strengthen param "insn" from rtx to
19667         rtx_insn *.
19668         (set_extends): Likewise.
19669         (sparc_check_64): Likewise.
19670         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
19671         for locals "seq", "last_insn".
19672         (combine_bnp): Likewise for param "insn".
19673         (xstormy16_reorg): Likewise for local "insn".
19674         * config/v850/v850.c (substitute_ep_register): Likewise for params
19675         "first_insn", "last_insn" and local "insn".
19676         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
19677         elements of "regs" array, and local "insn".
19678         * except.c (emit_note_eh_region_end): Likewise for param "insn".
19679         * final.c (final_sequence): Strengthen this global from rtx to
19680         rtx_sequence *.
19681         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
19682         rtx_insn *.
19683         (final_scan_insn): Update assignment to "final_sequence" to be
19684         from "seq", the cast version of "body", for type-safety.
19685         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
19686         "insns" from rtx to rtx_insn *.
19687         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
19688         * genattr.c (main): When writing out generated insn-attr.h,
19689         strengthen params 1 and 3 of eligible_for_delay,
19690         eligible_for_annul_true, eligible_for_annul_false from rtx to
19691         rtx_insn *.
19692         * genattrtab.c (write_eligible_delay): Likewise when writing out
19693         generated insn-attrtab.c; also local "insn" the generated
19694         functions.
19695         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
19696         to rtx_insn *.
19697         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
19698         "start_label" from rtx to rtx_insn *.
19699         * ira.c (decrease_live_ranges_number): Likewise for local "p".
19700         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
19701         "insns" and local "insn".
19702         (validate_equiv_mem): Likewise for param "start" and local "insn".
19703         (memref_used_between_p): Likewise for params "start", "end" and
19704         local "insn".
19705         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
19706         final param.
19707         * loop-doloop.c (doloop_optimize): Within region guarded by
19708         INSN_P (doloop_pat), introduce a new local rtx_insn *
19709         "doloop_insn" via a checked cast, and use it for typesafety,
19710         eventually writing the value back into doloop_pat.
19711         * output.h (final_sequence): Strengthen this global from rtx to
19712         rtx_sequence *.
19713         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
19714         reintroducing "insn" as an rtx_insn * via a checked cast.
19715         Strengthen param "attempt" and local "new_insn"from rtx to
19716         rtx_insn *.
19717         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
19718         to rtx_insn *.
19719         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
19720         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
19721         "p" in favor of more tightly-scoped replacements, sometimes rtx
19722         and sometimes rtx_insn *, as appropriate.
19723         (delete_output_reload): Eliminate top-level rtx "i1", splitting
19724         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
19725         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
19726         local "trial" from rtx to rtx_insn *.
19727         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
19728         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
19729         rtx_sequence * and use methods for clarity and typesafety.
19730         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
19731         rtx to rtx_insn *.  Strenghten local "li" from rtx to
19732         rtx_insn_list * and use its methods for clarity and typesafety.
19733         (steal_delay_list_from_target): Strengthen param "insn" from rtx
19734         to rtx_insn *.
19735         (steal_delay_list_from_fallthrough): Likewise.
19736         (try_merge_delay_insns): Likewise for param "thread" and locals
19737         "trial", "next_trial", "delay_insn".
19738         (redundant_insn): Likewise for param "target" and local "trial".
19739         (own_thread_p): Likewise for param "thread" and locals
19740         "active_insn", "insn".
19741         (get_label_before): Likewise for param "insn".
19742         (fill_simple_delay_slots): Likewise for local "new_label"; use
19743         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
19744         (label_before_next_insn): Strengthen return type and local "insn"
19745         from rtx to rtx_insn *.
19746         (relax_delay_slots): Likewise for locals "other", "tmp".
19747         (make_return_insns): Likewise for param "first" and locals "insn",
19748         "jump_insn", "prev".  Move declaration of "pat" to its assignment
19749         and strengthen from rtx to rtx_sequence *.  Use its methods for
19750         clarity and typesafety.
19751         * rtlanal.c (no_labels_between_p): Strengthen params from
19752         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
19753         rtx_insn *.
19754         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
19755         from const_rtx to const rtx_insn *.
19756         (reg_set_between_p): Rename param "from_insn" to
19757         "uncast_from_insn", and reintroduce "from_insn" as a
19758         const rtx_insn * via a checked cast.
19759         (modified_between_p): Likewise for param "start" as "uncast_start".
19760         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
19761         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
19762         "tmp", head" from rtx to rtx_insn *.
19763         (recompute_rev_top_order): Likewise for local "insn".
19764         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
19765         * store-motion.c (build_store_vectors): Likewise for local "insn".
19766         Strengthen local "st" from rtx to rtx_insn_list * and use methods
19767         for clarity and typesafety.
19768         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
19769         rtx to rtx_insn *.
19770         (computation_cost): Likewise for local "seq".
19771         (get_address_cost): Likewise.
19772
19773 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19774
19775         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
19776         const rtx_insn *.
19777         (label_is_jump_target_p): Likewise for second param.
19778
19779         * rtlanal.c (tablejump_p): Likewise for param "insn".
19780         (label_is_jump_target_p): Likewise for param "jump_insn".
19781
19782 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19783
19784         * rtl.h (find_first_parameter_load): Strengthen return type and
19785         both params from rtx to rtx_insn *.
19786         * rtlanal.c (find_first_parameter_load): Strengthen return type,
19787         both params and locals "before", "first_set" from rtx to
19788         rtx_insn *.  Remove now-redundant cast.
19789         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
19790
19791 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19792
19793         * rtl.h (find_last_value): Delete.
19794         * rtlanal.c (find_last_value): Delete.
19795
19796 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19797
19798         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
19799         from rtx to rtx_insn *.
19800         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
19801         rtx "note" with new local rtx_insn * "new_head" when calculating
19802         head insn of new basic block.
19803         * combine.c (combine_split_insns): Strengthen return type and local
19804         "ret" from rtx to rtx_insn *.
19805         (likely_spilled_retval_p): Likewise for locals "use" and "p".
19806         (try_combine): Eliminate local "m_split", splitting into new
19807         locals "m_split_insn" and "m_split_pat".
19808         (find_split_point): Strengthen local "seq" from rtx into
19809         rtx_insn *.
19810         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
19811         locals "label", "branch".
19812         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
19813         for local "insn".
19814         (define_expand "umulsi3_highpart"): Likewise for local "insn".
19815         * dse.c (note_add_store_info): Likewise for fields "first",
19816         "current".
19817         (note_add_store): Likewise for local "insn".
19818         (emit_inc_dec_insn_before): Likewise for locals "insn",
19819         "new_insn", "cur".
19820         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
19821         (replace_read): Likewise for locals "insns", "this_insn".
19822         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
19823         (notice_eh_throw): Likewise for param "insn".
19824         (before_next_cfi_note): Likewise for return type, param, and local
19825         "prev".
19826         (connect_traces): Likewise for local "note".
19827         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
19828         (verify_rtl_sharing): Likewise.
19829         (unshare_all_rtl_in_chain): Likewise for param "insn".
19830         (get_first_nonnote_insn): Likewise for local "insn".
19831         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
19832         "seq" and use its methods to clarify things.
19833         (next_insn): Strengthen return type from rtx to rtx_insn *.
19834         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
19835         local rtx_insn * using a checked cast, dropping a checked cast
19836         made redundant by this change.  Use a cast to and method of
19837         rtx_sequence to clarify the code.
19838         (previous_insn): Rename param "insn" to "uncast_insn" and
19839         reintroduce "insn" as a local rtx_insn * using a checked cast,
19840         dropping a checked cast made redundant by this change.  Use a cast
19841         to and method of rtx_sequence to clarify the code.
19842         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
19843         reintroduce "insn" as a local rtx_insn * using a checked cast,
19844         dropping a checked cast made redundant by this change.
19845         (next_nonnote_insn_bb): Likewise.
19846         (prev_nonnote_insn): Likewise.
19847         (prev_nonnote_insn_bb): Likewise.
19848         (next_nondebug_insn): Likewise.
19849         (prev_nondebug_insn): Likewise.
19850         (next_nonnote_nondebug_insn): Likewise.
19851         (prev_nonnote_nondebug_insn): Likewise.
19852         (next_real_insn): Likewise.
19853         (prev_real_insn): Likewise.
19854         (next_active_insn): Likewise.
19855         (prev_active_insn): Likewise.
19856         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
19857         clarity.
19858         (prev_cc0_setter): Likewise.
19859         (try_split): Rename param "trial" to "uncast_trial" and
19860         reintroduce "insn" as a local rtx_insn * using a checked cast,
19861         dropping checked casts made redundant by this change.
19862         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
19863         rtx to rtx_insn *.
19864         (remove_insn): Rename param "insn" to "uncast_insn" and
19865         reintroduce "insn" as a local rtx_insn * using a checked cast.
19866         (emit_pattern_after_setloc): Likewise for param "after", as
19867         "uncast_after".
19868         (emit_pattern_after): Likewise.  Strengthen local "prev" from
19869         rtx to rtx_insn *.
19870         (emit_pattern_before_setloc): Rename param "before" to
19871         "uncast_before" and reintroduce "before" as a local rtx_insn *
19872         using a checked cast.  Strengthen locals "first", "last" from
19873         rtx to rtx_insn *.
19874         (emit_pattern_before): Likewise rename/cast param "before" to
19875         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
19876         * except.c (copy_reg_eh_region_note_forward): Strengthen param
19877         "first" and local "insn" from rtx to rtx_insn *.
19878         (copy_reg_eh_region_note_backward): Likewise for param "last"
19879         and local "insn".
19880         * expr.c (fixup_args_size_notes): Rename param "last" to
19881         "uncast_last" and reintroduce "last" as a local rtx_insn *
19882         using a checked cast.  Strengthen local "insn" from rtx to
19883         rtx_insn *.
19884         * function.c (set_insn_locations): Strengthen param "insn" from
19885         rtx to rtx_insn *.
19886         (record_insns): Likewise for param "insns" and local "tmp".
19887         (active_insn_between): Rename param "tail" to
19888         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
19889         using a checked cast.
19890         (thread_prologue_and_epilogue_insns): Split out top-level local
19891         rtx "seq" into three different rtx_insn * locals.  Strengthen
19892         local "prologue_seq" from rtx to rtx_insn *.
19893         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
19894         from rtx to rtx_insn *.
19895         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
19896         (priority): Likewise for locals "prev_first", "twin".
19897         (setup_insn_max_reg_pressure): Likewise for param "after".
19898         (sched_setup_bb_reg_pressure_info): Likewise.
19899         (no_real_insns_p): Strengthen params from const_rtx to
19900         const rtx_insn *.
19901         (schedule_block): Strengthen local "next_tail" from rtx to
19902         rtx_insn *.
19903         * ifcvt.c (find_active_insn_before): Strengthen return type and
19904         param "insn" from rtx to rtx_insn *.
19905         (find_active_insn_after): Likewise.
19906         (cond_exec_process_insns): Likewise for param "start" and local "insn".
19907         (cond_exec_process_if_block): Likewise for locals "then_start",
19908         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
19909         (noce_process_if_block): Likewise for local "jump".
19910         (merge_if_block): Likewise for two locals named "end".
19911         (cond_exec_find_if_block): Likewise for local "last_insn".
19912         * jump.c (delete_related_insns): Rename param "insn" to
19913         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
19914         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
19915         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
19916         NULL.
19917         (split_reg): Likewise.
19918         * lra.c (lra_process_new_insns): Likewise.
19919         * modulo-sched.c (permute_partial_schedule): Strengthen param
19920         "last" from rtx to rtx_insn *.
19921         * optabs.c (add_equal_note): Likewise for param "insns" and local
19922         "last_insn".
19923         (expand_binop_directly): Add checked casts to rtx_insn * within
19924         NEXT_INSN (pat) uses.
19925         (expand_unop_direct): Likewise.
19926         (maybe_emit_unop_insn): Likewise.
19927         * recog.c (peep2_attempt): Strengthen locals "last",
19928         "before_try", "x" from rtx to rtx_insn *.
19929         * reorg.c (optimize_skip): Strengthen return type and local
19930         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
19931         and locals "trial", "next_trial" from rtx to rtx_insn *.
19932         * resource.c (next_insn_no_annul): Strengthen return type and
19933         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
19934         rtx_sequence to clarify the code.
19935         (mark_referenced_resources): Add a checked cast to rtx_insn *
19936         within PREV_INSN (x).
19937         (find_dead_or_set_registers): Strengthen return type, param
19938         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
19939         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
19940         to rtx_insn **.
19941         (mark_target_live_regs): Strengthen params "insns" and "target",
19942         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
19943         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
19944         the code.
19945         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
19946         from rtx to rtx_insn *.
19947         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
19948         from rtx to rtx_insn *.
19949         (copy_reg_eh_region_note_backward): Likewise.
19950         (unshare_all_rtl_in_chain): Likewise for sole param.
19951         (dump_rtl_slim): Strengthen second and third params from const_rtx
19952         to const rtx_insn *.
19953         * sched-deps.c (sched_free_deps): Strengthen params "head" and
19954         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
19955         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
19956         "next_tail" from rtx to rtx_insn *.
19957         (begin_move_insn): Likewise for local "next".
19958         * sched-int.h (sched_free_deps): Likewise for first and second
19959         params.
19960         (no_real_insns_p): Strengthen both params from const_rtx to
19961         const rtx_insn *.
19962         (sched_setup_bb_reg_pressure_info): Strengthen second params from
19963         rtx to rtx_insn *.
19964         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
19965         "next_tail".
19966         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
19967         and locals "insn", "tail" from const_rtx to const rtx_insn *.
19968         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
19969         rtx_insn *.
19970         (debug_rtl_slim): Strengthen params "first" and "last" from
19971         const_rtx to const rtx_insn *.
19972         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
19973         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
19974         (convert_to_simple_return): Likewise for param "returnjump".
19975         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
19976         "prologue_seq".
19977         (convert_to_simple_return): Likewise for param "returnjump".
19978         * valtrack.c (propagate_for_debug): Likewise for params
19979         "insn", "last".
19980         * valtrack.h (propagate_for_debug): Likewise for second param.
19981
19982 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19983
19984         * output.h (insn_current_reference_address): Strengthen param
19985         from rtx to rtx_insn *.
19986         * final.c (insn_current_reference_address): Likewise.
19987
19988 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19989
19990         * basic-block.h (inside_basic_block_p): Strengthen param from
19991         const_rtx to const rtx_insn *.
19992         * cfgbuild.c (inside_basic_block_p): Likewise.
19993
19994 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19995
19996         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
19997         rtx_insn *.
19998         (get_trace_info): Likewise for param "insn".
19999         (save_point_p): Likewise.
20000         (maybe_record_trace_start): Likewise for both params.
20001         (maybe_record_trace_start_abnormal): Likewise.
20002         (create_trace_edges): Likewise for sole param and for three of the
20003         locals named "lab".
20004         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
20005         to rtx_insn *, and update a call to pat->element to pat->insn.
20006
20007 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20008
20009         * function.h (struct expr_status): Convert field "x_forced_labels"
20010         from rtx_expr_list * to rtx_insn_list *.
20011
20012         * cfgbuild.c (make_edges): Convert local "x" from an
20013         rtx_expr_list * to an rtx_insn_list *, replacing use of
20014         "element" method with "insn" method.
20015         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20016         * except.c (sjlj_emit_dispatch_table): Replace use of
20017         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
20018         forced_labels.
20019         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
20020         rtx_expr_list * to an rtx_insn_list *, replacing use of
20021         "element" method with "insn" method.
20022         * reload1.c (set_initial_label_offsets): Likewise for local "x".
20023         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
20024         rtx_insn *, adding a checked cast.  Replace use of
20025         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
20026         forced_labels.
20027         (expand_label): Likewise for local "label_r".
20028
20029 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20030
20031         * function.h (struct rtl_data): Convert field
20032         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
20033         rtx_insn_list *.
20034         * rtl.h (remove_node_from_insn_list): New prototype.
20035
20036         * builtins.c (expand_builtin): When prepending to
20037         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20038         gen_rtx_EXPR_LIST.
20039         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
20040         to rtx_insn_list *, and use its "insn" method rather than
20041         "element" method.
20042         * cfgrtl.c (delete_insn): Use new function
20043         remove_node_from_insn_list rather than
20044         remove_node_from_expr_list.
20045         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
20046         to rtx_insn_list *, and use its "insn" method rather than
20047         "element" method.
20048         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20049         * reload1.c (set_initial_label_offsets): Likewise for local "x".
20050         * rtlanal.c (remove_node_from_insn_list): New function, adapted
20051         from remove_node_from_expr_list.
20052         * stmt.c (expand_label): When prepending to
20053         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20054         gen_rtx_EXPR_LIST.
20055
20056 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20057
20058         * function.h (struct rtl_data): Strengthen fields "x_return_label"
20059         and "x_naked_return_label" from rtx to rtx_code_label *.
20060
20061 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20062
20063         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
20064         (SET_NEXT_INSN): Likewise.
20065         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
20066
20067         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
20068         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
20069         to split out the SEQUENCE from local "bundle", strengthening the
20070         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
20071         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
20072         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
20073         and the type of the elements of the "slot" array from rtx to
20074         rtx_insn *.
20075         (reorg_split_calls): Likewise for locals "insn" and "next", and
20076         the type of the elements of the "slot" array.
20077
20078         * config/frv/frv.c (frv_nops): Likewise for the elements of this
20079         array.
20080         (frv_function_prologue): Likewise for locals "insn", "next",
20081         "last_call".
20082         (frv_register_nop): Introduce a local "nop_insn" to be the
20083         rtx_insn * containing rtx "nop".
20084
20085         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
20086         used as an insn and sometimes as a pattern, so rename it to
20087         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
20088         using it where dealing with the core insn.
20089
20090         * config/picochip/picochip.c (reorder_var_tracking_notes):
20091         Strengthen locals "insn", "next", "last_insn", "queue",
20092         "next_queue", "prev" from rtx to rtx_insn *.
20093
20094         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
20095         the second param is an rtx_insn ** rather than an rtx **.
20096         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
20097         from rtx to rtx_sequence *, and introduce local named "sequence",
20098         using methods of rtx_sequence to clarify the code.
20099         (remove_insn): Introduce local rtx_sequence * named "sequence" and
20100         use its methods.
20101         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
20102         Rename param "after" to "uncast_after", reintroducing "after" as a
20103         local rtx_insn * with a checked cast.
20104         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
20105         reintroducing "after" as a local rtx_insn * with a checked cast.
20106         Strengthen local "last" from rtx to rtx_insn * and remove the
20107         now-redundant checked casts.
20108         (copy_delay_slot_insn): Strengthen return type and param from rtx
20109         to rtx_insn *.
20110
20111         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
20112         "last" from rtx to rtx_insn *.
20113
20114 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20115
20116         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
20117         param from rtx to rtx_insn *.
20118
20119         * emit-rtl.c (copy_delay_slot_insn): Likewise.
20120
20121         * reorg.c (skip_consecutive_labels): Strengthen return type, param
20122         and local "insn" from rtx to rtx_insn *.
20123         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
20124         (unfilled_slots_next): Likewise.
20125         (function_return_label): Strengthen from rtx to rtx_code_label *.
20126         (function_simple_return_label): Likewise.
20127         (first_active_target_insn): Strengthen return type and param from
20128         rtx to rtx_insn *.
20129         (find_end_label): Strengthen return type from rtx to
20130         rtx_code_label *; strengthen locals as appropriate.
20131         (emit_delay_sequence): Strengthen return type, param "insn" and
20132         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
20133         and local "li" from rtx to rtx_insn_list *, using methods of
20134         rtx_insn_list for clarity and typesafety.
20135         (add_to_delay_list): Strengthen return type and param "insn" from
20136         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
20137         rtx_insn_list * and use methods of rtx_insn_list.
20138         (delete_from_delay_slot): Strengthen return type, param "insn",
20139         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
20140         Strengthen local "seq" from rtx to rtx_sequence *, and local
20141         "delay_list" from rtx to rtx_insn_list *, using methods of
20142         rtx_sequence for clarity and type-safety.
20143         (delete_scheduled_jump): Add checked cast when invoking
20144         delete_from_delay_slot.  Strengthen local "trial" from rtx to
20145         rtx_insn *.
20146         (optimize_skip): Strengthen return type and local "delay_list"
20147         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
20148         rtx_insn *.
20149         (steal_delay_list_from_target): Strengthen return type, param
20150         "delay_list" and local "new_delay_list" from rtx to
20151         rtx_insn_list *.  Strengthen param "seq" from rtx to
20152         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
20153         rtx_insn **.
20154         Split out local "temp" into multiple more-tightly scoped locals:
20155         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
20156         of rtx_insn_list and rtx_sequence for clarity and typesafety.
20157         Strengthen locals named "trial" from rtx to rtx_insn *.
20158         (steal_delay_list_from_fallthrough): Strengthen return type and
20159         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
20160         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
20161         Strengthen local "trial" from rtx to rtx_insn *.
20162         (try_merge_delay_insns): Strength local "merged_insns" from rtx
20163         to rtx_insn_list * and use its methods.  Strengthen local "pat"
20164         from rtx to rtx_sequence * and use its methods.  Strengthen locals
20165         "dtrial" and "new_rtx" from rtx to rtx_insn *.
20166         (get_label_before): Strengthen return type and local "label" from
20167         rtx to rtx_insn *.
20168         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
20169         "next_trial", "next", prev".  Strengthen local "delay_list" from
20170         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
20171         rtx_insn **.
20172         (follow_jumps): Strengthen return type, param "label" and locals
20173         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
20174         (fill_slots_from_thread): Strengthen return type, param
20175         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
20176         "insn", "thread", "opposite_thread" and locals "new_thread",
20177         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
20178         "sequence" from a checked cast to rtx_sequence so that we can call
20179         steal_delay_list_from_target and steal_delay_list_from_fallthrough
20180         with an rtx_sequence *.
20181         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
20182         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
20183         Strengthen local "delay_list" from rtx to rtx_insn_list *.
20184         (relax_delay_slots): Strengthen param "first" and locals "insn",
20185         "next", "trial", "delay_insn", "target_label" from rtx to
20186         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
20187         Introduce a local "trial_seq" for PATTERN (trial) of type
20188         rtx_sequence *, in both cases using methods of rtx_sequence.
20189         (dbr_schedule): Strengthen param "first" and locals "insn",
20190         "next", "epilogue_insn" from rtx to rtx_insn *.
20191
20192 2014-08-28  Richard Biener  <rguenther@suse.de>
20193
20194         PR tree-optimization/62283
20195         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20196         Do not peel loops for alignment where the vector loop likely
20197         doesn't run at least VF times.
20198
20199 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
20200
20201         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
20202         important_candidates.  Consider all important candidates if
20203         IVS doesn't give any result.  Remove check on ivs->upto.
20204         (try_add_cand_for): Call iv_ca_add_use only once.
20205
20206 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20207             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20208             Anna Tikhonova  <anna.tikhonova@intel.com>
20209             Ilya Tocar  <ilya.tocar@intel.com>
20210             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20211             Ilya Verbin  <ilya.verbin@intel.com>
20212             Kirill Yukhin  <kirill.yukhin@intel.com>
20213             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20214
20215         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
20216         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
20217         masking.
20218         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
20219         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
20220         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
20221         (define_insn "*mul<mode>3"): Add EVEX version.
20222
20223 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20224             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20225             Anna Tikhonova  <anna.tikhonova@intel.com>
20226             Ilya Tocar  <ilya.tocar@intel.com>
20227             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20228             Ilya Verbin  <ilya.verbin@intel.com>
20229             Kirill Yukhin  <kirill.yukhin@intel.com>
20230             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20231
20232         * config/i386/sse.md
20233         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
20234         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
20235         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
20236         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
20237         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
20238         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
20239         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
20240         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
20241         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
20242         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
20243         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
20244         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
20245         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
20246         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
20247         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
20248         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
20249
20250 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20251             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20252             Anna Tikhonova  <anna.tikhonova@intel.com>
20253             Ilya Tocar  <ilya.tocar@intel.com>
20254             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20255             Ilya Verbin  <ilya.verbin@intel.com>
20256             Kirill Yukhin  <kirill.yukhin@intel.com>
20257             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20258
20259         * config/i386/sse.md
20260         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
20261         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
20262         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
20263
20264 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20265             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20266             Anna Tikhonova  <anna.tikhonova@intel.com>
20267             Ilya Tocar  <ilya.tocar@intel.com>
20268             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20269             Ilya Verbin  <ilya.verbin@intel.com>
20270             Kirill Yukhin  <kirill.yukhin@intel.com>
20271             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20272
20273         * config/i386/sse.md
20274         (define_mode_iterator VI128_256): New.
20275         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
20276
20277 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20278             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20279             Anna Tikhonova  <anna.tikhonova@intel.com>
20280             Ilya Tocar  <ilya.tocar@intel.com>
20281             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20282             Ilya Verbin  <ilya.verbin@intel.com>
20283             Kirill Yukhin  <kirill.yukhin@intel.com>
20284             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20285
20286         * config/i386/sse.md
20287         (define_mode_iterator VI8_256_512): New.
20288         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
20289         Ditto.
20290         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
20291         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
20292         Ditto.
20293         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
20294
20295 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20296
20297         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
20298         pointer to the cumulative reloc value and return the value for
20299         this reloc instead.
20300         (compute_reloc_for_rtx): Take a const_rtx.  Call
20301         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
20302         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
20303         for_each_rtx for the CONST case.
20304
20305 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20306
20307         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
20308         (mark_constants_in_pattern): ...this new function to iterate over
20309         all the subrtxes.
20310         (mark_constants): Update accordingly.
20311
20312 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20313
20314         * varasm.c: Include rtl-iter.h.
20315         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
20316         Remove the pointer to the cumulative hashval_t and just return
20317         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
20318         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
20319         Accumulate the hashval_ts here instead of const_rtx_hash_1.
20320
20321 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20322
20323         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
20324         Give real type of data parameter.  Remove return value.
20325         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
20326         to iterate over subrtxes.
20327
20328 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20329
20330         * var-tracking.c (use_narrower_mode_test): Turn from being a
20331         for_each_rtx callback to being a function that examines each
20332         subrtx itself.
20333         (adjust_mems): Update accordingly.
20334
20335 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20336
20337         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
20338         callback to being a function that examines each subrtx itself.
20339         Remove handling of null rtxes.
20340         (add_uses): Update accordingly.
20341
20342 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20343
20344         * var-tracking.c: Include rtl-iter.h.
20345         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
20346         to being a function that examines each subrtx itself.
20347         (use_type): Update accordingly.
20348
20349 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20350
20351         * store-motion.c: Include rtl-iter.h.
20352         (extract_mentioned_regs_1): Delete.
20353         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
20354         for_each_rtx to iterate over subrtxes.
20355
20356 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20357
20358         * sel-sched.c: Include rtl-iter.h
20359         (count_occurrences_1): Delete.
20360         (count_occurrences_equiv): Turn rtxes into const_rtxes.
20361         Use FOR_EACH_SUBRTX rather than for_each_rtx.
20362
20363 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20364
20365         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
20366         * rtlanal.c (tls_referenced_p_1): Delete.
20367         (tls_referenced_p): Take a const_rtx rather than an rtx.
20368         Use FOR_EACH_SUBRTX rather than for_each_rtx.
20369
20370 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20371
20372         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
20373         (for_each_inc_dec): Take an rtx rather than an rtx *.
20374         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
20375         (cselib_record_sets): Likewise.
20376         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
20377         (check_for_inc_dec): Likewise.
20378         * rtlanal.c (for_each_inc_dec_ops): Delete.
20379         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
20380         rather than a pointer to the memory address.  Replace
20381         for_each_inc_dec_ops argument with separate function and data
20382         arguments.  Abort on non-autoinc addresses.
20383         (for_each_inc_dec_find_mem): Delete.
20384         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
20385         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
20386
20387 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20388
20389         * rtl.h (find_all_hard_regs): Declare.
20390         * rtlanal.c (find_all_hard_regs): New function.
20391         (record_hard_reg_uses_1): Delete.
20392         (record_hard_reg_uses): Use find_all_hard_regs.
20393
20394 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20395
20396         * rtl.h (replace_label_data): Delete.
20397         (replace_label): Take the old label, new label and update-nuses flag
20398         as direct arguments.  Return void.
20399         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
20400         * rtlanal.c (replace_label): Update interface as above.  Handle
20401         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
20402         iterator.  Use FOR_EACH_SUBRTX_PTR.
20403
20404 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20405
20406         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
20407         with const_rtx parameters.
20408         * varasm.c (get_pool_constant): Likewise.
20409         * rtlanal.c (rtx_referenced_p_1): Delete.
20410         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
20411         Assert that the rtx we're looking for is nonnull.  Allow searches
20412         for constant pool SYMBOL_REFs.
20413
20414 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20415
20416         * reload1.c: Include rtl-iter.h.
20417         (note_reg_elim_costly): Turn from being a for_each_rtx callback
20418         to being a function that examines each subrtx itself.
20419         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
20420
20421 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20422
20423         * regcprop.c (cprop_find_used_regs_1): Delete.
20424         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
20425
20426 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20427
20428         * regcprop.c: Include rtl-iter.h.
20429         (kill_value): Take a const_rtx.
20430         (kill_autoinc_value): Turn from being a for_each_rtx callback
20431         to being a function that examines each subrtx itself.
20432         (copyprop_hardreg_forward_1): Update accordingly.
20433
20434 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20435
20436         * reg-stack.c: Include rtl-iter.h.
20437         (subst_stack_regs_in_debug_insn): Delete.
20438         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
20439         instead of for_each_rtx.
20440
20441 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20442
20443         * lower-subreg.c (find_decomposable_subregs): Turn from being
20444         a for_each_rtx callback to being a function that examines each
20445         subrtx itself.  Remove handling of null rtxes.
20446         (decompose_multiword_subregs): Update accordingly.
20447
20448 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20449
20450         * lower-subreg.c (adjust_decomposed_uses): Delete.
20451         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
20452         Remove handling of null rtxes.
20453
20454 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20455
20456         * lower-subreg.c: Include rtl-iter.h.
20457         (resolve_subreg_use): Turn from being a for_each_rtx callback
20458         to being a function that examines each subrtx itself.  Remove
20459         handling of null rtxes.
20460         (resolve_reg_notes, resolve_simple_move): Update accordingly.
20461         (decompose_multiword_subregs): Likewise.
20462
20463 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20464
20465         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
20466         to being a function that examines each subrtx itself.
20467         (simplify_using_condition, simplify_using_initial_values): Update
20468         accordingly.
20469
20470 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20471
20472         * loop-iv.c: Include rtl-iter.h.
20473         (find_single_def_src): New function.
20474         (replace_single_def_regs): Turn from being a for_each_rtx callback
20475         to being a function that examines each subrtx itself.
20476         (replace_in_expr, simplify_using_initial_values): Update accordingly.
20477
20478 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20479
20480         * jump.c (eh_returnjump_p_1): Delete.
20481         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
20482         Remove handling of null rtxes.
20483
20484 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20485
20486         * jump.c: Include rtl-iter.h.
20487         (returnjump_p_1): Delete.
20488         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
20489         Remove handling of null rtxes.
20490
20491 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20492
20493         * ira.c: Include rtl-iter.h.
20494         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
20495         to being a function that examines each subrtx itself.  Remove
20496         handling of null rtxes.
20497         (update_equiv_regs): Update call accordingly.
20498
20499 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20500
20501         * fwprop.c: Include rtl-iter.h.
20502         (varying_mem_p): Turn from being a for_each_rtx callback to being
20503         a function that examines each subrtx itself.
20504         (propagate_rtx): Update accordingly.
20505
20506 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20507
20508         * function.c: Include rtl-iter.h
20509         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
20510         callback to being a function that examines each subrtx itself.
20511         Return the changed flag.
20512         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
20513         (instantiate_virtual_regs): Update calls accordingly.
20514
20515 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20516
20517         * final.c: Include rtl-iter.h.
20518         (mark_symbol_ref_as_used): Delete.
20519         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
20520         for_each_rtx.
20521
20522 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20523
20524         * emit-rtl.c: Include rtl-iter.h.
20525         (find_auto_inc): Turn from being a for_each_rtx callback to being
20526         a function that examines each subrtx itself.  Assume the first operand
20527         to an RTX_AUTOINC is the automodified register.
20528         (try_split): Update call accordingly.
20529
20530 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20531
20532         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
20533         Return a bool, inverting the result so that 0/false means "not ok".
20534         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
20535         subrtxes of a CONST.
20536         (mem_loc_descriptor, add_const_value_attribute)
20537         (resolve_addr_in_expr): Update calls accordingly.
20538
20539 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20540
20541         * dwarf2out.c: Include rtl-iter.h.
20542         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
20543         Remove unused data parameter.  Return a bool, inverting the result
20544         so that 0/false means "not ok".
20545         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
20546         instead of for_each_rtx.
20547
20548 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20549
20550         * dse.c: Include rtl-iter.h.
20551         (check_mem_read_rtx): Change void * parameter to real type.
20552         Remove return value.
20553         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
20554         for_each_rtx.  Don't handle null rtxes.
20555
20556 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20557
20558         * df-problems.c: Include rtl-iter.h.
20559         (find_memory): Turn from being a for_each_rtx callback to being
20560         a function that examines each subrtx itself.  Continue to look for
20561         volatile references even after a nonvolatile one has been found.
20562         (can_move_insns_across): Update calls accordingly.
20563
20564 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20565
20566         * ddg.c (walk_mems_2, walk_mems_1): Delete.
20567         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
20568         to iterate over subrtxes.  Return a bool rather than an int.
20569
20570 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20571
20572         * ddg.c: Include rtl-iter.h.
20573         (mark_mem_use_1): Rename to...
20574         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
20575         instead of for_each_rtx.
20576         (mem_read_insn_p): Update accordingly.
20577
20578 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20579
20580         * cse.c (change_cc_mode_args): Delete.
20581         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
20582         a function that examines each subrtx itself.  Take the fields of
20583         change_cc_mode_args as argument and return void.
20584         (cse_change_cc_mode_insn): Update calls accordingly.
20585
20586 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20587
20588         * cse.c (is_dead_reg): Change argument to const_rtx.
20589         (dead_debug_insn_data): Delete.
20590         (is_dead_debug_insn): Expand commentary.  Turn from being a
20591         for_each_rtx callback to being a function that examines
20592         each subrtx itself.  Take the fields of dead_debug_insn_data
20593         as argument.
20594         (delete_trivially_dead_insns): Update call accordingly.
20595
20596 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20597
20598         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
20599         being a for_each_rtx callback to being a function that examines
20600         each subrtx itself.
20601         (cse_extended_basic_block): Update call accordingly.
20602
20603 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20604
20605         * cse.c (check_dependence_data): Delete.
20606         (check_dependence): Change from being a for_each_rtx callback to being
20607         a function that examines all subrtxes itself.  Don't handle null rtxes.
20608         (invalidate): Update call accordingly.
20609
20610 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20611
20612         * cse.c: Include rtl-iter.h.
20613         (approx_reg_cost_1): Delete.
20614         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
20615         Don't handle null rtxes.
20616
20617 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20618
20619         * cfgcleanup.c: Include rtl-iter.h.
20620         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
20621         to being a function that examines each subrtx itself.
20622         (thread_jump): Update accordingly.
20623
20624 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20625
20626         * combine-stack-adj.c: Include rtl-iter.h.
20627         (record_stack_refs_data): Delete.
20628         (record_stack_refs): Turn from being a for_each_rtx callback
20629         to being a function that examines each subrtx itself.
20630         Take a pointer to the reflist.  Invert sense of return value
20631         so that true means success and false means failure.  Don't
20632         handle null rtxes.
20633         (combine_stack_adjustments_for_block): Update accordingly.
20634
20635 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20636
20637         * combine.c (record_truncated_value): Turn from being a for_each_rtx
20638         callback to a function that takes an rtx and returns a bool
20639         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
20640         for_each_rtx.
20641
20642 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20643
20644         * combine.c: Include rtl-iter.h.
20645         (unmentioned_reg_p_1): Delete.
20646         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
20647         Don't handle null rtxes.
20648
20649 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20650
20651         * calls.c: Include rtl-iter.h.
20652         (internal_arg_pointer_based_exp_1): Delete.
20653         (internal_arg_pointer_based_exp): Take a const_rtx.
20654         Use FOR_EACH_SUBRTX to iterate over subrtxes.
20655
20656 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20657
20658         * caller-save.c: Include rtl-iter.h.
20659         (add_used_regs_1): Delete.
20660         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
20661         to iterate over subrtxes.  Assert that any remaining pseudos
20662         have been spilled.
20663
20664 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20665
20666         * bt-load.c: Include rtl-iter.h.
20667         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
20668         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
20669         to iterate over subrtxes.
20670         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
20671         find_btr_use rather than btr_referenced_p.
20672
20673 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20674
20675         * alias.c: Include rtl-iter.h.
20676         (refs_newer_value_cb): Delete.
20677         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
20678
20679 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
20680
20681         * rtl-iter.h: New file.
20682         * rtlanal.c: Include it.
20683         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
20684         (generic_subrtx_iterator <T>::add_single_to_queue)
20685         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
20686         (generic_subrtx_iterator <T>::free_array): New functions.
20687         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
20688         (generic_subrtx_iterator <const_rtx_accessor>)
20689         (generic_subrtx_iterator <rtx_var_accessor>
20690         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
20691         (setup_reg_subrtx_bounds): New function.
20692         (init_rtlanal): Call it.
20693
20694 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
20695
20696         PR target/62261
20697         * config/sh/sh.md (ashlsi3): Handle negative shift count for
20698         TARGET_SHMEDIA.
20699         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
20700
20701 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
20702
20703         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
20704
20705 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20706
20707         * rtl.h (JUMP_LABEL_AS_INSN): New.
20708
20709 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20710
20711         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
20712         rtx_expr_list **.
20713         (alloc_EXPR_LIST): Strengthen return type from rtx to
20714         rtx_expr_list *.
20715         (remove_free_EXPR_LIST_node): Likewise for param.
20716         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
20717         from rtx to rtx_expr_list *.
20718         * sched-int.h (struct deps_desc): Strengthen fields
20719         "pending_read_mems" and "pending_write_mems" from rtx to
20720         rtx_expr_list *.
20721
20722         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
20723         rtx to rtx_expr_list *.
20724         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
20725         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
20726         rtx_expr_list **.
20727         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
20728         from rtx to rtx_expr_list *.
20729         * loop-iv.c (simplify_using_initial_values): Strengthen local
20730         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
20731         "pnote_next" from rtx * to rtx_expr_list **.
20732         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
20733         param "exprp" from rtx * to rtx_expr_list **.
20734         (add_insn_mem_dependence): Strengthen local "mem_list" from
20735         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
20736         to rtx_expr_list *.
20737         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
20738         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
20739         param "old_mems_p" from rtx * to rtx_expr_list **.
20740         * var-tracking.c (struct adjust_mem_data): Strengthen field
20741         "side_effects" from rtx to rtx_expr_list *.
20742         (adjust_insn): Replace NULL_RTX with NULL when assigning to
20743         rtx_expr_list *.
20744         (prepare_call_arguments): Likewise.
20745
20746 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20747
20748         * function.h (struct rtl_data): Strengthen field
20749         "x_stack_slot_list" from rtx to rtx_expr_list *.
20750
20751         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
20752         when assigning to stack_slot_list.
20753
20754 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20755
20756         * function.h (struct rtl_data): Strengthen field
20757         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
20758         * rtl.h (remove_node_from_expr_list): Strengthen second param from
20759         rtx * to rtx_expr_list **.
20760
20761         * cfgbuild.c (make_edges): In loop over
20762         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
20763         rtx_expr_list *, and use methods of the latter class to clarify
20764         the code.
20765         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
20766         rtx_expr_list *, and use methods of the latter class to clarify
20767         the code.
20768         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20769         * reload1.c (set_initial_label_offsets): Likewise for local "x".
20770         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
20771         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
20772         to rtx_expr_list *.  Use methods of the latter class to clarify
20773         the code.
20774
20775 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20776
20777         * function.h (struct expr_status): Strengthen field
20778         "x_forced_labels" from rtx to rtx_expr_list *.
20779
20780         * cfgbuild.c (make_edges): Split local "x" into two locals,
20781         strengthening one from rtx to rtx_expr_list *, and using methods
20782         of said class.
20783         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
20784         loop over forced_labels, introduce strengthen it from rtx to
20785         rtx_expr_list *, using methods to clarify the code.
20786         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
20787         to rtx_expr_list *, using methods of said class to clarify the
20788         code.
20789         * reload1.c (set_initial_label_offsets): Split local "x" into two
20790         per-loop variables, strengthening the first from rtx to
20791         rtx_expr_list * and using methods.
20792
20793 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20794
20795         * coretypes.h (class rtx_expr_list): Add forward declaration.
20796         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
20797         * gengenrtl.c (special_rtx): Add EXPR_LIST.
20798         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
20799         invariant: GET_CODE (X) == EXPR_LIST.
20800         (is_a_helper <rtx_expr_list *>::test): New.
20801         (rtx_expr_list::next): New.
20802         (rtx_expr_list::element): New.
20803         (gen_rtx_EXPR_LIST): New.
20804
20805 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20806
20807         * varasm.c (mark_constants): Convert a GET_CODE check into a
20808         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
20809         Use methods of rtx_sequence to clarify the code.
20810
20811 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20812
20813         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
20814         local "seq" via a checked cast, and use methods of rtx_sequence
20815         to simplify the code.
20816
20817 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20818
20819         * resource.c (mark_referenced_resources): Strengthen local
20820         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
20821         using methods of rtx_sequence to clarify the code.
20822         (find_dead_or_set_registers): Within the switch statement, convert
20823         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
20824         the JUMP_P handling, introduce another local "seq", adding a
20825         checked cast to rtx_sequence *.  In both cases, use methods of
20826         rtx_sequence to clarify the code.
20827         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
20828         via a checked cast, and use methods of rtx_sequence to simplify
20829         the code.
20830
20831 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20832
20833         * reorg.c (redundant_insn): In two places in the function, replace
20834         a check of GET_CODE with a dyn_cast, introducing local "seq", and
20835         usings methods of rtx_sequence to clarify the code.
20836
20837 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20838
20839         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
20840         local "seq" with a checked cast, and use methods of rtx_sequence
20841         to clarify the code.
20842
20843 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20844
20845         * function.c (contains): Introduce local "seq" for PATTERN (insn),
20846         with a checked cast, in the region for where we know it's a
20847         SEQUENCE.  Use methods of rtx_sequence.
20848
20849 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20850
20851         * final.c (get_attr_length_1): Replace GET_CODE check with a
20852         dyn_cast, introducing local "seq" and the use of methods of
20853         rtx_sequence.
20854         (shorten_branches): Likewise, introducing local "body_seq".
20855         Strengthen local "inner_insn" from rtx to rtx_insn *.
20856         (reemit_insn_block_notes): Replace GET_CODE check with a
20857         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
20858         Use methods of rtx_sequence.
20859         (final_scan_insn): Likewise, introducing local "seq" for when
20860         "body" is known to be a SEQUENCE, using its methods.
20861
20862 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20863
20864         * except.c (can_throw_external): Strengthen local "seq" from rtx
20865         to rtx_sequence *.  Use methods of rtx_sequence.
20866         (insn_nothrow_p): Likewise.
20867
20868 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20869
20870         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
20871         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
20872         Use methods of rtx_sequence.
20873         (scan_trace): Likewise for local "pat".
20874
20875 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20876
20877         * coretypes.h (class rtx_sequence): Add forward declaration.
20878         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
20879         invariant: GET_CODE (X) == SEQUENCE.
20880         (is_a_helper <rtx_sequence *>::test): New.
20881         (is_a_helper <const rtx_sequence *>::test): New.
20882         (rtx_sequence::len): New.
20883         (rtx_sequence::element): New.
20884         (rtx_sequence::insn): New.
20885
20886 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20887
20888         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
20889         rtx_insn_list **.
20890         (alloc_INSN_LIST): Strengthen return type from rtx to
20891         rtx_insn_list *.
20892         (copy_INSN_LIST): Likewise for return type and param.
20893         (concat_INSN_LIST): Likewise for both params and return type.
20894         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
20895         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
20896         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
20897         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
20898
20899         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
20900         "implicit_sets", "control_uses", "clobbers" from rtx to
20901         rtx_insn_list *.
20902         (struct deps_desc): Likewise for fields "pending_read_insns",
20903         "pending_write_insns", "pending_jump_insns",
20904         "last_pending_memory_flush", "last_function_call",
20905         "last_function_call_may_noreturn", "sched_before_next_call",
20906         "sched_before_next_jump".
20907         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
20908         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
20909
20910         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
20911         from rtx to rtx_insn_list *.
20912         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
20913         rtx_insn_list *.
20914
20915         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
20916         to rtx_insn_list **.
20917         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
20918         rtx_insn_list *.
20919         (queue_insn): Likewise for local "link".
20920         (struct haifa_saved_data): Strengthen field "insn_queue" from
20921         rtx * to rtx_insn_list **.
20922         (save_backtrack_point): Update allocation of save->insn_queue to
20923         reflect the strengthening of elements from rtx to rtx_insn_list *.
20924         (queue_to_ready): Strengthen local "link" from rtx to
20925         rtx_insn_list *; use methods "next" and "insn" when traversing the
20926         list.
20927         (early_queue_to_ready): Likewise for locals "link", "next_link",
20928         "prev_link".
20929         (schedule_block): Update allocation of insn_queue to reflect the
20930         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
20931         local "link" from rtx to rtx_insn_list *, and use methods when
20932         working it.
20933         (add_to_speculative_block): Strengthen locals "twins" and
20934         "next_node" from rtx to rtx_insn_list *, and use methods when
20935         working with them.  Strengthen local "twin" from rtx to
20936         rtx_insn *, eliminating a checked cast.
20937         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
20938         from rtx to rtx_insn_list *, and use methods when working with
20939         them.
20940
20941         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
20942         from rtx to rtx_insn_list *, adding a checked cast.
20943         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
20944         rtx_insn_list **.
20945         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
20946         "newlink" from rtx to rtx_insn_list *.  Strengthen local
20947         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
20948         from rtx to rtx_insn *.
20949         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
20950         from rtx to rtx_insn_list *.  Use methods of the latter class.
20951         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
20952         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
20953         (remove_free_INSN_LIST_node): Strengthen return type and local
20954         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
20955         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
20956         rtx_insn_list *, using "insn" method.
20957
20958         * sched-deps.c (add_dependence_list):  Strengthen param "list"
20959         from rtx to rtx_insn_list *, and use methods when working with it.
20960         (add_dependence_list_and_free):  Strengthen param "listp" from
20961         rtx * to rtx_insn_list **.
20962         (remove_from_dependence_list): Strenghten param "listp" from rtx *
20963         to rtx_insn_list **, and use methods when working with *listp.
20964         (remove_from_both_dependence_lists): Strengthen param "listp" from
20965         rtx * to rtx_insn_list **
20966         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
20967         to rtx_insn_list **.  Eliminate local "link", in favor of two new
20968         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
20969         respectively.
20970         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
20971         by introducing local "cond_deps".
20972         (remove_from_deps): Strengthen param "insn" from rtx to
20973         rtx_insn *.
20974
20975         * sched-rgn.c (concat_insn_mem_list): Strengthen param
20976         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
20977         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
20978         Use methods of rtx_insn_list.
20979
20980         * store-motion.c (struct st_expr): Strengthen fields
20981         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
20982         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
20983         rtx_insn_list *.
20984         (find_moveable_store): Split out "tmp" into multiple more-tightly
20985         scoped locals.  Use methods of rtx_insn_list *.
20986         (compute_store_table): Strengthen local "tmp" from rtx to
20987         rtx_insn *.  Use methods of rtx_insn_list *.
20988
20989 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20990
20991         * coretypes.h (class rtx_insn_list): Add forward declaration.
20992         * rtl.h (class rtx_insn_list): New subclass of rtx_def
20993         (is_a_helper <rtx_insn_list *>::test): New.
20994         (rtx_insn_list::next): New.
20995         (rtx_insn_list::insn): New.
20996         (gen_rtx_INSN_LIST): Add prototype.
20997         * emit-rtl.c (gen_rtx_INSN_LIST): New.
20998         * gengenrtl.c (special_rtx): Add INSN_LIST.
20999
21000 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21001
21002         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
21003         "prev" from rtx to rtx_insn *.
21004
21005 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21006
21007         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
21008         functions.  Require merely an rtx for now, not an rtx_insn *.
21009         (BLOCK_FOR_INSN): Likewise.
21010         (INSN_LOCATION): Likewise.
21011         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
21012
21013 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21014
21015         * rtl.h (PATTERN): Convert this macro into a pair of inline
21016         functions, for now, requiring const_rtx and rtx.
21017
21018 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21019
21020         * target.def (unwind_emit): Strengthen param "insn" from rtx to
21021         rtx_insn *.
21022         (final_postscan_insn): Likewise.
21023         (adjust_cost): Likewise.
21024         (adjust_priority): Likewise.
21025         (variable_issue): Likewise.
21026         (macro_fusion_pair_p): Likewise.
21027         (dfa_post_cycle_insn): Likewise.
21028         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
21029         (first_cycle_multipass_issue): Likewise.
21030         (dfa_new_cycle): Likewise.
21031         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
21032         (speculate_insn): Likewise for param "insn".
21033         (gen_spec_check): Likewise for params "insn" and "label".
21034         (get_insn_spec_ds): Likewise for param "insn".
21035         (get_insn_checked_ds): Likewise.
21036         (dispatch_do): Likewise.
21037         (dispatch): Likewise.
21038         (cannot_copy_insn_p): Likewise.
21039         (invalid_within_doloop): Likewise.
21040         (legitimate_combined_insn): Likewise.
21041         (needed): Likewise.
21042         (after): Likewise.
21043
21044         * doc/tm.texi: Automatically updated to reflect changes to
21045         target.def.
21046
21047         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
21048         working with insn.
21049         (schedule_block): Likewise.
21050         (sched_init): Likewise.
21051         (sched_speculate_insn): Strengthen param "insn" from rtx to
21052         rtx_insn *.
21053         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
21054         working with insn.
21055         * hooks.c (hook_bool_rtx_true): Rename to...
21056         hook_bool_rtx_insn_true): ...this, and strengthen first param from
21057         rtx to rtx_insn *.
21058         (hook_constcharptr_const_rtx_null): Rename to...
21059         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21060         first param from const_rtx to const rtx_insn *.
21061         (hook_bool_rtx_int_false): Rename to...
21062         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21063         param from rtx to rtx_insn *.
21064         (hook_void_rtx_int): Rename to...
21065         (hook_void_rtx_insn_int): ...this, and strengthen first param from
21066         rtx to rtx_insn *.
21067
21068         * hooks.h (hook_bool_rtx_true): Rename to...
21069         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
21070         rtx to rtx_insn *.
21071         (hook_bool_rtx_int_false): Rename to...
21072         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21073         param from rtx to rtx_insn *.
21074         (hook_void_rtx_int): Rename to...
21075         (hook_void_rtx_insn_int): ...this, and strengthen first param from
21076         rtx to rtx_insn *.
21077         (hook_constcharptr_const_rtx_null): Rename to...
21078         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21079         first param from const_rtx to const rtx_insn *.
21080
21081         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
21082         and local "prev" from rtx to rtx_insn *.
21083
21084         * sched-int.h (sched_speculate_insn): Strengthen first param from
21085         rtx to rtx_insn *.
21086
21087         * sel-sched.c (create_speculation_check): Likewise for local "label".
21088         * targhooks.c (default_invalid_within_doloop): Strengthen param
21089         "insn" from const_rtx to const rtx_insn *.
21090         * targhooks.h (default_invalid_within_doloop): Strengthen param
21091         from const_rtx to const rtx_insn *.
21092
21093         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
21094         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
21095
21096         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
21097         "insn".
21098         (arc_invalid_within_doloop): Likewise, with const.
21099
21100         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
21101         (arm_cannot_copy_insn_p): Likewise for param "insn".
21102         (arm_unwind_emit): Likewise.
21103
21104         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
21105         "dep_insn".
21106
21107         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
21108         (c6x_variable_issue): Likewise.  Removed now-redundant checked
21109         cast.
21110         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
21111
21112         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
21113         Likewise for param "insn".
21114         (epiphany_mode_after): Likewise.
21115         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
21116         params "insn", "dep_insn".
21117         (epiphany_mode_needed): Likewise for param "insn".
21118         (epiphany_mode_after): Likewise.
21119
21120         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
21121         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
21122         (ix86_avx_u128_mode_needed): Likewise.
21123         (ix86_i387_mode_needed): Likewise.
21124         (ix86_mode_needed): Likewise.
21125         (ix86_avx_u128_mode_after): Likewise.
21126         (ix86_mode_after): Likewise.
21127         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
21128         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
21129         (ix86_adjust_priority): Likewise for param "insn".
21130         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
21131         (do_dispatch): Likewise.
21132         (has_dispatch): Likewise.
21133         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
21134
21135         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
21136         reflect renaming of default hook implementation from
21137         hook_constcharptr_const_rtx_null to
21138         hook_constcharptr_const_rtx_insn_null.
21139         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
21140         rtx to rtx_insn *.
21141         (ia64_variable_issue): Likewise for param "insn".
21142         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
21143         (ia64_dfa_new_cycle): Likewise.
21144         (ia64_get_insn_spec_ds): Likewise.
21145         (ia64_get_insn_checked_ds): Likewise.
21146         (ia64_speculate_insn): Likewise.
21147         (ia64_gen_spec_check): Likewise for params "insn", "label".
21148         (ia64_asm_unwind_emit): Likewise for param "insn".
21149
21150         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
21151
21152         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
21153         "insn", "def_insn".
21154         (m68k_sched_variable_issue): Likewise for param "insn".
21155
21156         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
21157         "def_insn".
21158
21159         * config/microblaze/microblaze.c (microblaze_adjust_cost):
21160         Likewise for params "insn", "dep".
21161
21162         * config/mips/mips.c (mips_adjust_cost): Likewise.
21163         (mips_variable_issue): Likewise for param "insn".
21164         (mips_final_postscan_insn): Likewise.
21165
21166         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
21167         for params "insn", "dep".
21168
21169         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
21170         "dep_insn".
21171         (pa_adjust_priority): Likewise for param "insn".
21172
21173         * config/picochip/picochip.c (picochip_sched_adjust_cost):
21174         Likewise for params "insn", "dep_insn".
21175
21176         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
21177         param "insn".
21178         (rs6000_variable_issue): Likewise.
21179         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
21180         (rs6000_debug_adjust_cost): Likewise.
21181         (rs6000_adjust_priority): Likewise for param "insn".
21182         (rs6000_use_sched_lookahead_guard): Likewise.
21183         (get_next_active_insn): Likewise for return type and both params.
21184         (redefine_groups): Likewise for params "prev_head_insn", "tail"
21185         and locals "insn", "next_insn".
21186         (pad_groups): Likewise.
21187
21188         * config/s390/s390.c (s390_adjust_priority): Likewise for param
21189         "insn".
21190         (s390_cannot_copy_insn_p): Likewise.
21191         (s390_sched_variable_issue): Likewise for third param, eliminating
21192         checked cast.
21193         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
21194         default hook implementation from hook_constcharptr_const_rtx_null
21195         to hook_constcharptr_const_rtx_insn_null.
21196
21197         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
21198         from rtx to rtx_insn *.
21199         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
21200         (sh_variable_issue): Likewise for param "insn".
21201         (sh_dfa_new_cycle): Likewise.
21202         (sh_mode_needed): Likewise.
21203         (sh_mode_after): Likewise.
21204
21205         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
21206         params "insn", "dep_insn".
21207         (hypersparc_adjust_cost): Likewise.
21208         (sparc_adjust_cost): Likewise.
21209
21210         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
21211         param, eliminated checked cast.
21212         (spu_sched_adjust_cost): Likewise for first and third params.
21213
21214         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
21215         params "insn" and "dep_insn" from rtx to rtx_insn *.
21216
21217         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
21218
21219 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21220
21221         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
21222         (set_is_load_p): ...this, updating to work on a SET pattern rather
21223         than an insn.
21224         (is_store_insn): Rename to...
21225         (set_is_store_p): ...this, updating to work on a SET pattern
21226         rather than an insn.
21227         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
21228         top of function to where it is needed.  Rewrite the bogus
21229         condition that checks for "insn" and "dep" being PARALLEL to
21230         instead use single_set, introducing locals "insn_set" and
21231         "dep_set".  Given that we only ever returned "cost" for a non-pair
21232         of SETs, bail out early if we don't have a pair of SET.
21233         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
21234         use the new locals "insn_set" and "dep_set", and update calls to
21235         is_load_insn and is_store_insn to be calls to set_is_load_p and
21236         set_is_store_p.
21237
21238 2014-08-27  Guozhi Wei  <carrot@google.com>
21239
21240         PR target/62262
21241         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
21242         amount before using it.
21243
21244 2014-08-27  Richard Biener  <rguenther@suse.de>
21245
21246         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
21247         get_maxval_strlen inside a more useful API.
21248         (gimple_fold_builtin_with_strlen): Remove and fold into ...
21249         (gimple_fold_builtin): ... caller.
21250         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
21251         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
21252         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
21253         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
21254         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
21255         gimple_fold_builtin_sprintf): Adjust to compute maxval
21256         themselves.
21257
21258 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
21259
21260         PR other/62248
21261         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
21262
21263 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21264             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21265             Anna Tikhonova  <anna.tikhonova@intel.com>
21266             Ilya Tocar  <ilya.tocar@intel.com>
21267             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21268             Ilya Verbin  <ilya.verbin@intel.com>
21269             Kirill Yukhin  <kirill.yukhin@intel.com>
21270             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21271
21272         * config/i386/sse.md
21273         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
21274         Use `concat_tg_mode' attribute to determine asm register size.
21275
21276 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21277             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21278             Anna Tikhonova  <anna.tikhonova@intel.com>
21279             Ilya Tocar  <ilya.tocar@intel.com>
21280             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21281             Ilya Verbin  <ilya.verbin@intel.com>
21282             Kirill Yukhin  <kirill.yukhin@intel.com>
21283             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21284
21285         * config/i386/sse.md
21286         (define_mode_iterator VI48_AVX512VL): New.
21287         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
21288         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
21289         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
21290         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21291         with VI1): Change mode iterator.
21292         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21293         with VI_ULOADSTORE_BW_AVX512VL): New.
21294         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21295         with VI_ULOADSTORE_F_AVX512VL): Ditto.
21296         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21297         with VI1): Change mode iterator.
21298         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21299         with VI_ULOADSTORE_BW_AVX512VL): New.
21300         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21301         with VI_ULOADSTORE_F_AVX512VL): Ditto.
21302         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
21303         with VI1): Change mode iterator.
21304         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
21305         with VI_ULOADSTORE_BW_AVX512VL): New.
21306         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
21307         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
21308         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
21309         (define_insn "<avx512>_storedqu<mode>_mask" with
21310         VI48_AVX512VL): New.
21311         (define_insn "<avx512>_storedqu<mode>_mask" with
21312         VI12_AVX512VL): Ditto.
21313
21314 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21315             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21316             Anna Tikhonova  <anna.tikhonova@intel.com>
21317             Ilya Tocar  <ilya.tocar@intel.com>
21318             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21319             Ilya Verbin  <ilya.verbin@intel.com>
21320             Kirill Yukhin  <kirill.yukhin@intel.com>
21321             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21322
21323         * config/i386/sse.md
21324         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
21325         (define_mode_iterator VI48_AVX512BW): New.
21326         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
21327         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
21328         with VI48_AVX2_48_AVX512F): New.
21329         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
21330         with VI2_AVX512VL): Ditto.
21331
21332 2014-08-27  Richard Biener  <rguenther@suse.de>
21333
21334         PR middle-end/62239
21335         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
21336         (fold_builtin_3): Do not fold strcat_chk here.
21337         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
21338         from builtins.c.
21339         (gimple_fold_builtin): Fold strcat_chk here.
21340
21341 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
21342
21343         * dwarf2out.h (dwarf2out_decl): Remove prototype.
21344         * dwarf2out.c (dwarf2out_decl): Make static.
21345
21346 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
21347
21348         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
21349
21350 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21351
21352         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
21353         from rtx to rtx_insn *.
21354         (cselib_lookup_from_insn): Likewise for final param.
21355         (cselib_subst_to_values_from_insn): Likewise.
21356         (cselib_add_permanent_equiv): Likewise.
21357
21358         * cselib.c (cselib_current_insn): Likewise for this variable.
21359         (cselib_subst_to_values_from_insn): Likewise for param "insn".
21360         (cselib_lookup_from_insn): Likewise.
21361         (cselib_add_permanent_equiv): Likewise for param "insn" and local
21362         "save_cselib_current_insn".
21363         (cselib_process_insn): Replace use of NULL_RTX with NULL.
21364
21365         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
21366         from rtx to rtx_insn *.
21367
21368 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21369
21370         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
21371         rtx_insn *.
21372
21373 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21374
21375         * df.h (df_dump_insn_problem_function): Strengthen first param of
21376         this callback from const_rtx to const rtx_insn *.
21377         (struct df_insn_info): Strengthen field "insn" from rtx to
21378         rtx_insn *.
21379         (DF_REF_INSN): Eliminate this function, reinstating the older
21380         macro definition.
21381         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
21382         (df_reg_defined): Likewise.
21383         (df_find_use): Likewise.
21384         (df_reg_used): Likewise.
21385         (df_dump_insn_top): Strengthen param 1 from const_rtx to
21386         const rtx_insn *.
21387         (df_dump_insn_bottom): Likewise.
21388         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
21389         (df_insn_debug_regno): Likewise.
21390         (debug_df_insn): Likewise.
21391         (df_rd_simulate_one_insn): Likewise for param 2.
21392         (df_word_lr_simulate_defs): Likewise for param 1.
21393         (df_word_lr_simulate_uses): Likewise.
21394         (df_md_simulate_one_insn): Likewise for param 2.
21395         (df_simulate_find_noclobber_defs): Likewise for param 1.
21396         (df_simulate_find_defs): Likewise.
21397         (df_simulate_defs): Likewise.
21398         (df_simulate_uses): Likewise.
21399         (df_simulate_one_insn_backwards): Likewise for param 2.
21400         (df_simulate_one_insn_forwards): Likewise.
21401         (df_uses_create): Likewise for param 2.
21402         (df_insn_create_insn_record): Likewise for param 1.
21403         (df_insn_delete): Likewise.
21404         (df_insn_rescan): Likewise.
21405         (df_insn_rescan_debug_internal): Likewise.
21406         (df_insn_change_bb): Likewise.
21407         (df_notes_rescan): Likewise.
21408         * rtl.h (remove_death): Likewise for param 2.
21409         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
21410         const rtx_insn *.
21411         * sched-int.h (reemit_notes): Strengthen param from rtx to
21412         rtx_insn *.
21413         * valtrack.h (propagate_for_debug): Likewise for param 1.
21414
21415         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
21416         local "tmp_rtx" from const_rtx to const rtx_insn *.
21417         * combine.c (remove_death): Strengthen param "insn" from rtx to
21418         rtx_insn *.
21419         (move_deaths): Likewise for local "where_dead".
21420         * cse.c (delete_trivially_dead_insns): Introduce local
21421         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
21422         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
21423         rtx_insn *.
21424         (df_reg_defined): Likewise.
21425         (df_find_use): Likewise.
21426         (df_reg_used): Likewise.
21427         (df_dump_insn_problem_data): Strengthen param "insn" from
21428         const_rtx to const rtx_insn *.
21429         (df_dump_insn_top): Likewise.
21430         (df_dump_insn_bottom): Likewise.
21431         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
21432         (df_insn_debug_regno): Likewise.
21433         (debug_df_insn): Likewise.
21434         (DF_REF_INSN): Delete.
21435         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
21436         from rtx to rtx_insn *.
21437         (df_chain_insn_top_dump): Strengthen param "insn" from
21438         const_rtx to const rtx_insn *.
21439         (df_chain_insn_bottom_dump): Likewise.
21440         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
21441         rtx_insn *.
21442         (df_word_lr_simulate_uses): Likewise.
21443         (df_print_note): Likewise.
21444         (df_remove_dead_and_unused_notes): Likewise.
21445         (df_set_unused_notes_for_mw): Likewise.
21446         (df_set_dead_notes_for_mw): Likewise.
21447         (df_create_unused_note): Likewise.
21448         (df_simulate_find_defs): Likewise.
21449         (df_simulate_find_uses): Likewise.
21450         (df_simulate_find_noclobber_defs): Likewise.
21451         (df_simulate_defs): Likewise.
21452         (df_simulate_uses): Likewise.
21453         (df_simulate_one_insn_backwards): Likewise.
21454         (df_simulate_one_insn_forwards): Likewise.
21455         (df_md_simulate_one_insn): Likewise.
21456         * df-scan.c (df_uses_create): Likewise.
21457         (df_insn_create_insn_record): Likewise.
21458         (df_insn_delete): Likewise.
21459         (df_insn_rescan): Likewise.
21460         (df_insn_rescan_debug_internal): Likewise.
21461         (df_insn_change_bb): Likewise.
21462         (df_notes_rescan): Likewise.
21463         (df_refs_add_to_chains): Likewise.
21464         (df_insn_refs_verify): Likewise.
21465         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
21466         when invoking df_insn_delete.
21467         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
21468         (set_unique_reg_note): Add checked cast.
21469         * final.c (cleanup_subreg_operands): Likewise.
21470         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
21471         "insn" from rtx to rtx_insn *.
21472         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
21473         "last" from rtx to rtx_insn *.
21474         * ira-emit.c (change_regs_in_insn): New function.
21475         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
21476         Invoke change_regs_in_insn rather than change_regs.
21477         * ira.c (update_equiv_regs): Strengthen locals "insn",
21478         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
21479         for_each_rtx_in_insn rather than for_each_rtx.
21480         * recog.c (confirm_change_group): Add checked casts.
21481         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
21482         Add checked cast.
21483         (peep2_fill_buffer): Add checked cast.
21484         * rtlanal.c (remove_note): Likewise.
21485         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
21486         locals "next" "end" from rtx to rtx_insn *.
21487
21488 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21489
21490         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
21491         to rtx_insn *.
21492         (struct reg_use_data): Likewise for field "insn".
21493         (insn_cost): Likewise for param.
21494         (real_insn_for_shadow): Likewise for return type and param.
21495         (increase_insn_priority): Likewise for param 1.
21496         (debug_dependencies): Likewise for both params.
21497
21498         * haifa-sched.c (insn_delay): Likewise for param "insn".
21499         (real_insn_for_shadow): Likewise for return type and param "insn".
21500         (update_insn_after_change): Likewise for param "insn".
21501         (recompute_todo_spec): Likewise for param "next" and locals "pro",
21502         "other".
21503         (insn_cost): Likewise for param "insn".
21504         (increase_insn_priority): Likewise.
21505         (calculate_reg_deaths): Likewise.
21506         (setup_insn_reg_pressure_info): Likewise.
21507         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
21508         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
21509         (model_recompute): Likewise.
21510         (must_restore_pattern_p): Likewise for param "next".
21511         (model_excess_cost): Likewise for param "insn".
21512         (queue_remove): Likewise.
21513         (adjust_priority): Likewise for param "prev".
21514         (update_register_pressure): Likewise for param "insn".
21515         (setup_insn_max_reg_pressure): Likewise for local "insn".
21516         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
21517         (model_add_to_schedule): Likewise.
21518         (model_reset_queue_indices): Likewise for local "insn".
21519         (unschedule_insns_until): Strengthen local "recompute_vec" from
21520         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
21521         "con" from rtx to rtx_insn *.
21522         (restore_last_backtrack_point): Likewise for both locals "x". Add
21523         checked casts.
21524         (estimate_insn_tick): Likewise for param "insn".
21525         (commit_schedule): Likewise for params "prev_head", "tail" and
21526         local "x".
21527         (verify_shadows): Likewise for locals "i1", "i2".
21528         (dump_insn_stream): Likewise for params "head", "tail" and locals
21529         "next_tail", "insn".
21530         (schedule_block): Likewise for locals "insn", "x".  Add a checked
21531         cast.
21532         (fix_inter_tick): Likewise for params "head", "tail".
21533         (create_check_block_twin): Likewise for local "jump".
21534         (haifa_change_pattern): Likewise for param "insn".
21535         (haifa_speculate_insn): Likewise.
21536         (dump_new_block_header): Likewise for params "head", "tail".
21537         (fix_jump_move): Likewise for param "jump".
21538         (move_block_after_check): Likewise.
21539         (sched_init_insn_luid): Likewise for param "insn".
21540         (sched_init_luids): Likewise for local "insn".
21541         (insn_luid): Likewise for param "insn".
21542         (init_h_i_d): Likewise.
21543         (haifa_init_h_i_d): Likewise for local "insn".
21544         (haifa_init_insn): Likewise for param "insn".
21545         * sched-deps.c (add_dependence): Likewise for local "real_pro",
21546         "other".
21547         (create_insn_reg_use): Likewise for param "insn".
21548         (setup_insn_reg_uses): Likewise.  Add a checked cast.
21549         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
21550         "tail" from rtx to rtx_insn *.
21551         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
21552         "insn", "next_tail".
21553
21554 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21555
21556         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
21557         from rtx to rtx_insn *.
21558         (model_add_to_schedule): Likewise for locals "start", "end",
21559         "iter".
21560
21561 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21562
21563         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
21564         rtx_insn *.
21565         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
21566         "to" and locals "insn", "next", "copy".  Remove now-redundant
21567         checked cast.
21568
21569 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21570
21571         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
21572         rtx_insn * and param 4 from rtx * to rtx_insn **.
21573         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
21574         param 2 from rtx * to rtx_insn **.
21575
21576         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
21577         rtx_insn * and final param from rtx * to rtx_insn **.
21578
21579         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
21580         from rtx to rtx_insn *.
21581         (try_head_merge_bb): Likewise for both locals named "move_upto".
21582         * df-problems.c (can_move_insns_across): Likewise for params
21583         "from", "to", "across_from", "across_to" and locals "insn",
21584         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
21585         rtx_insn **.
21586         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
21587         from rtx to rtx_insn *.
21588         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
21589         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
21590         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
21591         rtx_insn *.
21592         (noce_try_abs): Likewise.
21593         (noce_get_condition): Likewise for param "jump".  Strengthen param
21594         "earliest" from rtx * to rtx_insn **.
21595         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
21596         rtx_insn *.
21597         (find_cond_trap): Likewise.
21598         (dead_or_predicable): Likewise for local "earliest".
21599         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
21600         checked cast.
21601         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
21602         and local "prev".  Strengthen param "earliest" from rtx * to
21603         rtx_insn **.
21604         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
21605         Strengthen param "earliest" from rtx * to rtx_insn **.
21606
21607 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21608
21609         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
21610         "to" and local "insn" from rtx to rtx_insn *.
21611
21612 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21613
21614         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
21615         from rtx to rtx_insn *.
21616         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
21617         (code_motion_path_driver): Likewise for local "last_insn".
21618         (simplify_changed_insns): Likewise for local "insn".
21619
21620 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21621
21622         * rtl.h (push_to_sequence): Strengthen param from rtx to
21623         rtx_insn *.
21624         (push_to_sequence2): Likewise for both params.
21625         (delete_insns_since): Likewise for param.
21626         (reorder_insns_nobb): Likewise for all three params.
21627         (set_new_first_and_last_insn): Likewise for both params.
21628
21629         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
21630         rtx_insn *.  Remove now-redundant cast.
21631         (set_last_insn): Likewise.
21632
21633         * builtins.c (expand_builtin_return): Strengthen local
21634         "call_fusage" from rtx to rtx_insn *.
21635         * cfgrtl.c (create_basic_block_structure): Likewise for local
21636         "after".
21637         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
21638         "first", "last" and local "insn".
21639         (delete_insns_since): Likewise for param "from".
21640         (reorder_insns_nobb): Likewise for params "from", "to", "after"
21641         and local "x".
21642         (push_to_sequence): Likewise for param "first" and local "last".
21643         (push_to_sequence2): Likewise for params "first" and "last".
21644         * lra.c (emit_add3_insn): Likewise for local "last".
21645         (lra_emit_add): Likewise.
21646         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
21647         "last_insn".
21648         (process_address_1): Likewise for locals "insn", last".
21649         * modulo-sched.c (ps_first_note): Likewise for return type.
21650         * optabs.c (expand_binop_directly): Likewise for param "last".
21651
21652 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21653
21654         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
21655         to rtx_insn*.
21656         * emit-rtl.c (get_last_insn_anywhere): Likewise.
21657
21658 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21659
21660         * function.h (struct sequence_stack): Strengthen fields "first"
21661         and "last" from rtx to rtx_insn *.
21662         (struct emit_status): Likewise for fields "x_first_insn" and
21663         "x_last_insn".
21664
21665         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
21666         (set_first_insn): Add checked cast.
21667         (get_last_insn): Remove now-redundant checked cast.
21668         (set_last_insn): Add checked cast.
21669
21670         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
21671         "saved_first" and "saved_last" from rtx to rtx_insn *.
21672
21673 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21674
21675         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
21676         (unlink_insn_chain): Strengthen both params from rtx to
21677         rtx_insn *.
21678
21679         * cfgrtl.c (cfg_layout_function_header): Likewise for this
21680         variable.
21681         (unlink_insn_chain): Likewise for params "first" and "last".
21682         Remove now-redundant checked cast.
21683         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
21684         (fixup_reorder_chain): Strengthen local "insn" from rtx to
21685         rtx_insn *.
21686         * emit-rtl.c (link_insn_into_chain): Likewise for all three
21687         params.
21688         (add_insn): Likewise for param "insn" and local "prev".
21689         (add_insn_after_nobb): Likewise for both params and local "next".
21690         (add_insn_before_nobb): Likewise for both params and local "prev".
21691         (add_insn_after): Rename param "after" to "uncast_after",
21692         introducing local "after" with another checked cast.
21693         (add_insn_before): Rename params "insn" and "before", giving them
21694         "uncast_" prefixes, adding the old names back using checked casts.
21695         (emit_note_after): Likewise for param "after".
21696         (emit_note_before): Likewise for param "before".
21697         (emit_label): Add a checked cast.
21698
21699 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21700
21701         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
21702         "insn" from rtx to rtx_insn *.
21703
21704         * cselib.c (cselib_record_sets_hook): Likewise.
21705
21706         * var-tracking.c (add_with_sets): Likewise, renaming back from
21707         "uncast_insn" to "insn" and eliminating the checked cast from rtx
21708         to rtx_insn *.
21709
21710 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21711
21712         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
21713         and "header_" from rtx to rtx_insn *.
21714         (struct basic_block_d): Likewise for field "head_" within "x"
21715         field of union basic_block_il_dependent.
21716         (BB_HEAD): Drop function...
21717         (SET_BB_HEAD): ...and this function in favor of...
21718         (BB_HEAD): ...reinstate macro.
21719         (BB_END): Drop function...
21720         (SET_BB_END): ...and this function in favor of...
21721         (BB_END): ...reinstate macro.
21722         (BB_HEADER): Drop function...
21723         (SET_BB_HEADER): ...and this function in favor of...
21724         (BB_HEADER): ...reinstate macro.
21725
21726         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
21727         (fix_crossing_unconditional_branches): Likewise.
21728         * caller-save.c (save_call_clobbered_regs): Likewise.
21729         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
21730         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
21731         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
21732         (merge_blocks_move_successor_nojumps): Likewise.
21733         (outgoing_edges_match): Update use of for_each_rtx to
21734         for_each_rtx_in_insn.
21735         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
21736         (expand_gimple_cond): Likewise.
21737         (expand_gimple_tailcall): Likewise.
21738         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
21739         SET_BB_END.
21740         (construct_exit_block): Drop use of SET_BB_END.
21741         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
21742         rtx_insn *.
21743         (delete_insn): Rename param "insn" to "uncast_insn", introducing
21744         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
21745         SET_BB_HEAD and SET_BB_END.
21746         (create_basic_block_structure): Drop use of SET_BB_HEAD and
21747         SET_BB_END.
21748         (rtl_delete_block): Drop use of SET_BB_HEAD.
21749         (rtl_split_block): Drop use of SET_BB_END.
21750         (emit_nop_for_unique_locus_between): Likewise.
21751         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
21752         (block_label): Drop use of SET_BB_HEAD.
21753         (fixup_abnormal_edges): Drop use of SET_BB_END.
21754         (record_effective_endpoints): Drop use of SET_BB_HEADER.
21755         (relink_block_chain): Likewise.
21756         (fixup_reorder_chain): Drop use of SET_BB_END.
21757         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
21758         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
21759         rtx_insn **.  Drop use of SET_BB_HEADER.
21760         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
21761         SET_BB_HEAD.
21762         (BB_HEAD): Delete this function.
21763         (SET_BB_HEAD): Likewise.
21764         (BB_END): Likewise.
21765         (SET_BB_END): Likewise.
21766         (BB_HEADER): Likewise.
21767         (SET_BB_HEADER): Likewise.
21768         * emit-rtl.c (add_insn_after):  Rename param "insn" to
21769         "uncast_insn", adding a new local "insn" and a checked cast to
21770         rtx_insn *.  Drop use of SET_BB_END.
21771         (remove_insn): Strengthen locals "next" and "prev" from rtx to
21772         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
21773         (reorder_insns): Drop use of SET_BB_END.
21774         (emit_insn_after_1): Strengthen param "first" and locals "last",
21775         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
21776         (emit_pattern_after_noloc): Add checked cast.
21777         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
21778         (restore_other_notes): Likewise.
21779         (move_insn): Likewise.
21780         (sched_extend_bb): Likewise.
21781         (fix_jump_move): Likewise.
21782         * ifcvt.c (noce_process_if_block): Likewise.
21783         (dead_or_predicable): Likewise.
21784         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
21785         * reg-stack.c (change_stack): Drop use of SET_BB_END.
21786         * sel-sched-ir.c (sel_move_insn): Likewise.
21787         * sel-sched.c (move_nop_to_previous_block): Likewise.
21788
21789         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
21790         SET_BB_END.
21791         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
21792
21793 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21794
21795         * basic-block.h (create_basic_block_structure): Strengthen params
21796         1 "head" and 2 "end" from rtx to rtx_insn *.
21797         * cfgrtl.c (create_basic_block_structure): Likewise.
21798         (rtl_create_basic_block): Update casts from void * to rtx to
21799         rtx_insn *, so that we can pass them as rtx_insn * to
21800         create_basic_block_structure.
21801         * sel-sched-ir.c (sel_create_basic_block): Likewise.
21802
21803 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21804
21805         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
21806         rtx_insn **.
21807         (check_for_inc_dec): Strengthen param "insn" from rtx to
21808         rtx_insn *.
21809
21810         * cselib.h (cselib_process_insn): Likewise.
21811
21812         * cselib.c (cselib_record_sets): Likewise.
21813         (cselib_process_insn): Likewise.
21814
21815         * dse.c (struct insn_info): Likewise for field "insn".
21816         (check_for_inc_dec_1): Likewise for local "insn".
21817         (check_for_inc_dec): Likewise for param "insn".
21818         (scan_insn): Likewise.
21819         (dse_step1): Likewise for local "insn".
21820
21821         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
21822         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
21823
21824 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21825
21826         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
21827         from rtx to rtx_insn *.
21828         (DEP_PRO): Delete this function and...
21829         (SET_DEP_PRO): ...this function in favor of...
21830         (DEP_PRO): ...reinstate this macro.
21831         (DEP_CON): Delete this function and...
21832         (SET_DEP_CON): ...this function in favor of...
21833         (DEP_CON): ...reinstate this old macro.
21834         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
21835         (init_dep): Likewise.
21836         (set_priorities): Likewise for both params.
21837         (sd_copy_back_deps): Likewise for params 1 and 2.
21838
21839         * haifa-sched.c (priority): Likewise for param "insn" and local
21840         "next".
21841         (set_priorities): Likewise for params "head" and "tail" and local
21842         "insn".
21843         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
21844         local "consumer".
21845         (add_to_speculative_block): Add a checked cast.
21846         (create_check_block_twin): Drop use of SET_DEP_CON.
21847         (add_jump_dependencies): Strengthen params "insn" and "jump" from
21848         rtx to rtx_insn *.
21849
21850         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
21851         Drop use of SET_DEP_PRO
21852         (init_dep): Strengthen params "pro" and "con" from rtx to
21853         rtx_insn *.
21854         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
21855         use of SET_DEP_CON.
21856         (DEP_PRO): Delete.
21857         (DEP_CON): Delete.
21858         (SET_DEP_PRO): Delete.
21859         (SET_DEP_CON): Delete.
21860
21861 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21862
21863         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
21864         from rtx to rtx_insn *.
21865         (VINSN_INSN_RTX): Eliminate rvalue function and...
21866         (SET_VINSN_INSN): ...lvalue function in favor of...
21867         (VINSN_INSN_RTX): reinstate this old macro.
21868
21869         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
21870         in favor of VINSN_INSN_RTX.
21871         (VINSN_INSN_RTX): Delete this function.
21872         (SET_VINSN_INSN_RTX): Likewise.
21873
21874 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21875
21876         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
21877         (BND_TO): Delete this function and...
21878         (SET_BND_TO): ...this functions in favor of...
21879         (BND_TO): ...reinstating this macro.
21880         (struct _fence): Strengthen field "executing_insns" from
21881         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
21882         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
21883         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
21884         and param "insn" from rtx to insn_t.
21885         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
21886         rtx_insn *.
21887
21888         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
21889         vec<rtx_insn *> .
21890         (rtx_vec_t): Likewise.
21891         (struct sched_deps_info_def): Strengthen param of "start_insn"
21892         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
21893         "note_mem_dep" callback and first param of "note_dep" callback.
21894
21895         * haifa-sched.c (add_to_speculative_block): Strengthen param
21896         "insn" from rtx to rtx_insn *.
21897         (clear_priorities): Likewise.
21898         (calc_priorities): Likewise for local "insn".
21899
21900         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
21901         Remove redundant checked cast.
21902         (haifa_note_mem_dep): Likewise for param "pending_insn".
21903         (haifa_note_dep): Likewise for param "elem".
21904         (note_mem_dep): Likewise for param "e".
21905         (sched_analyze_1): Add checked casts.
21906         (sched_analyze_2): Likewise.
21907
21908         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
21909         from rtx to rtx_insn *.
21910         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
21911         from vec<rtx> * to vec<rtx_insn *> *.
21912
21913         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
21914         scaffolding.
21915         (flist_add): Strengthen param "executing_insns" from
21916         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
21917         (advance_deps_context): Remove now-redundant checked cast.
21918         (init_fences): Replace uses of NULL_RTX with NULL.
21919         (merge_fences): Strengthen params "last_scheduled_insn" and
21920         "sched_next" from rtx to rtx_insn * and "executing_insns" from
21921         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
21922         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
21923         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
21924         an instruction, rather than doing double-duty as a pattern.
21925         (return_nop_to_pool): Update for change of insn_t.
21926         (deps_init_id): Remove now-redundant checked cast.
21927         (struct sched_scan_info_def): Strengthen param of "init_insn"
21928         callback from rtx to insn_t.
21929         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
21930         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
21931         NULL.
21932         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
21933         "end" from rtx to rtx_insn *.
21934         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
21935         (rtx insn_rtx, bool force_unique_p)
21936         (BND_TO): Delete function.
21937         (SET_BND_TO): Delete function.
21938
21939         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
21940         rtx to rtx_insn *.
21941         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
21942         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
21943         rtx to rtx_insn *.
21944         (undo_transformations): Likewise for param "insn".
21945         (update_liveness_on_insn): Likewise.
21946         (compute_live_below_insn): Likewise for param "insn" and local
21947         "succ".
21948         (update_data_sets): Likewise for param "insn".
21949         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
21950         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
21951         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
21952         rtx_insn *.
21953         (move_cond_jump): Likewise for param "insn".
21954         (move_cond_jump): Drop use of SET_BND_TO.
21955         (compute_av_set_on_boundaries): Likewise.
21956         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
21957         (update_and_record_unavailable_insns): Strengthen local "bb_end"
21958         from rtx to rtx_insn *.
21959         (maybe_emit_renaming_copy): Likewise for param "insn".
21960         (maybe_emit_speculative_check): Likewise.
21961         (handle_emitting_transformations): Likewise.
21962         (remove_insn_from_stream): Likewise.
21963         (code_motion_process_successors): Strengthen local "succ" from rtx
21964         to insn_t.
21965
21966 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21967
21968         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
21969         ilist_t, not _xlist_t;
21970         (ILIST_INSN): Define in terms of new union field "insn".
21971         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
21972         _XLIST_NEXT.
21973         (struct _list_node): Add new field "insn" to the union, of type
21974         insn_t.
21975         (ilist_add): Replace macro with an inline function, requiring an
21976         insn_t.
21977         (ilist_remove): Define this macro directly in terms of
21978         _list_remove, rather than indirectly via _xlist_remove.
21979         (ilist_clear): Likewise, in terms of _list_clear rather than
21980         _xlist_clear.
21981         (ilist_is_in_p): Replace macro with an inline function, requiring
21982         an insn_t.
21983         (_list_iter_cond_insn): New function.
21984         (ilist_iter_remove): Define this macro directly in terms of
21985         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
21986         (ilist_iterator): Define directly in terms of _list_iterator
21987         rather than indirectly through _xlist_iterator.
21988         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
21989         than in terms of _FOR_EACH_X.
21990         (FOR_EACH_INSN_1): Likewise.
21991
21992 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
21993
21994         PR target/60606
21995         PR target/61330
21996         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
21997         DECL_HARD_REGISTER and return for invalid register specifications.
21998         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
21999         DECL_HARD_REGISTER, call expand_one_error_var.
22000         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
22001         CC_REGNUM with non-MODE_CC modes.
22002         (arm_regno_class): Return NO_REGS for PC_REGNUM.
22003
22004 2014-08-26  Marek Polacek  <polacek@redhat.com>
22005
22006         PR c/61271
22007         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
22008
22009 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
22010
22011         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
22012         qi cost; add di cost.
22013         (cortexa57_addrcost_table): Likewise.
22014
22015 2014-08-26  Marek Polacek  <polacek@redhat.com>
22016
22017         PR c/61271
22018         * expr.c (is_aligning_offset): Remove logical not.
22019
22020 2014-08-26  Marek Polacek  <polacek@redhat.com>
22021
22022         PR c/61271
22023         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
22024         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
22025
22026 2014-08-26  Richard Biener  <rguenther@suse.de>
22027
22028         PR tree-optimization/62175
22029         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22030         expand possibly trapping operations.
22031
22032 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22033
22034         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
22035         "insn" from rtx to rtx_insn *.
22036         (permute_load): Likewise for param "insn".
22037         (permute_store): Likewise.
22038         (handle_special_swappables): Likewise for local "insn".
22039         (replace_swap_with_copy): Likewise for locals "insn" and
22040         "new_insn".
22041         (rs6000_analyze_swaps): Likewise for local "insn".
22042
22043 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22044
22045         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
22046         to rtx_insn *.
22047
22048 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22049
22050         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
22051         "note_list" from rtx to rtx_insn *.
22052         (BB_NOTE_LIST): Replace this function and...
22053         (SET_BB_NOTE_LIST): ...this function with...
22054         (BB_NOTE_LIST): ...the former macro implementation.
22055
22056         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
22057         local "from_start" from rtx to rtx_insn *.  Strengthen param
22058         "to_endp" from rtx * to rtx_insn **.
22059
22060         * haifa-sched.c (concat_note_lists): Likewise.
22061         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
22062         BB_NOTE_LIST.
22063         (sel_restore_notes): Likewise.
22064         (move_bb_info): Likewise.
22065         (BB_NOTE_LIST): Delete this function.
22066         (SET_BB_NOTE_LIST): Delete this function.
22067         * sel-sched.c (create_block_for_bookkeeping): Eliminate
22068         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
22069
22070 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22071
22072         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
22073         from rtx * to rtx_insn **.
22074         (reorder2): Likewise.
22075         (dependencies_evaluation_hook): Strengthen params "head", "tail"
22076         from rtx to rtx_insn *.
22077
22078         * doc/tm.texi: Update mechanically for above change to target.def.
22079
22080         * sched-int.h (note_list): Strengthen this variable from rtx to
22081         rtx_insn *.
22082         (remove_notes): Likewise for both params.
22083         (restore_other_notes): Likewise for return type and first param.
22084         (struct ready_list): Strengthen field "vec" from rtx * to
22085         rtx_insn **.
22086         (struct dep_replacement): Strenghten field "insn" from rtx to
22087         rtx_insn *.
22088         (struct deps_desc): Likewise for fields "last_debug_insn",
22089         "last_args_size".
22090         (struct haifa_sched_info): Likewise for callback field
22091         "can_schedule_ready_p"'s param, for first param of "new_ready"
22092         callback field, for both params of "rank" callback field, for
22093         first field of "print_insn" callback field (with a const), for
22094         both params of "contributes_to_priority" callback, for param
22095         of "insn_finishes_block_p" callback, for fields "prev_head",
22096         "next_tail", "head", "tail", for first param of "add_remove_insn"
22097         callback, for first param of "begin_schedule_ready" callback, for
22098         both params of "begin_move_insn" callback, and for second param
22099         of "advance_target_bb" callback.
22100         (add_dependence): Likewise for params 1 and 2.
22101         (sched_analyze): Likewise for params 2 and 3.
22102         (deps_analyze_insn): Likewise for param 2.
22103         (ready_element): Likewise for return type.
22104         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
22105         (try_ready): Strenghten param from rtx to rtx_insn *.
22106         (sched_emit_insn): Likewise for return type.
22107         (record_delay_slot_pair): Likewise for params 1 and 2.
22108         (add_delay_dependencies): Likewise for param.
22109         (contributes_to_priority): Likewise for both params.
22110         (find_modifiable_mems): Likewise.
22111
22112         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
22113         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
22114         "first_older_only_insn" from rtx to rtx_insn *.
22115         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
22116         rtx_insn **.
22117
22118         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
22119         "last_scheduled_iter0" from rtx to rtx_insn *.
22120         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
22121         (c6x_sched_reorder_1): Strengthen param "ready" and locals
22122         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
22123         "insn" from rtx to rtx_insn *.
22124         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
22125         rtx_insn **.
22126         (c6x_sched_reorder2): Strengthen param "ready" and locals
22127         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
22128         "insn" from rtx to rtx_insn *.
22129         (c6x_variable_issue):  Add a checked cast when assigning from insn
22130         to ss.last_scheduled_iter0.
22131         (split_delayed_branch): Strengthen param "insn" and local "i1"
22132         from rtx to rtx_insn *.
22133         (split_delayed_nonbranch): Likewise.
22134         (undo_split_delayed_nonbranch): Likewise for local "insn".
22135         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
22136         "entry_after", "end_packet", "head_insn", "tail_insn",
22137         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
22138         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
22139         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
22140         but add a checked cast on loop->start_label.  Consolidate calls to
22141         avoid assigning result of gen_spkernel to "insn", now an
22142         rtx_insn *.
22143
22144         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
22145         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
22146         rtx to rtx_insn *.
22147         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
22148         rtx_insn **.  Strengthen locals "top", "next" from rtx to
22149         rtx_insn *.
22150         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
22151         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22152         (add_parameter_dependencies): Strengthen params "call", "head" and
22153         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
22154         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
22155         (add_dependee_for_func_arg): Likewise for param "arg" and local
22156         "insn".
22157         (ix86_dependencies_evaluation_hook): Likewise for params "head",
22158         "tail" and locals "insn", "first_arg".
22159
22160         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
22161         for params "head", "tail" and locals "insn", "next", "next_tail".
22162         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
22163         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
22164         "insn", "lowest", "highest" from rtx to rtx_insn *.
22165         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
22166         rtx_insn **.
22167         (ia64_sched_reorder2): Likewise.
22168
22169         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
22170         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
22171         from rtx * to rtx_insn **.
22172         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
22173         rtx_insn **.
22174         (mep_print_sched_insn): Strengthen param "insn" from rtx to
22175         rtx_insn *.
22176         (mep_sched_reorder): Strengthen param "ready" from rtx * to
22177         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
22178         to rtx_insn *.
22179
22180         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
22181         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
22182         to rtx_insn *.
22183         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
22184         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
22185         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
22186         rtx_insn **.
22187         (vr4130_reorder): Likewise.
22188         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
22189         rtx to rtx_insn *.
22190         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
22191         rtx_insn **.
22192         (mips_sched_reorder): Likewise.
22193         (mips_sched_reorder2): Likewise.
22194
22195         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
22196
22197         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
22198         Strengthen local "tmp" from rtx to rtx_insn *.
22199         (rs6000_sched_reorder2): Likewise.
22200
22201         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
22202         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
22203         (s390_sched_reorder): Strengthen param "ready" from rtx * to
22204         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
22205
22206         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
22207         "tmp2" from rtx to rtx_insn *.
22208         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
22209         Strengthen local "insn" from rtx to rtx_insn *.
22210         (ready_reorder): Strengthen param "ready" from rtx * to
22211         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
22212         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
22213         (sh_reorder2): Likewise.
22214
22215         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
22216         local "insn" from rtx to rtx_insn *.
22217
22218         * haifa-sched.c (note_list): Strengthen this variable from rtx to
22219         rtx_insn *.
22220         (scheduled_insns): Strengthen this variable from vec<rtx> to
22221         vec<rtx_insn *>.
22222         (set_modulo_params): Likewise for locals "i1", "i2".
22223         (record_delay_slot_pair): Likewise for params "i1", "i2".
22224         (add_delay_dependencies): Likewise for param "insn".
22225         (cond_clobbered_p): Likewise.
22226         (recompute_todo_spec): Likewise for local "prev".
22227         (last_scheduled_insn): Likewise for this variable.
22228         (nonscheduled_insns_begin): Likewise.
22229         (model_set_excess_costs): Strengthen param "insns" from rtx * to
22230         rtx_insn **.
22231         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
22232         rtx_insn *.
22233         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
22234         Strengthen local "insn" from rtx to rtx_insn *.
22235         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
22236         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
22237         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
22238         (ready_remove_first): Likewise for return type and local "t".
22239         (ready_element): Likewise for return type.
22240         (ready_remove): Likewise for return type and local "t".
22241         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
22242         (check_clobbered_conditions): Strengthen local "x" from rtx to
22243         rtx_insn *, adding a checked cast.
22244         (schedule_insn): Likewise for param "insn".
22245         (remove_notes): Likewise for params "head", "tail" and locals
22246         "next_tail", "insn", "next".
22247         (struct haifa_saved_data): Likewise for fields
22248         "last_scheduled_insn", "nonscheduled_insns_begin".
22249         (save_backtrack_point): Update for change to field "vec" of
22250         struct ready_list.
22251         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
22252         rtx_insn **.
22253         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
22254         from rtx to rtx_insn *
22255         (resolve_dependencies): Strengthen param "insn" from rtx to
22256         rtx_insn *
22257         (restore_other_notes): Likewise for return type, for param "head"
22258         and local "note_head".
22259         (undo_all_replacements): Likewise for local "insn".
22260         (first_nonscheduled_insn): Likewise for return type and local "insn".
22261         (queue_to_ready): Likewise for local "insn", adding checked casts.
22262         (early_queue_to_ready): Likewise for local "insn".
22263         (debug_ready_list_1): Strengthen local "p" from rtx * to
22264         rtx_insn **.
22265         (move_insn): Strengthen param "insn" and local "note" from rtx to
22266         rtx_insn *
22267         (insn_finishes_cycle_p): Likewise for param "insn".
22268         (max_issue): Likewise for local "insn".
22269         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
22270         to rtx_insn **.
22271         (commit_schedule): Strengthen param "prev_head" and local "insn"
22272         from rtx to rtx_insn *
22273         (prune_ready_list): Likewise for local "insn".
22274         (schedule_block): Likewise for locals "prev_head", "head", "tail",
22275         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
22276         (set_priorities): Likewise for local "prev_head".
22277         (try_ready): Likewise for param "next".
22278         (fix_tick_ready): Likewise.
22279         (change_queue_index): Likewise.
22280         (sched_extend_ready_list): Update for change to field "vec" of
22281         struct ready_list.
22282         (generate_recovery_code): Strengthen param "insn" from rtx to
22283         rtx_insn *.
22284         (begin_speculative_block): Likewise.
22285         (create_check_block_twin): Likewise for param "insn" and locals
22286         "label", "check", "twin".  Introduce local "check_pat" to avoid
22287         "check" being used as a plain rtx before being used as an insn.
22288         (fix_recovery_deps): Add a checked cast to rtx_insn * when
22289         extracting elements from ready_list.
22290         (sched_remove_insn): Strengthen param "insn" from rtx to
22291         rtx_insn *.
22292         (sched_emit_insn): Likewise for return type.
22293         (ready_remove_first_dispatch): Likewise for return type and local
22294         "insn".
22295
22296         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
22297
22298         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
22299         const rtx_insn *.
22300
22301         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
22302         from rtx to rtx_insn *.
22303         (add_dependence_list): Likewise for param "insn".  Add a checked
22304         cast.
22305         (add_dependence_list_and_free): Strengthen param "insn" from rtx
22306         to rtx_insn *.  Strengthen param "list_p" from rtx * to
22307         rtx_insn **.
22308         (chain_to_prev_insn): Strengthen param "insn" and locals
22309         "prec_nonnote", "i" from rtx to rtx_insn *.
22310         (flush_pending_lists): Likewise for param "insn".
22311         (cur_insn): Likewise for this variable.
22312         (haifa_start_insn): Add a checked cast.
22313         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
22314         (sched_analyze_reg): Likewise for param "insn".
22315         (sched_analyze_1): Likewise.
22316         (sched_analyze_2): Likewise.  Add checked casts.
22317         (sched_analyze_insn): Likewise.  Also for local "prev".
22318         (deps_analyze_insn): Likewise for param "insn".
22319         (sched_analyze): Likewise for params "head", "tail" and local "insn".
22320         (add_dependence_1): Likewise for params "insn", "elem".
22321         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
22322         (parse_add_or_inc): Likewise for param "insn".
22323         (find_inc): Likewise for local "inc_cand".
22324         (find_modifiable_mems): Likewise for params "head", "tail" and
22325         locals "insn", "next_tail".
22326
22327         * sched-ebb.c (init_ready_list): Likewise for local "insn".
22328         (begin_schedule_ready): Likewise for param "insn".
22329         (begin_move_insn): Likewise for params "insn" and "last".
22330         (ebb_print_insn): Strengthen param "insn" from const_rtx to
22331         const rtx_insn *.
22332         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
22333         (ebb_contributes_to_priority): Likewise for params "next", "insn".
22334         (ebb_add_remove_insn): Likewise for param "insn".
22335         (advance_target_bb): Likewise.
22336
22337         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
22338         "insn".
22339         (check_live): Likewise for param "insn".
22340         (init_ready_list): Likewise for local "insn".
22341         (can_schedule_ready_p): Likewise for param "insn".
22342         (begin_schedule_ready): Likewise.
22343         (new_ready): Likewise for param "next".
22344         (rgn_print_insn): Likewise for param "insn".
22345         (rgn_rank): Likewise for params "insn1", "insn2".
22346         (contributes_to_priority): Likewise for params "next", "insn".
22347         (rgn_insn_finishes_block_p): Likewise for param "insn".
22348         (add_branch_dependences): Likewise for params "head", "tail" and
22349         locals "insn", "last".
22350         (rgn_add_remove_insn): Likewise for param "insn".
22351         (advance_target_bb): Likewise.
22352
22353         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
22354         const_rtx to const rtx_insn *.
22355
22356         * sel-sched-dump.h (sel_print_insn): Likewise.
22357
22358         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
22359         (deps_init_id): Likewise.
22360
22361         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
22362         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
22363         rtx_insn **.
22364
22365 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22366
22367         * output.h (final_start_function): Strengthen param 1 from rtx to
22368         rtx_insn *.
22369
22370         * final.c (final_start_function): Likewise, renaming back from
22371         "uncast_first" to "first", and dropping the checked cast from rtx
22372         to rtx_insn *.
22373
22374 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22375
22376         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
22377         * final.c (final): Likewise.  Rename param back from
22378         "uncast_first" to "first" and eliminate the checked cast from rtx
22379         to rtx_insn *.
22380
22381 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22382
22383         * output.h (shorten_branches): Strengthen param from rtx to
22384         rtx_insn *.
22385
22386         * final.c (shorten_branches): Likewise, renaming param back from
22387         "uncast_first" to "first", and dropping the checked cast from rtx
22388         to rtx_insn *.
22389
22390         * genattr.c (gen_attr): Likewise when writing out the prototype of
22391         shorten_branches.
22392
22393 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22394
22395         * sched-int.h (struct haifa_sched_info): Strengthen fields
22396         "prev_head" and "next_tail" from rtx to rtx_insn *.
22397
22398 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22399
22400         * rtl.h (rtx_jump_table_data::get_labels): New method.
22401         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
22402         with use of the new rtx_jump_table_data::get_labels method.
22403         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
22404         to rtx_jump_table_data *.  Simplify by using get_labels method.
22405         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
22406         a dyn_cast, introducing local "table", using it to replace
22407         label-lookup logic with a get_labels method call.
22408         (patch_jump_insn): Simplify using get_labels method.
22409         * dwarf2cfi.c (create_trace_edges): Likewise.
22410         * rtlanal.c (label_is_jump_target_p): Likewise.
22411
22412 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22413
22414         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
22415         to rtx_insn *.
22416
22417         * emit-rtl.c (unshare_all_rtl_1): Likewise.
22418         (unshare_all_rtl_again): Likewise, also for local "p".
22419
22420 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22421
22422         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
22423         to rtx_insn *.
22424         * cfgrtl.c (delete_insn_and_edges): Likewise.
22425
22426 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22427
22428         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
22429         from rtx to rtx_insn *.
22430
22431         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
22432
22433 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22434
22435         * function.c (thread_prologue_and_epilogue_insns): Likewise for
22436         locals "returnjump", "epilogue_end", "insn", "next".
22437
22438         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
22439         "returnjump" from rtx * to rtx_insn **.
22440         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
22441
22442 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22443
22444         * basic-block.h (struct edge_def). Strengthen "r" within
22445         union edge_def_insns from rtx to rtx_insn *.
22446
22447         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
22448         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
22449         rtx_insn *.
22450         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
22451         from rtx to rtx_insn *.
22452         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
22453         rtx_insn *.
22454         * postreload-gcse.c (reg_killed_on_edge): Likewise.
22455         (reg_used_on_edge): Likewise.
22456         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
22457         (gt_pch_nx): New overload for rtx_insn *&.
22458         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
22459         from rtx to rtx_insn *.
22460
22461 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22462
22463         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
22464         from rtx to rtx_insn *.
22465         (BB_FOOTER): Replace function with access macro.
22466         (SET_BB_FOOTER): Delete.
22467
22468         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
22469         with BB_FOOTER.
22470         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
22471         (emit_barrier_after_bb): Likewise.
22472         (record_effective_endpoints): Likewise.
22473         (relink_block_chain): Likewise.
22474         (fixup_fallthru_exit_predecessor): Likewise.
22475         (cfg_layout_duplicate_bb): Likewise.
22476         (cfg_layout_split_block): Likewise.
22477         (cfg_layout_delete_block): Likewise.
22478         (cfg_layout_merge_blocks): Likewise.
22479         (BB_FOOTER): Delete function.
22480         (SET_BB_FOOTER): Delete function.
22481         * combine.c (update_cfg_for_uncondjump): Replace uses of
22482         SET_BB_FOOTER with BB_FOOTER.
22483
22484 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22485
22486         * except.h (struct eh_landing_pad_d): Strengthen field
22487         "landing_pad" from rtx to rtx_code_label *.
22488
22489         * except.c (sjlj_emit_dispatch_table): Likewise for param
22490         "dispatch_label"
22491         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
22492
22493 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22494
22495         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
22496         first param from rtx to rtx_insn *.
22497         * config/xtensa/xtensa.c (struct machine_function): Likewise for
22498         field "set_frame_ptr_insn".
22499         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
22500         "csend" from rtx to rtx_code_label *.
22501         (xtensa_expand_atomic): Likewise for local "csloop".
22502         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
22503         rtx_insn *.
22504         (xtensa_call_tls_desc): Likewise for return type and locals
22505         "call_insn", "insns".
22506         (xtensa_legitimize_tls_address): Likewise for local "insns".
22507         (xtensa_expand_prologue): Likewise for locals "insn", "first".
22508
22509 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22510
22511         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
22512         first param from rtx to rtx_insn *.
22513         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
22514         "insn".
22515
22516 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22517
22518         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
22519         Strengthen param 1 from rtx to rtx_insn *.
22520         (tilepro_output_cbranch): Likewise.
22521         (tilepro_adjust_insn_length): Likewise.
22522         (tilepro_final_prescan_insn): Likewise for sole param.
22523
22524         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
22525         Likewise for local "last".
22526         (cbranch_predicted_p): Likewise for param "insn".
22527         (tilepro_output_simple_cbranch_with_opcode): Likewise.
22528         (tilepro_output_cbranch_with_opcode): Likewise.
22529         (tilepro_output_cbranch): Likewise.
22530         (frame_emit_load): Likewise for return type and locals "seq",
22531         "insn".
22532         (emit_sp_adjust): Likewise for return type and local "insn".
22533         (tilepro_expand_epilogue): Likewise for locals "last_insn",
22534         "insn".
22535         (tilepro_adjust_insn_length): Likewise for param "insn".
22536         (next_insn_to_bundle): Likewise for return type and params
22537         "r", "end".
22538         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
22539         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
22540         local "new_insns".
22541         (match_addli_pcrel): Likewise for param "insn".
22542         (replace_addli_pcrel): Likewise.
22543         (match_auli_pcrel): Likewise.
22544         (replace_auli_pcrel): Likewise.
22545         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
22546         "next_insn".
22547         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
22548         "queue", "next_queue", "prev".
22549         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
22550         (tilepro_final_prescan_insn): Likewise for param "insn".
22551
22552 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22553
22554         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
22555         Strengthen param 1 from rtx to rtx_insn *.
22556         (tilegx_output_cbranch): Likewise.
22557         (tilegx_adjust_insn_length): Likewise.
22558         (tilegx_final_prescan_insn): Likewise for sole param.
22559
22560         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
22561         or local "last".
22562         (cbranch_predicted_p): Likewise for param "insn".
22563         (tilegx_output_simple_cbranch_with_opcode): Likewise.
22564         (tilegx_output_cbranch_with_opcode): Likewise.
22565         (tilegx_output_cbranch): Likewise.
22566         (frame_emit_load): Likewise for return type.
22567         (set_frame_related_p): Likewise for locals "seq", "insn".
22568         (emit_sp_adjust): Likewise for return type, and for local "insn".
22569         Introduce local "pat" for use in place of "insn" where the latter
22570         isn't an instruction.
22571         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
22572         from rtx to rtx_insn *.
22573         (tilegx_adjust_insn_length): Likewise for param "insn".
22574         (next_insn_to_bundle): Likewise for return type and params "r" and
22575         "end".
22576         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
22577         "end".
22578         (replace_insns): Likewise for params "old_insn", "new_insns".
22579         (replace_mov_pcrel_step1): Likewise for param "insn" and local
22580         "new_insns".
22581         (replace_mov_pcrel_step2): Likewise.
22582         (replace_mov_pcrel_step3): Likewise.
22583         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
22584         "next_insn".
22585         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
22586         "queue", "next_queue", "prev".
22587         (tilegx_output_mi_thunk): Likewise for local "insn".
22588         (tilegx_final_prescan_insn): Likewise for param "insn".
22589
22590 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22591
22592         * config/spu/spu.c (frame_emit_store): Strengthen return type from
22593         rtx to rtx_insn *.
22594         (frame_emit_load): Likewise.
22595         (frame_emit_add_imm): Likewise, also for local "insn".
22596         (spu_expand_prologue): Likewise for local "insn".
22597         (struct spu_bb_info): Likewise for field "prop_jump".
22598         (emit_nop_for_insn): Likewise for param "insn" and local
22599         "new_insn".
22600         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
22601         "hbr_insn".
22602         (spu_emit_branch_hint): Likewise for params "before", "branch" and
22603         locals "hint", "insn".
22604         (get_branch_target): Likewise for param "branch".
22605         (insn_clobbers_hbr): Likewise for param "insn".
22606         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
22607         locals "insn", "before_4", "before_16".
22608         (insert_hbrp): Likewise for local "insn".
22609         (spu_machine_dependent_reorg): Likewise for locals "branch",
22610         "insn", "next", "bbend".
22611         (uses_ls_unit): Likewise for param "insn".
22612         (get_pipe): Likewise.
22613         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
22614         introducing a checked cast.
22615         (spu_sched_adjust_cost): Likewise for params "insn" and
22616         "dep_insn".
22617         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
22618         (spu_sms_res_mii): Likewise.
22619
22620 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22621
22622         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
22623         from rtx to rtx_insn *.
22624         (output_cbranch): Likewise for param 6.
22625         (output_return): Likewise for param 1.
22626         (output_sibcall): Likewise.
22627         (output_v8plus_shift): Likewise.
22628         (output_v8plus_mult): Likewise.
22629         (output_v9branch): Likewise for param 7.
22630         (output_cbcond):  Likewise for param 3.
22631
22632         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
22633         for local "insn".
22634         (sparc_legitimize_pic_address): Likewise.
22635         (sparc_emit_call_insn): Likewise.
22636         (emit_save_or_restore_regs): Likewise.
22637         (emit_window_save): Likewise for return type and local "insn".
22638         (sparc_expand_prologue): Likewise for local "insn".
22639         (sparc_flat_expand_prologue): Likewise.
22640         (output_return): Likewise for param "insn".
22641         (output_sibcall): Likewise for param "insn" and local "delay".
22642         (output_ubranch): Likewise for param "insn".
22643         (output_cbranch): Likewise.
22644         (output_cbcond): Likewise.
22645         (output_v9branch): Likewise.
22646         (output_v8plus_shift): Likewise.
22647         (sparc_output_mi_thunk): Likewise for local "insn".
22648         (get_some_local_dynamic_name): Likewise.
22649         (output_v8plus_mult): Likewise for param "insn".
22650
22651 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22652
22653         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
22654         from rtx to rtx_insn *.
22655         (output_branchy_insn): Likewise for param 3.
22656         (output_far_jump): Likewise for param 1.
22657         (final_prescan_insn): Likewise.
22658         (sh_insn_length_adjustment): Likewise for sole param.
22659
22660         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
22661         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
22662         rtx_code_label *.
22663         (sh_emit_compare_and_set): Likewise for local "lab".
22664         (output_far_jump): Strengthen param "insn" and local "prev" from
22665         rtx to rtx_insn *.
22666         (output_branchy_insn): Likewise for param "insn" and local
22667         "next_insn".
22668         (output_ieee_ccmpeq): Likewise for param "insn".
22669         (struct label_ref_list_d): Strengthen field "label" from rtx to
22670         rtx_code_label *.
22671         (pool_node): Likewise.
22672         (pool_window_label): Likewise for this global.
22673         (add_constant): Likewise for return type and locals "lab", "new_rtx".
22674         (dump_table): Strengthen params "start", "barrier" and local
22675         "scan" from rtx to rtx_insn *.
22676         (broken_move): Likewise for param "insn".
22677         (untangle_mova): Likewise for params "first_mova" and "new_mova".
22678         Strengthen param "first_mova" from rtx * to rtx_insn **.
22679         (mova_p): Likewise for param "insn".
22680         (fixup_mova): Likewise for param "mova".
22681         (find_barrier): Likewise for return type, params "mova" and
22682         "from", and locals "barrier_before_mova", "found_barrier",
22683         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
22684         "label" from rtx to rtx_code_label *.
22685         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
22686         rtx to rtx_insn *.
22687         (sh_reorg): Likewise for locals "link", "scan", "barrier".
22688         (split_branches): Likewise for param "first" and local "insn".
22689         (final_prescan_insn): Likewise for param "insn".
22690         (sequence_insn_p): Likewise for locals "prev", "next".
22691         (sh_insn_length_adjustment): Likewise for param "insn".
22692         (sh_can_redirect_branch): Likewise for local "insn".
22693         (find_r0_life_regions): Likewise for locals "end", "insn".
22694         (sh_output_mi_thunk): Likewise for local "insns".
22695
22696 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22697
22698         * config/score/score.c (score_output_mi_thunk): Strengthen local
22699         "insn" from rtx to rtx_insn *.
22700         (score_prologue): Likewise.
22701
22702 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22703
22704         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
22705         1 from rtx to rtx_insn *.
22706         (s390_emit_jump): Likewise for return type.
22707         (s390_emit_call): Likewise.
22708         (s390_load_got): Likewise.
22709
22710         * config/s390/s390.c (last_scheduled_insn): Likewise for this
22711         variable.
22712         (s390_match_ccmode): Likewise for param "insn".
22713         (s390_emit_jump): Likewise for return type.
22714         (s390_split_branches): Likewise for local "label".
22715         (struct constant): Strengthen field "label" from rtx to
22716         rtx_code_label *.
22717         (struct constant_pool): Likewise for field "label".  Strengthen
22718         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
22719         rtx_insn *.
22720         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
22721         insns.
22722         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
22723         (s390_end_pool): Likewise.
22724         (s390_dump_pool): Likewise for local "insn".
22725         (s390_mainpool_start): Likewise.
22726         (s390_chunkify_start): Likewise.
22727         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
22728         with insns.  Strengthen locals "label", "jump", "barrier", "next",
22729         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
22730         (s390_chunkify_finish): Strengthen local "insn" from rtx to
22731         rtx_insn *.
22732         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
22733         "jump", "label", "next_insn".
22734         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
22735         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
22736         "tbegin_insn".
22737         (s390_load_got): Likewise for return type and local "insns".
22738         (s390_save_gprs_to_fprs): Likewise for local "insn".
22739         (s390_restore_gprs_from_fprs): Likewise.
22740         (pass_s390_early_mach::execute): Likewise.
22741         (s390_emit_prologue): Likewise for local "insns".
22742         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
22743         rtx_code_label *.
22744         (s390_emit_call): Strengthen return type and local "insn" from
22745         rtx to rtx_insn *.
22746         (s390_emit_tpf_eh_return): Likewise for local "insn".
22747         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
22748         "next_insn", introducing locals "s_pat", "rpat" to allow this.
22749         (s390_fix_long_loop_prediction): Likewise for param "insn" and
22750         local "cur_insn".
22751         (s390_non_addr_reg_read_p): Likewise for param "insn".
22752         (find_cond_jump): Likewise for return type and param "insn".
22753         (s390_swap_cmp): Likewise for param "insn".
22754         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
22755         "prev_insn", "next_insn".
22756         (s390_reorg): Likewise for locals "insn", "target".
22757         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
22758         (s390_sched_variable_issue): For now, rename param "insn" to
22759         "uncast_insn", introducing a checked cast.
22760         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
22761         insn.
22762         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
22763         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
22764
22765 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22766
22767         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
22768         param from rtx to rtx_insn *.
22769         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
22770
22771 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22772
22773         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
22774         4 from rtx to rtx_insn *.
22775         (rs6000_final_prescan_insn): Likewise for first param.
22776         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
22777         local "insn".
22778         (rs6000_get_some_local_dynamic_name): Likewise.
22779         (output_cbranch): Likewise for param "insn".
22780         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
22781         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
22782         (rs6000_emit_allocate_stack): Likewise for local "insn".
22783         (load_cr_save): Likewise.
22784         (restore_saved_cr): Likewise.
22785         (restore_saved_lr): Likewise.
22786         (emit_cfa_restores): Likewise.
22787         (rs6000_output_function_epilogue): Likewise for locals "insn" and
22788         "deleted_debug_label".
22789         (rs6000_output_mi_thunk): Likewise for local "insn".
22790         (rs6000_final_prescan_insn): Likewise for param "insn".
22791
22792 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22793
22794         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
22795         Strengthen param "insn" from rtx to rtx_insn *.
22796         * config/picochip/picochip.c (picochip_current_prescan_insn):
22797         Likewise for this variable.
22798         (picochip_final_prescan_insn): Likewise for param "insn".
22799
22800 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22801
22802         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
22803         from rtx to rtx_insn *.
22804         (pa_output_indirect_call): Likewise.
22805         (pa_adjust_insn_length): Likewise.
22806         (pa_attr_length_millicode_call): Likewise.
22807         (pa_attr_length_call): Likewise.
22808         (pa_attr_length_indirect_call): Likewise.
22809
22810         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
22811         "insn".
22812         (pa_attr_length_millicode_call): Likewise.
22813         (pa_attr_length_call): Likewise.
22814         (pa_output_call): Likewise.
22815         (pa_attr_length_indirect_call): Likewise.
22816         (pa_output_indirect_call): Likewise.
22817
22818 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22819
22820         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
22821         Strengthen first param from rtx to rtx_insn *.
22822         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
22823         param "insn".
22824
22825 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22826
22827         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
22828         type from rtx to rtx_insn *.
22829         (mips_expand_call): Likewise.
22830         (mips_adjust_insn_length): Likewise for first param.
22831         (mips_output_conditional_branch): Likewise.
22832         (mips_output_order_conditional_branch): Likewise.
22833         (mips_final_prescan_insn): Likewise.
22834
22835         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
22836         rtx_insn * for the SEQUENCE case.
22837         (SEQ_END): Likewise.
22838         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
22839         (mips_emit_call_insn): Likewise, also for local "insn".
22840         (mips16_gp_pseudo_reg): Likewise for local "scan".
22841         (mips16_build_call_stub): Likewise for return type and for local
22842         "insn".  Introduce a new local "pattern" so that "insn" can indeed
22843         be an insn.
22844         (mips_expand_call): Strengthen return type and local "insn" from
22845         rtx to rtx_insn *.
22846         (mips_block_move_loop): Strengthen local "label" from rtx to
22847         rtx_code_label *.
22848         (mips_expand_synci_loop): Likewise for locals "label",
22849         "end_label".
22850         (mips_set_frame_expr): Strengthen local "insn" from rtx to
22851         rtx_insn *.
22852         (mips16e_collect_argument_saves): Likewise for locals "insn",
22853         "next".
22854         (mips_find_gp_ref): Likewise for param of callback for "pred"
22855         param, and for local "insn".
22856         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
22857         (mips_insn_has_flexible_gp_ref_p): Likewise.
22858         (mips_epilogue_emit_cfa_restores): Likewise for return type and
22859         local "insn".
22860         (mips_epilogue_set_cfa): Likewise for local "insn".
22861         (mips_expand_epilogue): Likewise.
22862         (mips_adjust_insn_length): Likewise for param "insn".
22863         (mips_output_conditional_branch): Likewise.
22864         (mips_output_order_conditional_branch): Likewise.
22865         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
22866         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
22867         "falu2_turn_enabled_insn".
22868         (mips_builtin_branch_and_move): Strengthen locals "true_label",
22869         "done_label" from rtx to rtx_code_label *.
22870         (struct mips16_constant): Likewise for field "label".
22871         (mips16_add_constant): Likewise for return type.
22872         (mips16_emit_constants_1): Strengthen return type and param "insn"
22873         from rtx to rtx_insn *.
22874         (mips16_emit_constants): Likewise for param "insn".
22875         (mips16_insn_length): Likewise.
22876         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
22877         to rtx_code_label *.
22878         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
22879         from rtx to rtx_insn *.
22880         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
22881         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
22882         (r10k_simplify_address): Strengthen param "insn" and local
22883         "def_insn" from rtx to rtx_insn *.
22884         (r10k_safe_address_p): Strengthen param "insn" from rtx to
22885         rtx_insn *.
22886         (r10k_needs_protection_p_1): Update target type of cast of data
22887         from to rtx to rtx_insn *.
22888         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
22889         rtx * to rtx_insn **.
22890         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
22891         rtx_insn *.
22892         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
22893         (mips_call_expr_from_insn): Likewise for param "insn".
22894         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
22895         (mips_find_pic_call_symbol): Likewise for param "insn".
22896         (mips_annotate_pic_calls): Likewise for local "insn".
22897         (mips_sim_insn): Likewise for this variable.
22898         (struct mips_sim): Likewise for field "insn" within elements of
22899         last_set array.
22900         (mips_sim_wait_reg): Likewise for param "insn".
22901         (mips_sim_wait_regs): Likewise.
22902         (mips_sim_wait_units): Likewise.
22903         (mips_sim_wait_insn): Likewise.
22904         (mips_sim_issue_insn): Likewise.
22905         (mips_sim_finish_insn): Likewise.
22906         (mips_seq_time): Likewise for param "seq" and local "insn".
22907         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
22908         locals "first", "second".
22909         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
22910         "last", "last2", "next".
22911         (mips_avoid_hazard): Likewise for params "after", "insn".
22912         (mips_reorg_process_insns): Likewise for locals "insn",
22913         "last_insn", "subinsn", "next_insn".
22914         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
22915         (mips16_split_long_branches): Likewise for locals "insn" "jump",
22916         "jump_sequence".
22917         (mips_output_mi_thunk): Likewise for local "insn".
22918         (mips_final_prescan_insn): Likewise for param "insn".
22919
22920 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22921
22922         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
22923         Strengthen return type and local "insns" from rtx to rtx_insn *.
22924         (microblaze_legitimize_tls_address): Likewise for local "insns".
22925         (microblaze_block_move_loop): Strengthen local "label" from rtx
22926         to rtx_code_label *.
22927         (microblaze_expand_prologue): Strengthen two locals named "insn"
22928         from rtx to rtx_insn *.
22929         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
22930         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
22931         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
22932         to rtx_code_label *.
22933
22934 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22935
22936         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
22937         param from rtx to rtx_insn *.
22938         (mep_reuse_lo): Likewise for third param.
22939         (mep_use_post_modify_p): Likewise for first param.
22940         (mep_core_address_length): Likewise.
22941         (mep_cop_address_length): Likewise.
22942         (mep_final_prescan_insn): Likewise.
22943         (mep_store_data_bypass_p): Likewise for both params.
22944         (mep_mul_hilo_bypass_p): Likewise.
22945         (mep_ipipe_ldc_p): Likewise for param.
22946
22947         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
22948         (mep_rewrite_mult): Likewise.
22949         (mep_rewrite_mulsi3): Likewise.
22950         (mep_rewrite_maddsi3): Likewise.
22951         (mep_reuse_lo_p_1): Likewise.
22952         (mep_reuse_lo_p): Likewise.
22953         (mep_frame_expr): Likewise.
22954         (mep_make_parallel): Likewise for both params.
22955         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
22956         local "insn".
22957         (mep_use_post_modify_p): Likewise for param "insn".
22958         (mep_core_address_length): Likewise.
22959         (mep_cop_address_length): Likewise.
22960         (mep_reg_set_in_function): Likewise for local "insn".
22961         (mep_asm_without_operands_p): Likewise.
22962         (F): Likewise for return type and param "x".
22963         (add_constant): Likewise for local "insn".
22964         (maybe_dead_move): Likewise for return type and local "insn".
22965         (mep_expand_prologue): Likewise for local "insn".
22966         (mep_final_prescan_insn): Likewise for param "insn".
22967         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
22968         "next", "follow", "x".
22969         (mep_insert_repeat_label_last): Likewise for return type, param
22970         "last_insn", and locals "next", "prev".  Strengthen param "label"
22971         from rtx to rtx_code_label *.
22972         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
22973         rtx_insn *.
22974         (struct mep_doloop_end): Likewise for fields "insn" and
22975         "fallthrough".
22976         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
22977         Strengthen local "repeat_label" from rtx to rtx_code_label *.
22978         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
22979         rtx_insn *.
22980         (mep_invert_branch): Likewise for params "insn" and "after".
22981         (mep_reorg_erepeat): Likewise for param "insns" and locals
22982         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
22983         "l" from rtx to rtx_code_label *.
22984         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
22985         from rtx to rtx_insn *.
22986         (mep_reorg_addcombine): Likewise for param "insns" and locals
22987         "i", "n".
22988         (add_sp_insn_p): Likewise for param "insn".
22989         (mep_reorg_noframe): Likewise for param "insns" and locals
22990         "start_frame_insn", "end_frame_insn", "next".
22991         (mep_reorg): Likewise for local "insns".
22992         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
22993         cast.
22994         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
22995         (mep_mul_hilo_bypass_p): Likewise.
22996         (mep_ipipe_ldc_p): Likewise for param "insn".
22997         (mep_make_bundle): Likewise for return type, param "cop" and local
22998         "insn", splitting out the latter into a new local "seq" for when it
22999         is a SEQUENCE rather than an insn.
23000         (core_insn_p): Likewise for param "insn".
23001         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
23002         "last", "first", "note", "prev", "core_insn".
23003
23004 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23005
23006         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
23007         rtx to rtx_insn *.
23008         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
23009         (m68k_final_prescan_insn): Likewise for first param.
23010
23011         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
23012         (m68k_set_frame_related): Likewise for param "insn".
23013         (output_btst): Likewise for param "insn".
23014         (m68k_final_prescan_insn): Likewise.
23015         (m68k_move_to_reg): Likewise for local "insn".
23016         (m68k_call_tls_get_addr): Likewise for local "insns".
23017         (m68k_call_m68k_read_tp): Likewise.
23018         (strict_low_part_peephole_ok): Likewise for param "first_insn".
23019         (m68k_output_mi_thunk): Likewise for local "insn".
23020
23021 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23022
23023         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
23024         first param from rtx to rtx_insn *.
23025         (iq2000_adjust_insn_length): Likewise.
23026         (iq2000_output_conditional_branch): Likewise.
23027         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
23028         "insn" and local "nop_insn".
23029         (iq2000_annotate_frame_insn): Likewise for param "insn".
23030         (iq2000_expand_prologue): Likewise for both locals "insn".
23031         (iq2000_adjust_insn_length): Likewise for param "insn".
23032         (iq2000_output_conditional_branch): Likewise.
23033
23034 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23035
23036         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
23037         "insns" from rtx to rtx_insn *.
23038         (ia64_emit_cond_move): Likewise for locals "insn", "first".
23039         (struct spill_fill_data): Likewise for field "init_after" and for
23040         elements of array field "prev_insn".
23041         (spill_restore_mem): Likewise for locals "insn", "first".
23042         (do_spill): Likewise for local "insn".
23043         (do_restore): Likewise.
23044         (ia64_expand_prologue): Likewise.
23045         (ia64_expand_epilogue): Likewise.
23046         (emit_insn_group_barriers): Likewise for locals "insn",
23047         "last_label".
23048         (emit_all_insn_group_barriers): Likewise for locals "insn",
23049         "last".
23050         (dfa_stop_insn): Likewise for this global.
23051         (dfa_pre_cycle_insn): Likewise.
23052         (ia64_nop): Likewise.
23053         (final_emit_insn_group_barriers): Likewise for locals "insn",
23054         "last".
23055         (emit_predicate_relation_info): Likewise for locals "head", "n",
23056         "insn", "b", "a".
23057         (ia64_reorg): Likewise for local "insn".
23058         (ia64_output_mi_thunk): Likewise.
23059         (expand_vec_perm_interleave_2): Likewise for local "seq".
23060
23061 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23062
23063         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
23064         param 1 "insn" from rtx to rtx_insn *.
23065         (ix86_use_lea_for_mov): Likewise.
23066         (ix86_avoid_lea_for_addr): Likewise.
23067         (ix86_split_lea_for_addr): Likewise.
23068         (ix86_lea_for_add_ok): Likewise.
23069         (ix86_output_call_insn): Likewise.
23070
23071         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
23072         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
23073         (ix86_output_function_epilogue): Likewise for locals "insn",
23074         "deleted_debug_label".
23075         (legitimize_tls_address): Likewise for local "insn".
23076         (get_some_local_dynamic_name): Likewise.
23077         (increase_distance): Likewise for params "prev", "next".
23078         (distance_non_agu_define_in_bb): Likewise for params "insn",
23079         "start" and locals "prev", "next".
23080         (distance_non_agu_define): Likewise for param "insn".
23081         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
23082         locals "next", "prev".
23083         (distance_agu_use): Likewise for param "insn".
23084         (ix86_lea_outperforms): Likewise.
23085         (ix86_ok_to_clobber_flags): Likewise.
23086         (ix86_avoid_lea_for_add): Likewise.
23087         (ix86_use_lea_for_mov): Likewise.
23088         (ix86_avoid_lea_for_addr): Likewise.
23089         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
23090         (ix86_split_lea_for_addr): Likewise for param "insn".
23091         (ix86_lea_for_add_ok): Likewise for param "insn".
23092         (ix86_expand_carry_flag_compare): Likewise for local
23093         "compare_seq".
23094         (ix86_expand_int_movcc): Likewise.
23095         (ix86_output_call_insn): Likewise for param "insn".
23096         (ix86_output_call_insn): Likewise for local "i".
23097         (x86_output_mi_thunk): Introduce local "insn", using it in place
23098         of "tmp" when dealing with insns.
23099         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
23100         "start".
23101         (ix86_pad_returns): Likewise for locals "ret", "prev".
23102         (ix86_count_insn_bb): Likewise for local "insn".
23103         (ix86_pad_short_function): Likewise for locals "ret", "insn".
23104         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
23105         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
23106         (expand_vec_perm_interleave2): Likewise for local "seq".
23107         (expand_vec_perm_vperm2f128_vblend): Likewise.
23108         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
23109         call to for_each_rtx with for_each_rtx_in_insn.
23110
23111 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23112
23113         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
23114         "label" from rtx to rtx_code_label *.
23115         (ix86_expand_prologue): Likewise.
23116         (ix86_expand_split_stack_prologue): Likewise for locals "label",
23117         "varargs_label".
23118         (ix86_split_idivmod): Likewise for locals "end_label" and
23119         "qimode_label".
23120         (ix86_expand_branch): Likewise for local "label2".
23121         (ix86_expand_aligntest): Likewise for return type and local "label".
23122         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
23123         "top_label".
23124         (expand_movmem_epilogue): Likewise for the various locals named
23125         "label".
23126         (expand_setmem_epilogue): Likewise.
23127         (expand_small_movmem_or_setmem): Likewise for local "label".
23128         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23129         Strengthen param "done_label" from rtx * to rtx_code_label **.
23130         Strengthen locals "loop_label" and "label" from rtx to
23131         rtx_code_label *.
23132         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23133         Likewise for locals "loop_label", "label".
23134         (ix86_expand_set_or_movmem): Likewise for locals "label",
23135         "jump_around_label", "hot_label".
23136         (ix86_expand_strlensi_unroll_1): Likewise for locals
23137         "align_2_label", align_3_label", "align_4_label", "end_0_label",
23138         "end_2_label".
23139         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
23140         (void ix86_emit_i387_log1p): Likewise for locals "label1",
23141         "label2", "jump_label".
23142         (ix86_expand_sse_compare_and_jump): Likewise for return type and
23143         local "label".
23144         (ix86_expand_lfloorceil): Likewise for local "label".
23145         (ix86_expand_rint): Likewise.
23146         (ix86_expand_floorceildf_32): Likewise.
23147         (ix86_expand_floorceil): Likewise.
23148         (ix86_expand_rounddf_32): Likewise.
23149         (ix86_expand_trunc): Likewise.
23150         (ix86_expand_truncdf_32): Likewise.
23151         (ix86_expand_round): Likewise.
23152
23153 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23154
23155         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
23156         first param from rtx to rtx_insn *.
23157         (h8300_insn_length_from_table): Likewise.
23158         * config/h8300/h8300.c (F): Likewise for return type and param
23159         "x".
23160         (Fpa): Add a checked cast to rtx_insn *.
23161         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
23162         rtx_insn *.
23163         (final_prescan_insn): Likewise for param "insn".
23164         (h8300_binary_length): Likewise.
23165         (h8300_insn_length_from_table): Likewise.
23166
23167 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23168
23169         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
23170         Strengthen first param "insn" from rtx to rtx_insn *.
23171
23172         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
23173         Likewise.
23174         (frame_insn): Likewise for return type.  Introduce local "insn"
23175         for use in place of local "x" for use as an rtx_insn *.
23176         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
23177         (epiphany_expand_prologue): Likewise for local "insn".
23178         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
23179         * config/epiphany/resolve-sw-modes.c
23180         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
23181         "seq".
23182
23183 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23184
23185         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
23186         param from rtx to rtx_insn *.
23187         (c6x_final_prescan_insn): Likewise for first param.
23188
23189         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
23190         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
23191         (c6x_expand_compare): Strengthen local "insns" from rtx to
23192         rtx_insn *.
23193         (c6x_get_unit_specifier): Likewise for param "insn".
23194         (c6x_print_unit_specifier_field): Likewise.
23195         (c6x_final_prescan_insn): Likewise.
23196         (emit_add_sp_const): Likewise for local "insn".
23197         (c6x_expand_prologue): Likewise.
23198
23199 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23200
23201         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
23202         param 1 from rtx to rtx_insn *.
23203         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
23204         the various locals named "insn".
23205         (expand_epilogue_reg_restore): Likewise.
23206         (frame_related_constant_load): Likewise.
23207         (add_to_reg): Likewise.
23208         (emit_link_insn): Likewise.
23209         (do_link): Likewise.
23210         (expand_interrupt_handler_prologue): Likewise.
23211         (branch_dest): Likewise for param "branch".
23212         (asm_conditional_branch): Likewise for param "insn".
23213         (gen_one_bundle): Likewise for elements of param "slot" and local
23214         "t".
23215         (bfin_gen_bundles): Likewise for locals "insn", "next" and
23216         elements of local "slot".
23217         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23218         "queue", "next_queue", "prev".
23219         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
23220         (add_sched_insns_for_speculation): Likewise for local "insn".
23221
23222 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23223
23224         * config/avr/avr-protos.h (output_movqi): Strengthen first param
23225         from rtx to rtx_insn *.
23226         (output_movhi): Likewise.
23227         (output_movsisf): Likewise.
23228         (avr_out_tstsi): Likewise.
23229         (avr_out_tsthi): Likewise.
23230         (avr_out_tstpsi): Likewise.
23231         (avr_out_compare): Likewise.
23232         (avr_out_compare64): Likewise.
23233         (avr_out_movpsi): Likewise.
23234         (ashlqi3_out): Likewise.
23235         (ashlhi3_out): Likewise.
23236         (ashlsi3_out): Likewise.
23237         (ashrqi3_out): Likewise.
23238         (ashrhi3_out): Likewise.
23239         (ashrsi3_out): Likewise.
23240         (lshrqi3_out): Likewise.
23241         (lshrhi3_out): Likewise.
23242         (lshrsi3_out): Likewise.
23243         (avr_out_ashlpsi3): Likewise.
23244         (avr_out_ashrpsi3): Likewise.
23245         (avr_out_lshrpsi3): Likewise.
23246         (avr_out_fract): Likewise.
23247         (avr_out_sbxx_branch): Likewise.
23248         (avr_out_round): Likewise.
23249         (avr_out_xload): Likewise.
23250         (avr_out_movmem): Likewise.
23251         (adjust_insn_length): Likewise.
23252         (avr_out_lpm): Likewise.
23253         (reg_unused_after): Likewise.
23254         (_reg_unused_after): Likewise.
23255         (avr_jump_mode): Likewise for second param.
23256         (jump_over_one_insn): Likewise for first param.
23257         (avr_final_prescan_insn): Likewise.
23258         (out_shift_with_cnt): Likewise for second param.
23259
23260         * config/avr/avr.c (get_sequence_length): Likewise for param
23261         "insns" and local "insn".
23262         (emit_push_byte): Likewise for local "insn".
23263         (emit_push_sfr): Likewise.
23264         (avr_prologue_setup_frame): Likewise for locals "insn",
23265         "fp_plus_insns", "sp_plus_insns".
23266         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
23267         "sp_plus_insns".
23268         (avr_jump_mode): Likewise for param "insn".
23269         (avr_final_prescan_insn): Likewise.
23270         (avr_find_unused_d_reg): Likewise.
23271         (avr_out_lpm_no_lpmx): Likewise.
23272         (avr_out_lpm): Likewise.
23273         (avr_out_xload): Likewise.
23274         (output_movqi): Likewise.
23275         (output_movhi): Likewise.
23276         (out_movqi_r_mr): Likewise.
23277         (out_movhi_r_mr): Likewise.
23278         (out_movsi_r_mr): Likewise.
23279         (out_movsi_mr_r): Likewise.
23280         (output_movsisf): Likewise.
23281         (avr_out_load_psi): Likewise.
23282         (avr_out_store_psi): Likewise.
23283         (avr_out_movpsi): Likewise.
23284         (out_movqi_mr_r): Likewise.
23285         (avr_out_movhi_mr_r_xmega): Likewise.
23286         (out_movhi_mr_r): Likewise.
23287         (compare_condition): Likewise for param "insn" and local "next".
23288         (compare_sign_p): Likewise for param "insn".
23289         (compare_diff_p): Likewise.
23290         (compare_eq_p): Likewise.
23291         (avr_out_compare): Likewise.
23292         (avr_out_compare64): Likewise.
23293         (avr_out_tsthi): Likewise.
23294         (avr_out_tstpsi): Likewise.
23295         (avr_out_tstsi): Likewise.
23296         (out_shift_with_cnt): Likewise.
23297         (ashlqi3_out): Likewise.
23298         (ashlhi3_out): Likewise.
23299         (avr_out_ashlpsi3): Likewise.
23300         (ashlsi3_out): Likewise.
23301         (ashrqi3_out): Likewise.
23302         (ashrhi3_out): Likewise.
23303         (avr_out_ashrpsi3): Likewise.
23304         (ashrsi3_out): Likewise.
23305         (lshrqi3_out): Likewise.
23306         (lshrhi3_out): Likewise.
23307         (avr_out_lshrpsi3): Likewise.
23308         (lshrsi3_out): Likewise.
23309         (avr_out_fract): Likewise.
23310         (avr_out_round): Likewise.
23311         (avr_adjust_insn_length): Likewise.
23312         (reg_unused_after): Likewise.
23313         (_reg_unused_after): Likewise.
23314         (avr_compare_pattern): Likewise.
23315         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
23316         and locals "branch1", "branch2", "insn2", "jump".
23317         (avr_reorg): Likewise for local "insn".
23318         (avr_2word_insn_p): Likewise for param "insn".
23319         (jump_over_one_insn_p): Likewise.
23320         (avr_out_sbxx_branch): Likewise.
23321         (avr_out_movmem): Likewise.
23322
23323 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23324
23325         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
23326         param from rtx to rtx_insn *.
23327         (thumb1_final_prescan_insn): Likewise.
23328         (thumb2_final_prescan_insn): Likewise.
23329
23330         * config/arm/arm.c (emit_set_insn): Strengthen return type from
23331         rtx to rtx_insn *.
23332         (struct minipool_node): Likewise for field "insn".
23333         (dump_minipool): Likewise for param "scan".
23334         (create_fix_barrier): Likewise for local "from".  Strengthen local
23335         "label" from rtx to rtx_code_label *.
23336         (push_minipool_barrier): Strengthen param "insn" from rtx to
23337         rtx_insn *.
23338         (push_minipool_fix): Likewise.
23339         (note_invalid_constants): Likewise.
23340         (thumb2_reorg): Likewise for local "insn".
23341         (arm_reorg): Likewise.
23342         (thumb2_final_prescan_insn): Likewise for param
23343         "insn" and local "first_insn".
23344         (arm_final_prescan_insn): Likewise for param "insn" and locals
23345         "start_insn", "this_insn".
23346         (arm_debugger_arg_offset): Likewise for param "insn".
23347         (thumb1_emit_multi_reg_push): Likewise for return type and local
23348         "insn".
23349         (thumb1_final_prescan_insn): Likewise for param "insn".
23350         (thumb_far_jump_used_p): Likewise for local "insn".
23351         (thumb1_expand_prologue): Likewise.
23352         (arm_expand_epilogue_apcs_frame): Likewise.
23353         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
23354         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
23355         from rtx to rtx_code_label *.
23356         (arm_split_atomic_op): Likewise for local "label".
23357         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
23358
23359 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23360
23361         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
23362         first param from rtx to rtx_insn *.
23363         (arc_verify_short): Likewise.
23364         (arc_short_long): Likewise.
23365         (arc_need_delay): Likewise.
23366
23367         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
23368         "target_insn".
23369         (arc_ccfsm_advance): Likewise for param "insn" and locals
23370         "start_insn", "this_insn".
23371         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
23372         (arc_ccfsm_post_advance): Likewise for param "insn".
23373         (arc_next_active_insn): Likewise for return type and param "insn".
23374         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
23375         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
23376         (output_short_suffix): Likewise for local "insn".
23377         (arc_final_prescan_insn): Likewise for param "insn".  Remove
23378         now-redundant checked cast.
23379         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
23380         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
23381         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
23382         for use where lc_set became an insn.
23383         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
23384         rtx to rtx_insn *.
23385         (arc_get_insn_variants): Likewise for local "prev".
23386         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
23387         "next".
23388         (arc_predicate_delay_insns): Likewise for local "insn".
23389         (arc_pad_return): Likewise for local "prev".  For now, add a
23390         checked cast when extracting the insn from "final_sequence".
23391         (arc_short_long): Likewise for param "insn".
23392         (arc_need_delay): Likewise for param "insn" and local "next".
23393         (arc_label_align): Likewise for locals "prev", "next".
23394
23395 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23396
23397         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
23398         "insn" from rtx to rtx_insn *.
23399         (alpha_gp_save_rtx): Likewise for local "seq".
23400         (alpha_instantiate_decls): Likewise for local "top".
23401         (get_some_local_dynamic_name): Likewise for local "insn".
23402         (alpha_does_function_need_gp): Likewise.
23403         (set_frame_related_p): Likewise for return type and for locals
23404         "seq" and "insn".
23405         (emit_frame_store_1): Likewise for local "insn".
23406         (alpha_expand_prologue): Likewise for locals "insn", "seq".
23407         (alpha_end_function): Likewise for local "insn".
23408         (alpha_output_mi_thunk_osf): Likewise.
23409         (alphaev4_insn_pipe): Likewise for param "insn".
23410         (alphaev5_insn_pipe): Likewise.
23411         (alphaev4_next_group): Likewise for return type and param 1
23412         "insn".
23413         (alphaev5_next_group): Likewise.
23414         (alpha_align_insns_1): Likewise for return type and param 1 of
23415         callback param "next_group", and for locals "i", "next", "prev",
23416         "where", "where2", "insn".
23417
23418 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
23419
23420         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
23421         rather than modifying the stmt.
23422
23423 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
23424
23425         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
23426         cgraph_state conversion.
23427
23428 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23429
23430         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
23431         Strengthen local "insns" from rtx to rtx_insn *.
23432         (aarch64_set_frame_expr): Likewise for local "insn".
23433         (aarch64_save_or_restore_fprs): Likewise.
23434         (aarch64_save_or_restore_callee_save_registers): Likewise.
23435         (aarch64_expand_prologue): Likewise.
23436         (aarch64_expand_epilogue): Likewise.
23437         (aarch64_output_mi_thunk): Likewise.
23438         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
23439         "label2" from rtx to rtx_code_label *.
23440         (aarch64_split_atomic_op): Likewise for local "label".
23441
23442 2014-08-25  Martin Liska  <mliska@suse.cz>
23443
23444         * cgraph.h (symtab_node):
23445         (bool needed_p (void)): created from decide_is_symbol_needed
23446         (bool referred_to_p (void)): created from referred_to_p
23447         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
23448         * cgraph.h (cgraph_node):
23449         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
23450         (void expand (void)): created from expand_function
23451         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
23452         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
23453         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
23454         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
23455         * cgraph.h (varpool_node):
23456         (static void add (tree decl): created from varpool_add_new_variable
23457         * cgraph.h (cgraph_edge):
23458         void remove (void);
23459         (void remove_caller (void)): created from cgraph_edge_remove_caller
23460         (void remove_callee (void)): created from cgraph_edge_remove_callee
23461         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
23462           created from cgraph_set_call_stmt
23463         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
23464         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
23465         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
23466           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
23467         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
23468           created from cgraph_speculative_call_info
23469         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
23470           int freq_scale, bool update_original)): created from cgraph_clone_edge
23471         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
23472         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
23473         (bool recursive_p (void)): created from cgraph_edge_recursive_p
23474         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
23475         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
23476         (static void rebuild_references (void)): created from cgraph_rebuild_references
23477         * cgraph.h (symbol_table):
23478         (create_reference): renamed from add_reference
23479         (maybe_create_reference): renamed from maybe_add_reference
23480         (void register_symbol (symtab_node *node)): new function
23481         (void clear_asm_symbols (void)): new function
23482         (void unregister (symtab_node *node)): new function
23483         (void release_symbol (cgraph_node *node, int uid)): new function
23484         (cgraph_node * allocate_cgraph_symbol (void)): new function
23485         (void initialize (void)): created from cgraph_init
23486         (symtab_node *first_symbol (void)):new function
23487         (asm_node *first_asm_symbol (void)):new function
23488         (symtab_node *first_defined_symbol (void)):new function
23489         (varpool_node *first_variable (void)):new function
23490         (varpool_node *next_variable (varpool_node *node)):new function
23491         (varpool_node *first_static_initializer (void)):new function
23492         (varpool_node *next_static_initializer (varpool_node *node)):new function
23493         (varpool_node *first_defined_variable (void)):new function
23494         (varpool_node *next_defined_variable (varpool_node *node)):new function
23495         (cgraph_node *first_defined_function (void)):new function
23496         (cgraph_node *next_defined_function (cgraph_node *node)):new function
23497         (cgraph_node *first_function (void)):new function
23498         (cgraph_node *next_function (cgraph_node *node)):new function
23499         (cgraph_node *first_function_with_gimple_body (void)):new function
23500         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
23501         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
23502           created from symtab_remove_unreachable_nodes
23503         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
23504         (void process_new_functions (void)): created from cgraph_process_new_functions
23505         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
23506         (bool output_variables (void)): created from varpool_node::output_variables
23507         (void output_asm_statements (void)): created from output_asm_statements
23508         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
23509         (void compile (void)): created from compile
23510         (void output_weakrefs (void)): created from output_weakrefs
23511         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
23512         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
23513           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
23514         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
23515         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
23516           created from cgraph_next_function_with_gimple_body
23517         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
23518           created from cgraph_remove_edge_removal_hook
23519         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
23520           created from cgraph_add_node_removal_hook
23521         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
23522           created from cgraph_remove_node_removal_hook
23523         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
23524           created from varpool_add_node_removal_hook
23525         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
23526           created from varpool_remove_node_removal_hook
23527         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
23528           created from cgraph_add_function_insertion_hook
23529         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
23530           created from cgraph_remove_function_insertion_hook
23531         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
23532           created from varpool_add_variable_insertion_hook
23533         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
23534           created from varpool_remove_variable_insertion_hook
23535         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
23536           created from cgraph_add_edge_duplication_hook
23537         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
23538           created from cgraph_remove_edge_duplication_hook
23539         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
23540           created from cgraph_add_node_duplication_hook
23541         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
23542           created from cgraph_remove_node_duplication_hook
23543         (void call_edge_removal_hooks (cgraph_edge *e)):
23544           created from cgraph_call_edge_removal_hooks
23545         (void call_cgraph_insertion_hooks (cgraph_node *node)):
23546           created from call_function_insertion_hooks
23547         (void call_cgraph_removal_hooks (cgraph_node *node)):
23548           created from cgraph_call_node_removal_hooks
23549         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
23550           created from cgraph_node::call_duplication_hooks
23551         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
23552           created from cgraph_call_edge_duplication_hooks
23553         (void call_varpool_removal_hooks (varpool_node *node)):
23554           created from varpool_call_node_removal_hooks
23555         (void call_varpool_insertion_hooks (varpool_node *node)):
23556           created from varpool_call_variable_insertion_hooks
23557         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
23558           created from insert_to_assembler_name_hash
23559         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
23560           created from unlink_from_assembler_name_hash
23561         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
23562           created from symtab_prevail_in_asm_name_hash
23563         (void symtab_initialize_asm_name_hash (void)):
23564           created from symtab_initialize_asm_name_hash
23565         (void change_decl_assembler_name (tree decl, tree name)):
23566           created from change_decl_assembler_name
23567         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
23568         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
23569           created from decl_assembler_name_hash
23570         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
23571           created from decl_assembler_name_equal
23572         (static hashval_t hash_node_by_assembler_name (const void *p)):
23573           created from hash_node_by_assembler_name
23574         (static int eq_assembler_name (const void *p1, const void *p2)):
23575           created from eq_assembler_name
23576
23577 2014-08-25  Marek Polacek  <polacek@redhat.com>
23578
23579         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
23580
23581 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
23582
23583         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
23584         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
23585         SWI1248_AVX512BW mode iterator.
23586
23587 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
23588
23589         PR target/62111
23590         * config/sh/predicates.md (general_extend_operand): Disable
23591         TRUNCATE before reload completes.
23592
23593 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
23594
23595         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
23596
23597 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
23598
23599         PR target/61996
23600         * config/sh/sh.opt (musermode): Allow negative form.
23601         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
23602         targets that don't support it.
23603         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
23604         Document -mno-usermode option.
23605
23606 2014-08-24  Kito Cheng  <kito@0xlab.org>
23607
23608         * system.h (CALLER_SAVE_PROFITABLE): Poison.
23609         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
23610         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
23611         * doc/tm.texi: Regenerate.
23612
23613 2014-08-24  Kito Cheng  <kito@0xlab.org>
23614
23615         * ira.c: Fix typo in comment.
23616
23617 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
23618
23619         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
23620         Deprecate c++1y. Change language to reflect greater confidence in C++14.
23621
23622 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
23623
23624         PR target/62038
23625         * config/pa/pa.c (pa_output_function_epilogue): Don't set
23626         last_address when the current function is a thunk.
23627         (pa_asm_output_mi_thunk): When we don't have named sections or they
23628         are not being used, check that thunk can reach the stub table with a
23629         short branch.
23630
23631 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
23632
23633         * web.c (union_match_dups): Strengthen param "insn" from rtx to
23634         rtx_insn *.
23635         (pass_web::execute): Likewise for local "insn".
23636
23637 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
23638
23639         * var-tracking.c (struct micro_operation_def): Strengthen field
23640         "insn" from rtx to rtx_insn *.
23641         (struct emit_note_data_def): Likewise.
23642         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
23643         (vt_stack_adjustments): Likewise for local "insn".
23644         (adjust_insn): Likewise for param "insn".
23645         (val_store): Likewise.
23646         (val_resolve): Likewise.
23647         (struct count_use_info): Likewise for field "insn".
23648         (log_op_type): Likewise for param "insn".
23649         (reverse_op): Likewise.
23650         (prepare_call_arguments): Likewise.
23651         (add_with_sets):  The initial param takes an insn, but we can't
23652         yet strengthen it from rtx to rtx_insn * since it's used as a
23653         cselib_record_sets_hook callback.  For now rename initial param
23654         from "insn" to "uncast_insn", and introduce a local "insn" of
23655         the stronger rtx_insn * type, with a checked cast.
23656         (compute_bb_dataflow): Strengthen local "insn" from rtx to
23657         rtx_insn *.
23658         (emit_note_insn_var_location): Likewise.
23659         (emit_notes_for_changes): Likewise.
23660         (emit_notes_for_differences): Likewise.
23661         (next_non_note_insn_var_location): Likewise for return type and
23662         for param "insn".
23663         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
23664         (vt_initialize): Likewise for local "insn".
23665         (delete_debug_insns): Likewise for locals "insn" and "next".
23666
23667 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
23668
23669         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
23670         rtx_insn *.
23671         (mark_constant_pool): Likewise for local "insn".
23672
23673 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
23674
23675         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
23676         rtx to rtx_insn *.
23677         (dead_debug_promote_uses): Likewise.
23678         (dead_debug_insert_temp): Likewise.
23679
23680 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
23681
23682         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
23683         from const_rtx to const rtx_insn *.
23684         (store_killed_after): Likewise.  Strengthen locals "last", "act"
23685         from rtx to rtx_insn *.
23686         (store_killed_before): Strengthen param "insn" from const_rtx to
23687         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
23688         (find_moveable_store): Strengthen param "insn" from rtx to
23689         rtx_insn *.
23690         (compute_store_table): Likewise for local "insn".
23691         (insert_insn_start_basic_block): Likewise for param "insn" and
23692         locals "prev", "before", "insn".
23693         (insert_store): For now, add a checked cast to rtx_insn * on the
23694         result of gen_move_insn.
23695         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
23696         to rtx_insn *.
23697         (replace_store_insn): Likewise.  For now, add a checked cast to
23698         rtx_insn * on the result of gen_move_insn.
23699
23700 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23701
23702         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
23703         rtx_insn *.
23704         (expand_sjlj_dispatch_table): Likewise.
23705
23706 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23707
23708         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
23709         "insn" from rtx to rtx_insn *.
23710
23711 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23712
23713         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
23714         "insn" from rtx to rtx_insn *.
23715         (dup_block_and_redirect): Likewise for param 3 "before".
23716
23717         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
23718         from rtx to rtx_insn *.
23719         (move_insn_for_shrink_wrap): Likewise.
23720         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
23721         (dup_block_and_redirect): Likewise for param "before" and local
23722         "insn".
23723         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
23724         "end".
23725         (convert_to_simple_return): Likewise for local "start".
23726
23727         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
23728         Strengthen local "insn" from rtx to rtx_insn *, for use when
23729         invoking requires_stack_frame_p.
23730
23731 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23732
23733         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
23734         rtx_insn *.
23735         (speculate_expr): Likewise for locals "orig_insn_rtx",
23736         "spec_insn_rtx".
23737         (eq_transformed_insns): Likewise for locals "i1", "i2".
23738         (check_for_new_jump): Likewise for return type and local "end".
23739         (find_new_jump): Likewise for return type and local "jump".
23740         (sel_split_edge): Likewise for local "jump".
23741         (sel_create_recovery_block): Likewise.
23742         (sel_redirect_edge_and_branch_force): Likewise.
23743         (sel_redirect_edge_and_branch): Likewise.
23744
23745 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23746
23747         * sel-sched.c (substitute_reg_in_expr): Strengthen local
23748         "new_insn" from rtx to rtx_insn *.
23749         (create_insn_rtx_with_rhs): Likewise for return type and for local
23750         "insn_rtx".
23751         (create_insn_rtx_with_lhs): Likewise.
23752         (create_speculation_check): Likewise for local "insn_rtx".
23753         (implicit_clobber_conflict_p): Likewise for local "insn".
23754         (get_expr_cost): Likewise.
23755         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
23756         (move_cond_jump): Likewise for locals "next", "prev", "link",
23757         "head", "from", "to".
23758
23759 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23760
23761         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
23762         "next" from rtx to rtx_insn *.
23763         (find_conditional_protection): Likewise for local "next".
23764         (is_conditionally_protected): Likewise for local "insn1".
23765         (is_pfree): Likewise for locals "insn1", "insn2".
23766
23767 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23768
23769         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
23770         from rtx to rtx_insn *.
23771
23772         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
23773         locals "insn1", "insn2" from rtx to rtx_insn *.
23774         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
23775         locals "insn", "prev", "last_jump", "next_tail".
23776         (schedule_ebb): Likewise for params "head", "tail".
23777         (schedule_ebbs): Likewise for locals "tail", "head".
23778
23779         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
23780         to rtx_insn on "last_insn" in one of the invocations of
23781         schedule_ebb.
23782
23783 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23784
23785         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
23786         "elem", "insn" from rtx to rtx_insn *.
23787         (change_spec_dep_to_hard): Likewise.
23788         (get_back_and_forw_lists): Likewise for local "con".
23789         (sd_add_dep): Likewise for locals "elem", "insn".
23790         (sd_resolve_dep): Likewise for locals "pro", "con".
23791         (sd_unresolve_dep): Likewise.
23792         (sd_delete_dep): Likewise.
23793         (chain_to_prev_insn): Likewise for local "pro".
23794         (find_inc): Likewise for locals "pro", "con".
23795
23796 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23797
23798         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
23799         to rtx_insn *.
23800         (reg_set_between_p): Strengthen local "insn" from const_rtx to
23801         const rtx_insn *.
23802         (modified_between_p): Strengthen local "insn" from rtx to
23803         rtx_insn *.
23804         (remove_reg_equal_equiv_notes_for_regno): Likewise.
23805         (keep_with_call_p): Strengthen local "i2" from const_rtx to
23806         const rtx_insn *.
23807
23808 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23809
23810         * resource.c (next_insn_no_annul): Strengthen local "next" from
23811         rtx to rtx_insn *.
23812         (mark_referenced_resources): Likewise for local "insn".
23813
23814 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23815
23816         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
23817         to rtx_insn *.
23818         (find_reloads): Likewise for param 1.
23819         (subst_reloads): Likewise for sole param.
23820         (find_equiv_reg): Likwise for param 2.
23821         (regno_clobbered_p): Likwise for param 2.
23822         (reload): Likewise for param 1.
23823
23824         * caller-save.c (save_call_clobbered_regs): Strengthen local
23825         "insn" from rtx to rtx_insn *.
23826         (insert_one_insn): Likewise for local "insn".
23827
23828         * reload.c (this_insn): Likewise for this global.
23829         (find_reloads): Likewise for param "insn".
23830         (find_reloads_toplev): Likewise.
23831         (find_reloads_address): Likewise.
23832         (subst_reg_equivs): Likewise.
23833         (update_auto_inc_notes): Likewise.
23834         (find_reloads_address_1): Likewise.
23835         (find_reloads_subreg_address): Likewise.
23836         (subst_reloads): Likewise.
23837         (find_equiv_reg): Likewise, also for local "p".
23838         (regno_clobbered_p): Likewise for param "insn".
23839
23840         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
23841         array.
23842         (spill_reg_store): Likewise for the elements of this array.
23843         (remove_init_insns): Likewise for local "equiv_insn".
23844         (will_delete_init_insn_p): Likewise for param "insn".
23845         (reload): Likewise for param ""first" and local "insn".
23846         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
23847         rtx_insn *.
23848         (calculate_elim_costs_all_insns): Likewise.
23849         (delete_caller_save_insns): Likewise.
23850         (spill_failure): Likewise for param "insn".
23851         (delete_dead_insn): Likewise.
23852         (set_label_offsets): Likewise.
23853         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
23854         "prev_insn".
23855         (elimination_costs_in_insn): Likewise for param "insn".
23856         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
23857         when referring to an insn.
23858         (set_initial_label_offsets): Likewise.
23859         (set_offsets_for_label): Strengthen param "insn" from rtx to
23860         rtx_insn *.
23861         (init_eliminable_invariants): Likewise for param "first" and local
23862         "insn".
23863         (fixup_eh_region_note): Likewise for param "insn".
23864         (reload_as_needed): Likewise for locals "prev", "insn",
23865         "old_next", "old_prev", "next".
23866         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
23867         "last".
23868         (reload_inheritance_insn): Strengthen elements of this array from
23869         rtx to rtx_insn *.
23870         (failed_reload): Likewise for param "insn".
23871         (choose_reload_regs): Likewise for local "insn".  Replace use of
23872         NULL_RTX with NULL when referring to an insn.
23873         (input_reload_insns): Strengthen elements of this array from rtx
23874         to rtx_insn *.
23875         (other_input_address_reload_insns): Likewise for this global.
23876         (other_input_reload_insns): Likewise for this global.
23877         (input_address_reload_insns): Likwise for the elements of this
23878         array.
23879         (inpaddr_address_reload_insns): Likwise for the elements of this
23880         array.
23881         (output_reload_insns): Likewise for the elements of this array.
23882         (output_address_reload_insns): Likewise for the elements of this
23883         array.
23884         (outaddr_address_reload_insns): Likewise for the elements of this
23885         array.
23886         (operand_reload_insns): Likewise for this global.
23887         (other_operand_reload_insns): Likewise for this global.
23888         (other_output_reload_insns): Likewise for the elements of this
23889         array.
23890         (new_spill_reg_store): Likewise for the elements of this
23891         array.
23892         (emit_input_reload_insns): Likewise for locals "insn", "temp".
23893         Strengthen local "where" from rtx * to rtx_insn **.
23894         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
23895         from rtx to rtx_insn *.
23896         (do_input_reload): Likewise for local "insn".
23897         (do_output_reload): Likewise for local "insn".
23898         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
23899         (emit_insn_if_valid_for_reload): Likewise for return type and local
23900         "last".  Add checked cast to rtx_insn when returning "insn" since
23901         this has been through emit_insn.
23902         (gen_reload): Strengthen return type and locals "last", "insn", "set"
23903         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
23904         returning "insn" since it's been through
23905         emit_insn_if_valid_for_reload at this point.
23906         (delete_output_reload): Strengthen param "insn" and locals
23907         "output_reload_insn", "i2" from rtx to rtx_insn *.
23908         (delete_address_reloads): Likewise for params "dead_insn",
23909         "current_insn" and locals "prev", "next".
23910         (delete_address_reloads_1): Likewise for params "dead_insn",
23911         "current_insn" and locals "prev", "i2".
23912         (inc_for_reload): Likewise for locals "last", "add_insn".
23913         (add_auto_inc_notes): Strengthen param "insn" from rtx to
23914         rtx_insn *.
23915
23916         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
23917         param of this duplicate of the prototype from reload.h
23918
23919 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23920
23921         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
23922         rtx to rtx_insn *.
23923         (regstat_bb_compute_calls_crossed): Likewise.
23924
23925 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23926
23927         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
23928         to rtx_insn *.
23929         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
23930         with an insn.
23931         (regrename_analyze): Strengthen local "insn" from rtx to
23932         rtx_insn *.
23933         (scan_rtx_reg): Likewise for param "insn".
23934         (scan_rtx_address): Likewise.
23935         (scan_rtx): Likewise.
23936         (restore_operands): Likewise.
23937         (record_out_operands): Likewise.
23938         (build_def_use): Likewise for local "insn".  Replace use of
23939         NULL_RTX with NULL when dealing with an insn.
23940
23941 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23942
23943         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
23944         * reginfo.c (reg_scan): Likewise, also for local "insn".
23945         (reg_scan_mark_refs): Likewise for param "insn".
23946         (init_subregs_of_mode): Likewise for local "insn".
23947
23948 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23949
23950         * regcprop.c (struct queued_debug_insn_change): Strengthen field
23951         "insn" from rtx to rtx_insn *.
23952         (replace_oldest_value_reg): Likewise for param "insn".
23953         (replace_oldest_value_addr): Likewise.
23954         (replace_oldest_value_mem): Likewise.
23955         (apply_debug_insn_changes): Likewise for local "last_insn".
23956         (copyprop_hardreg_forward_1): Likewise for local "insn".
23957
23958 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23959
23960         * reg-stack.c (next_flags_user): Strengthen return type and param
23961         "insn" from rtx to rtx_insn *.
23962         (straighten_stack): Likewise for param "insn".
23963         (check_asm_stack_operands): Likewise.
23964         (remove_regno_note): Likewise.
23965         (emit_pop_insn): Likewise for return type, param "insn", local
23966         "pop_insn".
23967         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
23968         "limit" from rtx to rtx_insn *.
23969         (swap_to_top): Likewise for param "insn".
23970         (move_for_stack_reg): Likewise.
23971         (move_nan_for_stack_reg): Likewise.
23972         (swap_rtx_condition): Likewise.
23973         (compare_for_stack_reg): Likewise.
23974         (subst_all_stack_regs_in_debug_insn): Likewise.
23975         (subst_stack_regs_pat): Likewise, and local "insn2".
23976         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
23977         rtx_insn *.
23978         (subst_stack_regs): Likewise.
23979         (change_stack): Likewise.
23980         (convert_regs_1): Likewise for locals "insn", "next".
23981
23982 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23983
23984         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
23985         rtx_insn *.
23986         (combine_set_extension): Likewise for param "curr_insn".
23987         (transform_ifelse): Likewise for param "def_insn".
23988         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
23989         from vec<rtx> * to vec<rtx_insn *> *.
23990         (is_cond_copy_insn): Likewise for param "insn".
23991         (struct ext_state): Strengthen the four vec fields from vec<rtx>
23992         to vec<rtx_insn *>.
23993         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
23994         local "def_insn" from rtx to rtx_insn *.
23995         (get_sub_rtx): Likewise for param "def_insn".
23996         (merge_def_and_ext): Likewise.
23997         (combine_reaching_defs): Likewise.
23998         (add_removable_extension): Likewise for param "insn".
23999         (find_removable_extensions): Likewise for local "insn".
24000         (find_and_remove_re): Likewise for locals "curr_insn" and
24001         "def_insn".  Strengthen locals "reinsn_del_list" and
24002         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
24003
24004 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24005
24006         * recog.c (split_insn): Strengthen param "insn" and locals
24007         "first", "last" from rtx to rtx_insn *.
24008         (split_all_insns): Likewise for locals "insn", "next".
24009         (split_all_insns_noflow): Likewise.
24010
24011 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24012
24013         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
24014         const rtx_insn *.
24015         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24016         (debug_rtx_find): Likewise for param 1 "x".
24017
24018         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
24019         const_rtx to const rtx_insn *.  Likewise for local "insn".
24020         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24021         (debug_rtx_find): Likewise for param 1 "x".
24022         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
24023         from const_rtx to const rtx_insn * within the appropriate cases of
24024         the switch statement.
24025
24026         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
24027         Strengthen local "insns" from rtx to rtx_insn * since this is
24028         passed to a call to debug_rtx_list.
24029
24030 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24031
24032         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
24033         to rtx_insn *.
24034
24035         * function.c (stack_protect_epilogue): Add checked cast to
24036         rtx_insn for now when invoking predict_insn_def.
24037
24038         * predict.c (predict_insn): Strengthen param "insn" from rtx to
24039         rtx_insn *.
24040         (predict_insn_def): Likewise.
24041         (rtl_predict_edge): Likewise for local "last_insn".
24042         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
24043         const rtx_insn *.
24044         (combine_predictions_for_insn): Strengthen param "insn" from rtx
24045         to rtx_insn *.
24046         (bb_estimate_probability_locally): Likewise for local "last_insn".
24047         (expensive_function_p): Likewise for local "insn".
24048
24049         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
24050         local "jmp", since this is used when invoking predict_insn_def.
24051
24052 2014-08-22  Marek Polacek  <polacek@redhat.com>
24053
24054         PR c++/62199
24055         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
24056
24057 2014-08-22  Marek Polacek  <polacek@redhat.com>
24058
24059         PR c/61271
24060         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
24061         a comparison in parens.
24062         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
24063         in parens.
24064
24065 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24066
24067         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
24068         rtx_insn *.
24069
24070         * cprop.c (fis_get_condition): Likewise.
24071
24072         * postreload.c (reload_cse_regs): Likewise for param "first".
24073         (reload_cse_simplify): Likewise for param "insn".
24074         (reload_cse_regs_1): Likewise for local "insn".
24075         (reload_cse_simplify_set): Likewise for param "insn".
24076         (reload_cse_simplify_operands): Likewise.
24077         (struct reg_use): Likewise for field "insn".
24078         (reload_combine_purge_insn_uses): Likewise for param "insn".
24079         (fixup_debug_insns): Likewise for params "from", "to" and local
24080         "insn".
24081         (try_replace_in_use): Likewise for local "use_insn".
24082         (reload_combine_recognize_const_pattern): Likewise for param
24083         "insn" and locals "add_moved_after_insn", "use_insn".
24084         (reload_combine_recognize_pattern): Likewise for param "insn" and
24085         local "prev".
24086         (reload_combine): Likewise for locals "insn", "prev".
24087         (reload_combine_note_use): Likewise for param "insn".
24088         (move2add_use_add2_insn): Likewise.
24089         (move2add_use_add3_insn): Likewise.
24090         (reload_cse_move2add): Likewise, also for local "next".
24091         (move2add_note_store): Likewise for local "insn".
24092
24093 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24094
24095         * postreload-gcse.c (struct occr): Strengthen field "insn" from
24096         rtx to rtx_insn *.
24097         (struct unoccr): Likewise.
24098         (struct modifies_mem): Likewise.
24099         (alloc_mem): Likewise for local "insn".
24100         (insert_expr_in_table): Likewise for param "insn".
24101         (dump_expr_hash_table_entry): Likewise for local "insn".
24102         (oprs_unchanged_p): Likewise for param "insn".
24103         (load_killed_in_block_p): Likewise for local "setter".
24104         (record_last_reg_set_info): Likewise for param "insn".
24105         (record_last_reg_set_info_regno): Likewise.
24106         (record_last_mem_set_info): Likewise.
24107         (record_last_set_info): Likewise for local "last_set_insn".
24108         (record_opr_changes): Likewise for param "insn".
24109         (hash_scan_set): Likewise.
24110         (compute_hash_table): Likewise for local "insn".
24111         (get_avail_load_store_reg): Likewise for param "insn".
24112         (eliminate_partially_redundant_load): Likewise, also for locals
24113         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
24114         RTX for insns.
24115         (eliminate_partially_redundant_loads): Likewise for local "insn".
24116
24117 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24118
24119         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
24120         rtx to rtx_insn *.
24121         (expand_binop): Likewise for locals "entry_last", "last", "insns"
24122         (expand_twoval_unop): Likewise for locals entry_last", "last".
24123         (expand_twoval_binop): Likewise.
24124         (expand_twoval_binop_libfunc): Likewise for local "insns".
24125         (widen_leading): Likewise for local "last".
24126         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
24127         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
24128         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
24129         (expand_parity): Likewise for locals "last" and "seq".
24130         (expand_ffs): Likewise for local "seq".  Strengthen local
24131         "nonzero_label" from rtx to rtx_code_label *.
24132         (expand_absneg_bit): Strengthen local "insns" from rtx to
24133         rtx_insn *.
24134         (expand_unop_direct): Likewise for local "last".
24135         (expand_unop): Likewise for locals "last", "insns".
24136         (expand_abs_nojump): Likewise for local "last".
24137         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
24138         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
24139         rtx_insn *.
24140         (expand_copysign_absneg): Strengthen local "label" from rtx to
24141         rtx_code_label *.
24142         (expand_copysign_bit): Strengthen local "insns" from rtx to
24143         rtx_insn *.
24144         (struct no_conflict_data): Likewise for fields "first", "insn".
24145         (emit_libcall_block_1): Likewise for param "insns" and locals
24146         "next", "last", "insn".
24147         (emit_libcall_block): For now, add a checked cast to rtx_insn *
24148         on "insns" when invoking emit_libcall_block_1.  Ultimately we
24149         want to strengthen insns itself.
24150         (prepare_cmp_insn): Strengthen local "last" from rtx to
24151         rtx_insn *.
24152         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
24153         (prepare_float_lib_cmp): Likewise for local "insns".
24154         (emit_conditional_move): Likewise for local "last".
24155         (emit_conditional_add): Likewise.
24156         (have_sub2_insn): Likewise for local "seq".
24157         (expand_float): Likewise for local "insns".  Strengthen locals
24158         "label", "neglabel" from rtx to rtx_code_label *.
24159         (expand_fix): Likewise for locals "last", "insn", "insns" (to
24160         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
24161         (expand_fixed_convert): Likewise for local "insns" (to
24162         rtx_insn *).
24163         (expand_sfix_optab): Likewise for local "last".
24164         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
24165         to rtx_code_label *.
24166         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
24167         from rtx to rtx_insn *.
24168         (expand_atomic_fetch_op): Likewise for local "insn".
24169         (maybe_legitimize_operand_same_code): Likewise for local "last".
24170         (maybe_legitimize_operands): Likewise.
24171
24172 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24173
24174         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
24175         "insn" from rtx to rtx_insn *.
24176         (ps_rtl_insn): Likewise for return type.
24177         (doloop_register_get): Likewise for params "head", "tail" and
24178         locals "insn", "first_insn_not_to_check".
24179         (schedule_reg_move): Likewise for local "this_insn".
24180         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
24181         of gen_move_insn for now.
24182         (reset_sched_times): Strengthen local "insn" from rtx to
24183         rtx_insn *.
24184         (permute_partial_schedule): Likewise.
24185         (duplicate_insns_of_cycles): Likewise for local "u_insn".
24186         (dump_insn_location): Likewise for param "insn".
24187         (loop_canon_p): Likewise for local "insn".
24188         (sms_schedule): Likewise.
24189         (print_partial_schedule): Likewise.
24190         (ps_has_conflicts): Likewise.
24191
24192 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24193
24194         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
24195         "tailp" from rtx * to rtx_insn **.
24196
24197         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
24198         from rtx to rtx_insn *.
24199         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
24200         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
24201         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
24202         rtx to rtx_insn *.
24203         * modulo-sched.c (const_iteration_count): Strengthen return type
24204         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
24205         use of NULL_RTX with NULL when working with insns.
24206         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
24207         to rtx_insn *.
24208         (sms_schedule): Likewise.
24209         * sched-rgn.c (init_ready_list): Likewise, also for locals
24210         "src_head" and "src_next_tail".
24211         (compute_block_dependences): Likewise.
24212         (free_block_dependencies): Likewise.
24213         (debug_rgn_dependencies): Likewise.
24214         (free_rgn_deps): Likewise.
24215         (compute_priorities): Likewise.
24216         (schedule_region): Likewise.
24217         * sel-sched.c (find_ebb_boundaries): Likewise.
24218
24219         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
24220         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
24221
24222 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24223
24224         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
24225         from rtx to rtx_insn *.
24226         (new_seginfo): Likewise for param "insn".
24227         (create_pre_exit): Likewise for locals "last_insn",
24228         "before_return_copy", "return_copy".
24229         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
24230         "mode_set".
24231
24232 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24233
24234         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
24235         from rtx to rtx_insn *.
24236         (lra_push_insn): Likewise for 1st param.
24237         (lra_push_insn_and_update_insn_regno_info): Likewise.
24238         (lra_pop_insn): Likewise for return type.
24239         (lra_invalidate_insn_data): Likewise for 1st param.
24240         (lra_set_insn_deleted): Likewise.
24241         (lra_delete_dead_insn): Likewise.
24242         (lra_process_new_insns): Likewise for first 3 params.
24243         (lra_set_insn_recog_data): Likewise for 1st param.
24244         (lra_update_insn_recog_data): Likewise.
24245         (lra_set_used_insn_alternative): Likewise.
24246         (lra_invalidate_insn_regno_info): Likewise.
24247         (lra_update_insn_regno_info): Likewise.
24248         (lra_former_scratch_operand_p): Likewise.
24249         (lra_eliminate_regs_1): Likewise.
24250         (lra_get_insn_recog_data): Likewise.
24251
24252         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
24253         rtx to rtx_insn *.
24254
24255         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
24256         "mv1" and "mv2".
24257         (substitute_within_insn): New.
24258         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
24259         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
24260         Replace call to "substitute" with call to substitute_within_insn.
24261
24262         * lra-constraints.c (curr_insn): Strengthen from rtx to
24263         rtx_insn *.
24264         (get_equiv_with_elimination): Likewise for param "insn".
24265         (match_reload): Strengthen params "before" and "after" from rtx *
24266         to rtx_insn **.
24267         (emit_spill_move): Likewise for return type.  Add a checked cast
24268         to rtx_insn * on result of gen_move_insn for now.
24269         (check_and_process_move): Likewise for local "before".  Replace
24270         NULL_RTX with NULL when referring to insns.
24271         (process_addr_reg): Strengthen params "before" and "after" from
24272         rtx * to rtx_insn **.
24273         (insert_move_for_subreg): Likewise.
24274         (simplify_operand_subreg): Strengthen locals "before" and "after"
24275         from rtx to rtx_insn *.
24276         (process_address_1): Strengthen params "before" and "after" from
24277         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
24278         rtx to rtx_insn *.
24279         (process_address): Strengthen params "before" and "after" from
24280         rtx * to rtx_insn **.
24281         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
24282         (curr_insn_transform): Strengthen locals "before" and "after"
24283         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
24284         to insns.
24285         (loc_equivalence_callback): Update cast of "data", changing
24286         resulting type from rtx to rtx_insn *.
24287         (substitute_pseudo_within_insn): New.
24288         (inherit_reload_reg): Strengthen param "insn" from rtx to
24289         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
24290         NULL when referring to insns.  Add a checked cast to rtx_insn *
24291         when using usage_insn to invoke lra_update_insn_regno_info.
24292         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
24293         likewise for locals "restore", "save".  Add checked casts to
24294         rtx_insn * when using usage_insn to invoke
24295         lra_update_insn_regno_info and lra_process_new_insns.  Replace
24296         NULL_RTX with NULL when referring to insns.
24297         (split_if_necessary): Strengthen param "insn" from rtx to
24298         rtx_insn *.
24299         (update_ebb_live_info): Likewise for params "head", "tail" and local
24300         "prev_insn".
24301         (get_last_insertion_point): Likewise for return type and local "insn".
24302         (get_live_on_other_edges): Likewise for local "last".
24303         (inherit_in_ebb): Likewise for params "head", "tail" and locals
24304         "prev_insn", "next_insn", "restore".
24305         (remove_inheritance_pseudos): Likewise for local "prev_insn".
24306         (undo_optional_reloads): Likewise for local "insn".
24307
24308         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
24309         "insn".
24310         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
24311         insns.
24312         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
24313         rtx_insn *.
24314         (spill_pseudos): Likewise for local "insn".
24315         (init_elimination): Likewise.
24316         (process_insn_for_elimination): Likewise for param "insn".
24317
24318         * lra-lives.c (curr_insn): Likewise.;
24319
24320         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
24321         (remove_pseudos): Likewise for param "insn".
24322         (spill_pseudos): Likewise for local "insn".
24323         (lra_final_code_change): Likewise for locals "insn", "curr".
24324
24325         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
24326         (lra_set_insn_deleted): Likewise.
24327         (lra_delete_dead_insn): Likewise, and for local "prev".
24328         (new_insn_reg): Likewise for param "insn".
24329         (lra_set_insn_recog_data): Likewise.
24330         (lra_update_insn_recog_data): Likewise.
24331         (lra_set_used_insn_alternative): Likewise.
24332         (get_insn_freq): Likewise.
24333         (invalidate_insn_data_regno_info): Likewise.
24334         (lra_invalidate_insn_regno_info): Likewise.
24335         (lra_update_insn_regno_info): Likewise.
24336         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
24337         vec<rtx_insn *>.
24338         (lra_push_insn_1): Strengthen param "insn" from rtx to
24339         rtx_insn *.
24340         (lra_push_insn): Likewise.
24341         (lra_push_insn_and_update_insn_regno_info): Likewise.
24342         (lra_pop_insn): Likewise for return type and local "insn".
24343         (push_insns): Likewise for params "from", "to", and local "insn".
24344         (setup_sp_offset): Likewise for params "from", "last" and locals
24345         "before", "insn".
24346         (lra_process_new_insns): Likewise for params "insn", "before",
24347         "after" and local "last".
24348         (struct sloc): Likewise for field "insn".
24349         (lra_former_scratch_operand_p): Likewise for param "insn".
24350         (remove_scratches): Likewise for locals "insn", "last".
24351         (check_rtl): Likewise for local "insn".
24352         (add_auto_inc_notes): Likewise for param "insn".
24353         (update_inc_notes): Likewise for local "insn".
24354         (lra): Replace NULL_RTX with NULL when referring to insn.
24355
24356 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24357
24358         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
24359         to rtx_insn *.
24360         (resolve_reg_notes): Likewise.
24361         (resolve_simple_move): Likewise for return type, param "insn", and
24362         locals "insns", "minsn".
24363         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
24364         (resolve_use): Likewise.
24365         (resolve_debug): Likewise.
24366         (find_decomposable_shift_zext): Likewise.
24367         (resolve_shift_zext): Likewise for return type, param "insn", and
24368         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
24369         (decompose_multiword_subregs): Likewise for local "insn",
24370         "orig_insn", "decomposed_shift", "end".
24371
24372 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24373
24374         * basic-block.h (basic_block split_edge_and_insert): Strengthen
24375         param "insns" from rtx to rtx_insn *.
24376
24377         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
24378         rtx to rtx_insn *.
24379         (struct iv_to_split): Likewise.
24380         (loop_exit_at_end_p): Likewise for local "insn".
24381         (split_edge_and_insert): Likewise for param "insns".
24382         (compare_and_jump_seq): Likewise for return type, param "cinsn",
24383         and locals "seq", "jump".
24384         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
24385         "branch_code"; update invocations of compare_and_jump_seq to
24386         eliminate NULL_RTX in favor of NULL.
24387         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
24388         rtx to rtx_insn *.
24389         (reset_debug_uses_in_loop): Likewise.
24390         (analyze_insn_to_expand_var): Likewise for param "insn".
24391         (analyze_iv_to_split_insn): Likewise.
24392         (analyze_insns_in_loop): Likewise for local "insn".
24393         (insert_base_initialization): Likewise for param
24394         "insn" and local "seq".
24395         (split_iv): Likewise for param "insn" and local "seq".
24396         (expand_var_during_unrolling): Likewise for param "insn".
24397         (insert_var_expansion_initialization): Likewise for local "seq".
24398         (combine_var_copies_in_loop_exit): Likewise.
24399         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
24400         "insn".
24401         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
24402         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
24403         "next".
24404
24405 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24406
24407         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
24408         rtx_insn *.
24409         (iv_analyze_result): Likewise.
24410         (iv_analyze_expr): Likewise.
24411         (biv_p): Likewise.
24412
24413         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
24414         local "def_insn" from rtx to rtx_insn *.
24415         (get_biv_step_1): Likewise for local "insn".
24416         (iv_analyze_expr): Likewise for param "insn".
24417         (iv_analyze_def): Likewise for local "insn".
24418         (iv_analyze_op): Likewise for param "insn".
24419         (iv_analyze): Likewise.
24420         (iv_analyze_result): Likewise.
24421         (biv_p): Likewise.
24422         (suitable_set_for_replacement): Likewise.
24423         (simplify_using_initial_values): Likewise for local "insn".
24424         (iv_number_of_iterations): Likewise for param "insn".
24425         (check_simple_exit): Add checked cast to rtx_insn when invoking
24426         iv_number_of_iterations for now (until get_condition is
24427         strengthened).
24428
24429         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
24430         "insn" from rtx to rtx_insn *.
24431         (analyze_insns_in_loop): Likewise for local "insn".
24432
24433 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24434
24435         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
24436         to rtx_insn *.
24437         (struct invariant): Likewise.
24438         (hash_invariant_expr_1): Likewise for param "insn".
24439         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
24440         (find_exits): Likewise for local "insn".
24441         (create_new_invariant): Likewise for param "insn".
24442         (check_dependencies): Likewise.
24443         (find_invariant_insn): Likewise.
24444         (record_uses): Likewise.
24445         (find_invariants_insn): Likewise.
24446         (find_invariants_bb): Likewise for local "insn".
24447         (get_pressure_class_and_nregs): Likewise for param "insn".
24448         (calculate_loop_reg_pressure): Likewise for local "insn".
24449
24450 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24451
24452         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
24453         to rtx_insn *.
24454         (add_test): Likewise for locals "seq", "jump".
24455         (doloop_modify): Likewise for locals "sequence", "jump_insn".
24456
24457 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24458
24459         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
24460         rtx_insn *.
24461         (rebuild_jump_labels_chain): Likewise for param "chain".
24462
24463         * cfgexpand.c (pass_expand::execute): Add checked cast to
24464         rtx_insn * when calling rebuild_jump_labels_chain in region where
24465         we know e->insns.r is non-NULL.
24466
24467         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
24468         rtx_insn *.
24469         (rebuild_jump_labels): Likewise.
24470         (rebuild_jump_labels_chain): Likewise for param "chain".
24471         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
24472         (init_label_info): Likewise for param "f".
24473         (maybe_propagate_label_ref): Likewise for params "jump_insn",
24474         "prev_nonjump_insn".
24475         (mark_all_labels): Likewise for param "f" and locals "insn",
24476         "prev_nonjump_insn".
24477
24478 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24479
24480         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
24481         from rtx to rtx_insn *insn.
24482         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
24483         (ira_add_allocno_copy): Likewise.
24484         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
24485         rtx to rtx_insn *.
24486         (ira_create_copy): Likewise.
24487         (ira_add_allocno_copy): Likewise.
24488         (create_bb_allocnos): Likewise for local "insn".
24489         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
24490         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
24491         process_regs_for_copy for rtx_insn * param.
24492         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
24493         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
24494         process_regs_for_copy for rtx_insn * param.
24495         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
24496         * ira-costs.c (record_reg_classes): Likewise for param "insn".
24497         (record_operand_costs): Likewise.
24498         (scan_one_insn): Likewise for return type, and for param "insn".
24499         (process_bb_for_costs): Likewise for local "insn".
24500         (process_bb_node_for_hard_reg_moves): Likewise.
24501         * ira-emit.c (struct move): Likewise for field "insn".
24502         (create_move): Eliminate use of NULL_RTX when dealing with an
24503         rtx_insn *.
24504         (emit_move_list): Strengthen return type and locals "result",
24505         "insn" from rtx to rtx_insn *insn.
24506         (emit_moves): Likewise for locals "insns", "tmp".
24507         (ira_emit): Likewise for local "insn".
24508         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
24509         "insn".
24510         (find_call_crossed_cheap_reg): Likewise.
24511         (process_bb_node_lives): Likewise for local "insn".
24512         * ira.c (decrease_live_ranges_number): Likewise.
24513         (compute_regs_asm_clobbered): Likewise.
24514         (build_insn_chain): Likewise.
24515         (find_moveable_pseudos): Likewise, also locals "def_insn",
24516         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
24517         to rtx_insn **.  Add a checked cast when assigning from
24518         "closest_use" into closest_uses array in a region where we know
24519         it's a non-NULL insn.
24520         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
24521         to rtx_insn *.
24522         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
24523         "last_interesting_insn", "uin".
24524         (move_unallocated_pseudos): Likewise for locals "def_insn",
24525         "move_insn", "newinsn".
24526
24527 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24528
24529         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
24530         Strengthen locals "done_label", "do_error" from rtx to
24531         rtx_code_label *.
24532         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
24533         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
24534         rtx_code_label *.
24535         (ubsan_expand_si_overflow_neg_check): Likewise for locals
24536         "done_label", "do_error" to rtx_code_label * and local  "last" to
24537         rtx_insn *.
24538         (ubsan_expand_si_overflow_mul_check): Likewise for locals
24539         "done_label", "do_error", "large_op0", "small_op0_large_op1",
24540         "one_small_one_large", "both_ops_large", "after_hipart_neg",
24541         "after_lopart_neg", "do_overflow", "hipart_different"  to
24542         rtx_code_label * and local  "last" to rtx_insn *.
24543
24544 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24545
24546         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
24547         "insn" and "move_insn" from rtx to rtx_insn *.
24548
24549 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24550
24551         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
24552         rtx_insn *.
24553         (cheap_bb_rtx_cost_p): Likewise.
24554         (first_active_insn): Likewise for return type and local "insn".
24555         (last_active_insn):  Likewise for return type and locals "insn",
24556         "head".
24557         (struct noce_if_info): Likewise for fields "jump", "insn_a",
24558         "insn_b".
24559         (end_ifcvt_sequence): Likewise for return type and locals "insn",
24560         "seq".
24561         (noce_try_move): Likewise for local "seq".
24562         (noce_try_store_flag): Likewise.
24563         (noce_try_store_flag_constants): Likewise.
24564         (noce_try_addcc): Likewise.
24565         (noce_try_store_flag_mask): Likewise.
24566         (noce_try_cmove): Likewise.
24567         (noce_try_minmax): Likewise.
24568         (noce_try_abs): Likewise.
24569         (noce_try_sign_mask): Likewise.
24570         (noce_try_bitop): Likewise.
24571         (noce_can_store_speculate_p): Likewise for local "insn".
24572         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
24573         seq".
24574         (check_cond_move_block): Likewise for local "insn".
24575         (cond_move_convert_if_block): Likewise.
24576         (cond_move_process_if_block): Likewise for locals "seq",
24577         "loc_insn".
24578         (noce_find_if_block): Likewise for local "jump".
24579         (merge_if_block): Likewise for local "last".
24580         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
24581         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
24582         (block_has_only_trap): Likewise for return type and local "trap".
24583         (find_if_case_1): Likewise for local "jump".
24584         (dead_or_predicable): Likewise for locals "head", "end", "jump",
24585         "insn".
24586
24587 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24588
24589         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
24590         "last_insn", "loop_end" from rtx to rtx_insn *.
24591
24592         * hw-doloop.c (scan_loop): Likewise for local "insn".
24593         (discover_loop): Likewise for param "tail_insn".
24594         (discover_loops): Likewise for local "tail".
24595
24596         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
24597         cast to rtx_insn * when assigning from an rtx local to a
24598         hwloop_info's "last_insn" field.
24599
24600 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24601
24602         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
24603         (add_delay_dependencies): Strengthen local "pro" from rtx to
24604         rtx_insn *.
24605         (recompute_todo_spec): Likewise.
24606         (dep_cost_1): Likewise for locals "insn", "used".
24607         (schedule_insn): Likewise for local "dbg".
24608         (schedule_insn): Likewise for locals "pro", "next".
24609         (unschedule_insns_until): Likewise for local "con".
24610         (restore_pattern): Likewise for local "next".
24611         (estimate_insn_tick): Likewise for local "pro".
24612         (resolve_dependencies): Likewise for local "next".
24613         (fix_inter_tick): Likewise.
24614         (fix_tick_ready): Likewise for local "pro".
24615         (add_to_speculative_block): Likewise for locals "check", "twin",
24616         "pro".
24617         (sched_extend_bb): Likewise for locals "end", "insn".
24618         (init_before_recovery): Likewise for local "x".
24619         (sched_create_recovery_block): Likewise for local "barrier".
24620         (create_check_block_twin): Likewise for local "pro".
24621         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
24622         "consumer".
24623         (unlink_bb_notes): Update for change to type of bb_header.
24624         Strengthen locals "prev", "label", "note", "next" from rtx to
24625         rtx_insn *.
24626         (clear_priorities): Likewise for local "pro".
24627
24628 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24629
24630         * gcse.c (struct occr): Strengthen field "insn" from rtx to
24631         rtx_insn *.
24632         (test_insn): Likewise for this global.
24633         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
24634         const rtx_insn *.
24635         (oprs_anticipatable_p): Likewise.
24636         (oprs_available_p): Likewise.
24637         (insert_expr_in_table): Strengthen param "insn" from  rtx to
24638         rtx_insn *.
24639         (hash_scan_set): Likewise.
24640         (hash_scan_clobber): Likewise.
24641         (hash_scan_call): Likewise.
24642         (hash_scan_insn): Likewise.
24643         (compute_hash_table_work): Likewise for local "insn".
24644         (process_insert_insn): Likewise for return type and local "pat".
24645         (insert_insn_end_basic_block): Likewise for locals "new_insn",
24646         "pat", "pat_end", "maybe_cc0_setter".
24647         (pre_edge_insert): Likewise for local "insn".
24648         (pre_insert_copy_insn): Likewise for param "insn".
24649         (pre_insert_copies): Likewise for local "insn".
24650         (struct set_data): Likewise for field "insn".
24651         (single_set_gcse): Likewise for param "insn".
24652         (gcse_emit_move_after): Likewise.
24653         (pre_delete): Likewise for local "insn".
24654         (update_bb_reg_pressure): Likewise for param "from" and local
24655         "insn".
24656         (should_hoist_expr_to_dom): Likewise for param "from".
24657         (hoist_code): Likewise for local "insn".
24658         (get_pressure_class_and_nregs): Likewise for param "insn".
24659         (calculate_bb_reg_pressure): Likewise for local "insn".
24660         (compute_ld_motion_mems): Likewise.
24661
24662 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24663
24664         * genpeep.c (main): Rename param back from "uncast_ins1" to
24665         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
24666         checked cast.
24667
24668         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
24669
24670 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
24671
24672         PR target/62195
24673         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
24674         documentation to state it is only for VSX operations.
24675
24676         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
24677         constraint only active if VSX.
24678
24679         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
24680         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
24681         (lfiwzx): Likewise.
24682
24683 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24684
24685         * fwprop.c (single_def_use_dom_walker::before_dom_children):
24686         Strengthen local "insn" from rtx to rtx_insn *.
24687         (use_killed_between): Likewise for param "target_insn".
24688         (all_uses_available_at): Likewise for param "target_insn" and
24689         local "next".
24690         (update_df_init): Likewise for params "def_insn", "insn".
24691         (update_df): Likewise for param "insn".
24692         (try_fwprop_subst): Likewise for param "def_insn" and local
24693         "insn".
24694         (free_load_extend): Likewise for param "insn".
24695         (forward_propagate_subreg): Likewise for param "def_insn" and
24696         local "use_insn".
24697         (forward_propagate_asm): Likewise for param "def_insn" and local
24698         "use_insn".
24699         (forward_propagate_and_simplify): Likewise for param "def_insn"
24700         and local "use_insn".
24701         (forward_propagate_into): Likewise for locals "def_insn" and
24702         "use_insn".
24703
24704 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24705
24706         * function.c (emit_initial_value_sets): Strengthen local "seq"
24707         from rtx to rtx_insn *.
24708         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
24709         local "seq".
24710         (instantiate_virtual_regs): Likewise for local "insn".
24711         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
24712         (reorder_blocks_1): Likewise for param "insns" and local "insn".
24713         (expand_function_end): Likewise for locals "insn" and "seq".
24714         (epilogue_done): Likewise for local "insn".
24715         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
24716         "last", "trial".
24717         (reposition_prologue_and_epilogue_notes): Likewise for locals
24718         "insn", "last", "note", "first".
24719         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
24720         (pass_match_asm_constraints::execute): Likewise for local "insn".
24721
24722 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24723
24724         * output.h (final_scan_insn): Strengthen return type from rtx to
24725         rtx_insn *.
24726         (final_forward_branch_p): Likewise for param.
24727         (current_output_insn): Likewise for this global.
24728
24729         * final.c (rtx debug_insn): Likewise for this variable.
24730         (current_output_insn): Likewise.
24731         (get_attr_length_1): Rename param "insn" to "uncast_insn",
24732         adding "insn" back in as an rtx_insn * with a checked cast, so
24733         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
24734         first param.
24735         (compute_alignments): Strengthen local "label" from rtx to
24736         rtx_insn *.
24737         (shorten_branches): Rename param from "first" to "uncast_first",
24738         introducing a new local rtx_insn * "first" using a checked cast to
24739         effectively strengthen "first" from rtx to rtx_insn * without
24740         affecting the type signature.  Strengthen locals "insn", "seq",
24741         "next", "label" from rtx to rtx_insn *.
24742         (change_scope): Strengthen param "orig_insn" and local "insn" from
24743         rtx to rtx_insn *.
24744         (final_start_function): Rename param from "first" to "uncast_first",
24745         introducing a new local rtx_insn * "first" using a checked cast to
24746         effectively strengthen "first" from rtx to rtx_insn * without
24747         affecting the type signature.  Strengthen local "insn" from rtx to
24748         rtx_insn *.
24749         (dump_basic_block_info): Strengthen param "insn" from rtx to
24750         rtx_insn *.
24751         (final): Rename param from "first" to "uncast_first",
24752         introducing a new local rtx_insn * "first" using a checked cast to
24753         effectively strengthen "first" from rtx to rtx_insn * without
24754         affecting the type signature.  Strengthen locals "insn", "next"
24755         from rtx to rtx_insn *.
24756         (output_alternate_entry_point): Strengthen param "insn" from rtx to
24757         rtx_insn *.
24758         (call_from_call_insn): Strengthen param "insn" from rtx to
24759         rtx_call_insn *.
24760         (final_scan_insn): Rename param from "insn" to "uncast_insn",
24761         introducing a new local rtx_insn * "insn" using a checked cast to
24762         effectively strengthen "insn" from rtx to rtx_insn * without
24763         affecting the type signature.  Strengthen return type and locals
24764         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
24765         now-redundant checked cast to rtx_insn * from both invocations of
24766         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
24767         introducing a local "call_insn" for use when invoking
24768         call_from_call_insn.
24769         (notice_source_line): Strengthen param "insn" from rtx to
24770         rtx_insn *.
24771         (leaf_function_p): Likewise for local "insn".
24772         (final_forward_branch_p): Likewise.
24773         (leaf_renumber_regs): Likewise for param "first".
24774         (rest_of_clean_state): Likewise for locals "insn" and "next".
24775         (self_recursive_call_p): Likewise for param "insn".
24776         (collect_fn_hard_reg_usage): Likewise for local "insn".
24777         (get_call_fndecl): Likewise for param "insn".
24778         (get_call_cgraph_rtl_info): Likewise.
24779         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
24780         introducing a new local rtx_insn * "insn" using a checked cast to
24781         effectively strengthen "insn" from rtx to rtx_insn * without
24782         affecting the type signature.
24783
24784         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
24785         cast when assigning from param "insn" to current_output_insn.
24786         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
24787         so that we can assign it back to current_output_insn.
24788
24789 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
24790
24791         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
24792         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
24793         atmxt540s and atmxt540sreva devices.
24794         * config/avr/avr-tables.opt: Regenerate.
24795         * config/avr/t-multilib: Regenerate.
24796         * doc/avr-mmcu.texi: Regenerate.
24797
24798 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24799
24800         * expr.c (convert_move): Strengthen local "insns" from rtx to
24801         rtx_insn *.
24802         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
24803         "top_label" from rtx to rtx_code_label *.
24804         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
24805         rtx_insn *.
24806         (emit_single_push_insn): Likewise for locals "prev", "last".
24807         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
24808         to rtx_code_label *.
24809         (store_constructor): Likewise for locals "loop_start", "loop_end".
24810         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
24811         rtx_insn *.
24812         (expand_expr_real_2): Likewise.
24813         (expand_expr_real_1): Strengthen local "label" from rtx to
24814         rtx_code_label *.
24815
24816 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24817
24818         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
24819         from rtx to rtx_insn *.
24820         (store_bit_field_1): Likewise.
24821         (extract_bit_field_1): Likewise.
24822         (expand_mult_const): Likewise for local "insns".
24823         (expmed_mult_highpart): Strengthen local "label" from rtx to
24824         rtx_code_label *.
24825         (expand_smod_pow2): Likewise.
24826         (expand_sdiv_pow2): Likewise.
24827         (expand_divmod): Strengthen locals "last", "insn" from rtx to
24828         rtx_insn *.  Strengthen locals "label", "label1", "label2",
24829         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
24830         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
24831         (emit_store_flag): Likewise.
24832         (emit_store_flag_force): Strengthen local "label" from rtx to
24833         rtx_code_label *.
24834         (do_cmp_and_jump): Likewise for param "label".
24835
24836 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24837
24838         * explow.c (force_reg): Strengthen local "insn" from rtx to
24839         rtx_insn *.
24840         (adjust_stack_1): Likewise.
24841         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
24842         "final_label", "available_label", "space_available" from rtx to
24843         rtx_code_label *.
24844         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
24845         (anti_adjust_stack_and_probe): Likewise.
24846
24847 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24848
24849         * except.h (sjlj_emit_function_exit_after): Strengthen param
24850         "after" from rtx to rtx_insn *.  This is only called with
24851         result of get_last_insn (in function.c) so type-change should be
24852         self-contained.
24853
24854         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
24855         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
24856         to rtx_insn *.  These fields are only used from except.c so this
24857         type-change should be self-contained to this patch.
24858
24859         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
24860         local "last" from rtx to rtx_insn *.
24861         (dw2_build_landing_pads): Likewise for local "seq".
24862         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
24863         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
24864         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
24865         rtx to rtx_insn *.
24866         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
24867         to rtx_insn *.
24868         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
24869         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
24870         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
24871         referring to an insn.  Strengthen local "dispatch_label" from
24872         rtx to rtx_code_label *.
24873         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
24874         rtx_insn *.
24875         (expand_eh_return): Strengthen local "around_label" from
24876         rtx to rtx_code_label *.
24877         (convert_to_eh_region_ranges): Strengthen locals "iter",
24878         "last_action_insn", "first_no_action_insn",
24879         "first_no_action_insn_before_switch",
24880         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
24881
24882 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24883
24884         * dwarf2out.c (last_var_location_insn): Strengthen this variable
24885         from rtx to rtx_insn *.
24886         (cached_next_real_insn): Likewise.
24887         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
24888         working with insns.
24889         (dwarf2out_var_location): Strengthen locals "next_real",
24890         "next_note", "expected_next_loc_note", "last_start", "insn" from
24891         rtx to rtx_insn *.
24892
24893 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24894
24895         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
24896         from rtx to rtx_insn *.
24897         (create_pseudo_cfg): Likewise for local "insn".
24898
24899 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24900
24901         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
24902         from rtx to rtx_insn *.
24903         (df_bb_regno_last_def_find): Likewise.
24904
24905         * df-problems.c (df_rd_bb_local_compute): Likewise.
24906         (df_lr_bb_local_compute): Likewise.
24907         (df_live_bb_local_compute): Likewise.
24908         (df_chain_remove_problem): Likewise.
24909         (df_chain_create_bb): Likewise.
24910         (df_word_lr_bb_local_compute): Likewise.
24911         (df_remove_dead_eq_notes): Likewise for param "insn".
24912         (df_note_bb_compute): Likewise for local "insn".
24913         (simulate_backwards_to_point): Likewise.
24914         (df_md_bb_local_compute): Likewise.
24915
24916         * df-scan.c (df_scan_free_bb_info): Likewise.
24917         (df_scan_start_dump): Likewise.
24918         (df_scan_start_block): Likewise.
24919         (df_install_ref_incremental): Likewise for local "insn".
24920         (df_insn_rescan_all): Likewise.
24921         (df_reorganize_refs_by_reg_by_insn): Likewise.
24922         (df_reorganize_refs_by_insn_bb): Likewise.
24923         (df_recompute_luids): Likewise.
24924         (df_bb_refs_record): Likewise.
24925         (df_update_entry_exit_and_calls): Likewise.
24926         (df_bb_verify): Likewise.
24927
24928 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24929
24930         * ddg.h (struct ddg_node): Strengthen fields "insn" and
24931         "first_note" from rtx to rtx_insn *.
24932         (get_node_of_insn): Likewise for param 2 "insn".
24933         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
24934
24935         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
24936         rtx_insn *.
24937         (mem_write_insn_p): Likewise.
24938         (mem_access_insn_p): Likewise.
24939         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
24940         (def_has_ccmode_p): Likewise for param "insn".
24941         (add_cross_iteration_register_deps): Likewise for locals
24942         "def_insn" and "use_insn".
24943         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
24944         (build_intra_loop_deps): Likewise for local "src_insn".
24945         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
24946         to rtx_insn *.
24947         (get_node_of_insn): Likewise for param "insn".
24948
24949 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24950
24951         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
24952         (deletable_insn_p): Strengthen param "insn" from rtx to
24953         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
24954         find_call_stack_args, since this is guarded by CALL_P (insn).
24955         (marked_insn_p): Strengthen param "insn" from rtx to
24956         rtx_insn *.
24957         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
24958         invoking find_call_stack_args, since this is guarded by
24959         CALL_P (insn).
24960         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
24961         rtx_insn *; we know this is an insn since this was called by
24962         mark_nonreg_stores.
24963         (mark_nonreg_stores_2): Likewise.
24964         (mark_nonreg_stores): Strengthen param "insn" from rtx to
24965         rtx_insn *.
24966         (find_call_stack_args): Strengthen param "call_insn" from rtx to
24967         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
24968         to rtx_insn *.
24969         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
24970         from rtx to rtx_insn *.
24971         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
24972         "next", "ref_insn".
24973         (delete_unmarked_insns): Likewise for locals "insn", "next".
24974         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
24975         (mark_reg_dependencies): Likewise for param "insn".
24976         (rest_of_handle_ud_dce): Likewise for local "insn".
24977         (word_dce_process_block): Likewise.
24978         (dce_process_block): Likewise.
24979
24980 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24981
24982         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
24983         from rtx to rtx_insn *.
24984         (struct change_cc_mode_args): Likewise for field "insn".
24985         (this_insn): Strengthen from rtx to rtx_insn *.
24986         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
24987         with insn.
24988         (validate_canon_reg): Strengthen param "insn" from rtx to
24989         rtx_insn *.
24990         (canon_reg): Likewise.
24991         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
24992         dealing with insn.
24993         (record_jump_equiv): Strengthen param "insn" from rtx to
24994         rtx_insn *.
24995         (try_back_substitute_reg): Likewise, also for locals "prev",
24996         "bb_head".
24997         (find_sets_in_insn): Likewise for param "insn".
24998         (canonicalize_insn): Likewise.
24999         (cse_insn): Likewise.  Add a checked cast.
25000         (invalidate_from_clobbers): Likewise for param "insn".
25001         (invalidate_from_sets_and_clobbers): Likewise.
25002         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
25003         dealing with insn.
25004         (cse_prescan_path): Strengthen local "insn" from rtx to
25005         rtx_insn *.
25006         (cse_extended_basic_block): Likewise for locals "insn" and
25007         "prev_insn".
25008         (cse_main): Likewise for param "f".
25009         (check_for_label_ref): Likewise for local "insn".
25010         (set_live_p): Likewise for second param ("insn").
25011         (insn_live_p): Likewise for first param ("insn") and for local
25012         "next".
25013         (cse_change_cc_mode_insn): Likewise for first param "insn".
25014         (cse_change_cc_mode_insns): Likewise for first and second params
25015         "start" and "end".
25016         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
25017         and "end".
25018         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
25019         "cc_src_insn".
25020
25021 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25022             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25023             Anna Tikhonova  <anna.tikhonova@intel.com>
25024             Ilya Tocar  <ilya.tocar@intel.com>
25025             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25026             Ilya Verbin  <ilya.verbin@intel.com>
25027             Kirill Yukhin  <kirill.yukhin@intel.com>
25028             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25029
25030         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
25031         New.
25032         * config/i386/sse.md
25033         (define_mode_iterator VI248_AVX2): Delete.
25034         (define_mode_iterator VI2_AVX2_AVX512BW): New.
25035         (define_mode_iterator VI48_AVX2): Ditto.
25036         (define_insn <shift_insn><mode>3): Delete.
25037         (define_insn "<shift_insn><mode>3<mask_name>" with
25038         VI2_AVX2_AVX512BW): New.
25039         (define_insn "<shift_insn><mode>3<mask_name>" with
25040         VI48_AVX2): Ditto.
25041
25042 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25043             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25044             Anna Tikhonova  <anna.tikhonova@intel.com>
25045             Ilya Tocar  <ilya.tocar@intel.com>
25046             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25047             Ilya Verbin  <ilya.verbin@intel.com>
25048             Kirill Yukhin  <kirill.yukhin@intel.com>
25049             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25050
25051         * config/i386/sse.md
25052         (define_mode_iterator VI4F_BRCST32x2): New.
25053         (define_mode_attr 64x2_mode): Ditto.
25054         (define_mode_attr 32x2mode): Ditto.
25055         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
25056         with VI4F_BRCST32x2): Ditto.
25057         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
25058         with V16FI mode iterator): Ditto.
25059         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25060         with V16FI): Ditto.
25061         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25062         with VI8F_BRCST64x2): Ditto.
25063
25064 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25065             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25066             Anna Tikhonova  <anna.tikhonova@intel.com>
25067             Ilya Tocar  <ilya.tocar@intel.com>
25068             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25069             Ilya Verbin  <ilya.verbin@intel.com>
25070             Kirill Yukhin  <kirill.yukhin@intel.com>
25071             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25072
25073         * config/i386/sse.md
25074         (define_mode_iterator VI8_AVX512VL): New.
25075         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
25076
25077 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
25078
25079         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
25080         (define_mode_iterator V48_AVX512VL): New.
25081         (define_mode_iterator V12_AVX512VL): Ditto.
25082         (define_insn <avx512>_load<mode>_mask): Split into two similar
25083         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
25084         Refactor output template.
25085         (define_insn "<avx512>_store<mode>_mask"): Ditto.
25086
25087 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25088
25089         * cprop.c (struct occr): Strengthen field "insn" from rtx to
25090         rtx_insn *.
25091         (reg_available_p): Likewise for param "insn".
25092         (insert_set_in_table): Likewise.
25093         (hash_scan_set): Likewise.
25094         (hash_scan_insn): Likewise.
25095         (make_set_regs_unavailable): Likewise.
25096         (compute_hash_table_work): Likewise for local "insn".
25097         (reg_not_set_p): Strengthen param "insn" from const_rtx to
25098         const rtx_insn *.
25099         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
25100         (try_replace_reg): Likewise.
25101         (find_avail_set): Likewise.
25102         (cprop_jump): Likewise for params "setcc", "jump".
25103         (constprop_register): Likewise for param "insn".
25104         (cprop_insn): Likewise.
25105         (do_local_cprop): Likewise.
25106         (local_cprop_pass): Likewise for local "insn".
25107         (bypass_block): Likewise for params "setcc" and "jump".
25108         (bypass_conditional_jumps): Likewise for locals "setcc" and
25109         "insn".
25110         (one_cprop_pass): Likewise for local "insn".
25111
25112 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25113
25114         * compare-elim.c (struct comparison_use): Strengthen field "insn"
25115         from rtx to rtx_insn *.
25116         (struct comparison): Likewise, also for field "prev_clobber".
25117         (conforming_compare): Likewise for param "insn".
25118         (arithmetic_flags_clobber_p): Likewise.
25119         (find_flags_uses_in_insn): Likewise.
25120         (find_comparison_dom_walker::before_dom_children): Likewise for
25121         locals "insn", "next", "last_clobber".
25122         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
25123
25124 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25125
25126         * combine-stack-adj.c (struct csa_reflist): Strengthen field
25127         "insn" from rtx to rtx_insn *.
25128         (single_set_for_csa): Likewise for param "insn".
25129         (record_one_stack_ref): Likewise.
25130         (try_apply_stack_adjustment): Likewise.
25131         (struct record_stack_refs_data): Likewise for field "insn".
25132         (maybe_move_args_size_note): Likewise for params "last" and "insn".
25133         (prev_active_insn_bb): Likewise for return type and param "insn".
25134         (next_active_insn_bb): Likewise.
25135         (force_move_args_size_note): Likewise for params "prev" and "last"
25136         and locals "test", "next_candidate", "prev_candidate".
25137         (combine_stack_adjustments_for_block): Strengthen locals
25138         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
25139         rtx_insn *.
25140
25141 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25142
25143         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
25144         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
25145         (subst_insn): Likewise for this variable.
25146         (added_links_insn): Likewise.
25147         (struct insn_link): Likewise for field "insn".
25148         (alloc_insn_link): Likewise for param "insn".
25149         (struct undobuf): Likewise for field "other_insn".
25150         (find_single_use): Likewise for param "insn" and local "next".
25151         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
25152         (delete_noop_moves): Likewise for locals "insn", "next".
25153         (create_log_links): Likewise for locals "insn", "use_insn".
25154         Strengthen local "next_use" from rtx * to rtx_insn **.
25155         (insn_a_feeds_b): Likewise for params "a", "b".
25156         (combine_instructions): Likewise for param "f" and locals "insn",
25157         "next", "prev", "first", "last_combined_insn", "link", "link1",
25158         "temp".  Replace use of NULL_RTX with NULL when referring to
25159         insns.
25160         (setup_incoming_promotions): Likewise for param "first"
25161         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
25162         (can_combine_p): Likewise for params "insn", "i3", "pred",
25163         "pred2", "succ", "succ2" and for local "p".
25164         (combinable_i3pat): Likewise for param "i3".
25165         (cant_combine_insn_p): Likewise for param "insn".
25166         (likely_spilled_retval_p): Likewise.
25167         (adjust_for_new_dest): Likewise.
25168         (update_cfg_for_uncondjump): Likewise, also for local "insn".
25169         (try_combine): Likewise for return type and for params "i3", "i2",
25170         "i1", "i0", "last_combined_insn", and for locals "insn",
25171         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
25172         "i0_insn".  Eliminate local "tem" in favor of new locals
25173         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
25174         checked cast for now to rtx_insn * on the return type of
25175         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
25176         insns.
25177         (find_split_point): Strengthen param "insn" from rtx to
25178         rtx_insn *.
25179         (simplify_set): Likewise for local "other_insn".
25180         (recog_for_combine): Likewise for param "insn".
25181         (record_value_for_reg): Likewise.
25182         (record_dead_and_set_regs_1): Likewise for local
25183         "record_dead_insn".
25184         (record_dead_and_set_regs): Likewise for param "insn".
25185         (record_promoted_value): Likewise.
25186         (check_promoted_subreg): Likewise.
25187         (get_last_value_validate): Likewise.
25188         (reg_dead_at_p): Likewise.
25189         (move_deaths): Likewise for param "to_insn".
25190         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
25191         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
25192         in favor of new locals "tem_note" and "tem_insn", the latter being
25193         an rtx_insn *.
25194         (distribute_links): Strengthen locals "place", "insn" from rtx to
25195         rtx_insn *.
25196
25197 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25198
25199         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
25200         than a const_rtx.
25201         (can_delete_label_p): Require a const rtx_code_label * rather than
25202         a const_rtx.
25203         (delete_insn): Add checked cast to rtx_code_label * when we know
25204         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
25205         rtx to rtx_insn *.
25206         (delete_insn_chain): Strengthen locals "prev" and "current" from
25207         rtx to rtx_insn *.  Add a checked cast when assigning from
25208         "finish" (strengthening the params will come later).  Add a
25209         checked cast to rtx_note * in region where we know
25210         NOTE_P (current).
25211         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
25212         rtx_insn *.
25213         (compute_bb_for_insn): Likewise.
25214         (free_bb_for_insn): Likewise for local "insn".
25215         (compute_bb_for_insn): Likewise.
25216         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
25217         local "insn" from rtx to rtx_insn *
25218         (flow_active_insn_p): Require a const rtx_insn * rather than a
25219         const_rtx.
25220         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
25221         rtx_insn *.
25222         (can_fallthru): Likewise for locals "insn" and "insn2".
25223         (bb_note): Likewise for local "note".
25224         (first_insn_after_basic_block_note): Likewise for local "note" and
25225         for return type.
25226         (rtl_split_block): Likewise for locals "insn" and "next".
25227         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
25228         "end".
25229         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
25230         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
25231         "prev", "tmp".
25232         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
25233         them), "kill_from", "barrier", "new_insn".
25234         (patch_jump_insn): Likewise for params "insn", "old_label".
25235         (redirect_branch_edge): Likewise for locals "old_label", "insn".
25236         (force_nonfallthru_and_redirect): Likewise for locals "insn",
25237         "old_label", "new_label".
25238         (rtl_tidy_fallthru_edge): Likewise for local "q".
25239         (rtl_split_edge): Likewise for locals "before", "last".
25240         (commit_one_edge_insertion): Likewise for locals "before",
25241         "after", "insns", "tmp", "last", adding a checked cast where
25242         currently necessary.
25243         (commit_edge_insertions): Likewise.
25244         (rtl_dump_bb): Likewise for locals "insn", "last".
25245         (print_rtl_with_bb): Likewise for local "x".
25246         (rtl_verify_bb_insns): Likewise for local "x".
25247         (rtl_verify_bb_pointers): Likewise for local "insn".
25248         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
25249         "head", "end".
25250         (rtl_verify_fallthru): Likewise for local "insn".
25251         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
25252         (purge_dead_edges): Likewise for local "insn".
25253         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
25254         (skip_insns_after_block): Likewise for return type and for locals
25255         "insn", "last_insn", "next_head", "prev".
25256         (record_effective_endpoints): Likewise for locals "next_insn",
25257         "insn", "end".
25258         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
25259         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
25260         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
25261         (duplicate_insn_chain): For now, add checked cast from rtx to
25262         rtx_insn * when returning insn.
25263         (cfg_layout_duplicate_bb): Likewise for local "insn".
25264         (cfg_layout_delete_block): Likewise for locals "insn", "next",
25265         "prev", "remaints".
25266         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
25267         (rtl_block_empty_p): Likewise.
25268         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
25269         "split_point", "last".
25270         (rtl_block_ends_with_call_p): Likewise for local "insn".
25271         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
25272         const rtx_insn *.
25273         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
25274         "split_at_insn" from rtx to rtx_insn *.
25275         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
25276         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
25277         to const rtx_insn *.
25278         (rtl_account_profile_record): Likewise.
25279
25280 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25281
25282         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
25283         rtx to rtx_insn *.
25284         (average_num_loop_insns): Likewise.
25285         (init_set_costs): Likewise for local "seq".
25286         (seq_cost): Likewise for param "seq", from const_rtx to const
25287         rtx_insn *.
25288
25289 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25290
25291         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
25292         rtx to rtx_insn *.
25293
25294 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25295
25296         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
25297         "f1" and "f2" from rtx * to rtx_insn **.
25298         (flow_find_head_matching_sequence): Likewise.
25299
25300         * cfgcleanup.c (try_simplify_condjump): Strengthen local
25301         "cbranch_insn" from rtx to rtx_insn *.
25302         (thread_jump): Likewise for local "insn".
25303         (try_forward_edges): Likewise for local "last".
25304         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
25305         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
25306         "real_b_end".
25307         (can_replace_by): Likewise for params "i1", "i2".
25308         (old_insns_match_p): Likewise.
25309         (merge_notes): Likewise.
25310         (walk_to_nondebug_insn): Likewise for param "i1".
25311         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
25312         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
25313         "afterlast1", "afterlast2" from rtx to rtx_insn *.
25314         (flow_find_head_matching_sequence): Strengthen params "f1" and
25315         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
25316         "last1", "last2", "beforelast1", "beforelast2" from rtx to
25317         rtx_insn *.
25318         (outgoing_edges_match): Likewise for locals "last1", "last2".
25319         (try_crossjump_to_edge): Likewise for local "insn".
25320         Replace call to for_each_rtx with for_each_rtx_in_insn.
25321
25322         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
25323         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
25324         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
25325         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
25326         (try_optimize_cfg): Strengthen local "last" from rtx to
25327         rtx_insn *.
25328         (delete_dead_jumptables): Likewise for locals "insn", "next",
25329         "label".
25330
25331         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
25332         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
25333         "rtx else_first_tail", to reflect the basic-block.h changes above.
25334
25335 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25336
25337         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
25338         rtx_insn *.
25339         (purge_dead_tablejump_edges): Likewise.
25340         (find_bb_boundaries): Likewise for locals "insn", "end",
25341         "flow_transfer_insn".
25342
25343 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25344
25345         * caller-save.c (save_call_clobbered_regs): Strengthen locals
25346         "ins" and "prev" from rtx to rtx_insn *.
25347
25348 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25349
25350         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
25351         rtx_insn *.
25352         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
25353         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
25354         "scan_start".
25355         (load_register_parameters): Likewise for local "before_arg".
25356         (check_sibcall_argument_overlap): Likewise for param "insn".
25357         (expand_call): Likewise for locals "normal_call_insns",
25358         "tail_call_insns", "insns", "before_call", "after_args",
25359         "before_arg", "last", "prev".  Strengthen one of the "last" from
25360         rtx to rtx_call_insn *.
25361         (fixup_tail_calls): Strengthen local "insn" from rtx to
25362         rtx_insn *.
25363         (emit_library_call_value_1): Likewise for locals "before_call" and
25364         "last".
25365
25366 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25367
25368         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
25369         and "last" from rtx to rtx_insn *.
25370         (expand_builtin_nonlocal_goto): Likewise for local "insn".
25371         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
25372         rtx_call_insn *.
25373         (expand_errno_check): Strengthen local "lab" from rtx to
25374         rtx_code_label *.
25375         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
25376         rtx_insn *.
25377         (expand_builtin_mathfn_2): Likewise.
25378         (expand_builtin_mathfn_ternary): Likewise.
25379         (expand_builtin_mathfn_3): Likewise.
25380         (expand_builtin_interclass_mathfn): Likewise for local "last".
25381         (expand_builtin_int_roundingfn): Likewise for local "insns".
25382         (expand_builtin_int_roundingfn_2): Likewise.
25383         (expand_builtin_strlen): Likewise for local "before_strlen".
25384         (expand_builtin_strncmp): Likewise for local "seq".
25385         (expand_builtin_signbit): Likewise for local "last".
25386         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
25387         from rtx to rtx_code_label *.
25388         (expand_stack_restore):  Strengthen local "prev" from rtx to
25389         rtx_insn *.
25390
25391 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25392
25393         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
25394         to rtx_insn *.
25395         (struct btr_def_s): Likewise.
25396         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
25397         const rtx_insn *.
25398         (add_btr_def): Likewise.
25399         (new_btr_user): Likewise.
25400         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
25401         rtx to rtx_insn *.
25402         (link_btr_uses): Likewise.
25403         (move_btr_def): Likewise for locals "insp", "old_insn",
25404         "new_insn".  Add checked cast to rtx_insn * for now on result of
25405         gen_move_insn.
25406         (can_move_up): Strengthen param "insn" from const_rtx to
25407         const rtx_insn *.
25408
25409 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25410
25411         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
25412         rtx_insn *.
25413         (get_uncond_jump_length): Likewise for locals "label", "jump".
25414         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
25415         "jump", "insn".
25416         (add_labels_and_missing_jumps): Likewise for local "new_jump".
25417         (fix_up_fall_thru_edges): Likewise for local "old_jump".
25418         (find_jump_block): Likewise for local "insn".
25419         (fix_crossing_conditional_branches): Likewise for locals
25420         "old_jump", "new_jump".
25421         (fix_crossing_unconditional_branches): Likewise for locals
25422         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
25423         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
25424
25425 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25426
25427         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
25428         rtx to rtx_insn *.
25429         (struct mem_insn): Likewise for field "insn".
25430         (reg_next_use): Strengthen from rtx * to rtx_insn **.
25431         (reg_next_inc_use): Likewise.
25432         (reg_next_def): Likewise.
25433         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
25434         from rtx to rtx_insn *.
25435         (move_insn_before): Likewise for param "next_insn" and local "insns".
25436         (attempt_change): Likewise for local "mov_insn".
25437         (try_merge): Likewise for param "last_insn".
25438         (get_next_ref): Likewise for return type and local "insn".
25439         Strengthen param "next_array" from rtx * to rtx_insn **.
25440         (parse_add_or_inc): Strengthen param "insn" from rtx to
25441         rtx_insn *.
25442         (find_inc): Likewise for locals "insn" and "other_insn" (three of
25443         the latter).
25444         (merge_in_block): Likewise for locals "insn", "curr",
25445         "other_insn".
25446         (pass_inc_dec::execute): Update allocations of the arrays to
25447         reflect the stronger types.
25448
25449 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25450
25451         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
25452         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
25453         from rtx to rtx_code_label *.
25454
25455 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25456
25457         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
25458         to rtx_insn *.
25459
25460 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25461
25462         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
25463         generated a warning and prevented bootstrapping the compiler.
25464
25465 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25466
25467         * rtl.h (delete_related_insns): Strengthen return type from rtx to
25468         rtx_insn *.
25469
25470         * jump.c (delete_related_insns): Likewise, also for locals "next"
25471         and "prev".
25472
25473 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25474
25475         * genautomata.c (output_internal_insn_latency_func): When writing
25476         the function "internal_insn_latency" to insn-automata.c,
25477         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
25478         allowing the optional guard function of (define_bypass) clauses to
25479         expect a pair of rtx_insn *, rather than a pair of rtx.
25480         (output_insn_latency_func): When writing the function
25481         "insn_latency", add an "uncast_" prefix to params "insn" and
25482         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
25483         using checked casts from the params, thus enabling the above
25484         change to the generated "internal_insn_latency" function.
25485
25486 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
25487
25488         PR tree-optimization/62091
25489         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
25490         handle correctly arrays.
25491         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
25492         inheritance binfos.
25493         (record_known_type): Walk into inner type.
25494         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
25495         condition on no type changes.
25496
25497 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25498
25499         * genattrtab.c (write_attr_get): Within the generated get_attr_
25500         functions, rename param "insn" to "uncast_insn" and reintroduce
25501         "insn" as an local rtx_insn * using a checked cast, so that "insn"
25502         is an rtx_insn * within insn-attrtab.c
25503
25504 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25505
25506         * output.h (peephole): Strengthen return type from rtx to
25507         rtx_insn *.
25508         * rtl.h (delete_for_peephole): Likewise for both params.
25509         * genpeep.c (main): In generated "peephole" function, strengthen
25510         return type and local "insn" from rtx to rtx_insn *.  For now,
25511         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
25512         rtx_insn *, with a checked cast.
25513         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
25514         locals "insn", "next", "prev" from rtx to rtx_insn *.
25515
25516 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
25517
25518         PR tree-optimization/62112
25519         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
25520         * gimple-iterator.h (gsi_replace): Return bool.
25521         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
25522         moved from ref_may_alias_global_p.
25523         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
25524         New overloads.
25525         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
25526         (stmt_kills_ref_p_1): Rename...
25527         (stmt_kills_ref_p): ... to this.
25528         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
25529         stmt_kills_ref_p): Declare.
25530         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
25531         Move the self-assignment case...
25532         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
25533
25534 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25535
25536         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
25537
25538         * emit-rtl.c (try_split): Likewise, also for locals "before" and
25539         "after".  For now, don't strengthen param "trial", which requires
25540         adding checked casts when returning it.
25541
25542 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25543
25544         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
25545         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
25546         "var_location" hook from rtx to rtx_insn *.
25547         (debug_nothing_rtx): Delete in favor of...
25548         (debug_nothing_rtx_code_label): New prototype.
25549         (debug_nothing_rtx_rtx): Delete unused prototype.
25550         (debug_nothing_rtx_insn): New prototype.
25551
25552         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
25553         invoking debug_hooks->var_location (in two places, one in a NOTE
25554         case of a switch statement, the other guarded by a CALL_P
25555         conditional.  Add checked cast to rtx_code_label * when invoking
25556         debug_hooks->label (within CODE_LABEL case of switch statement).
25557
25558         * dbxout.c (dbx_debug_hooks): Update "label" hook from
25559         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
25560         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
25561         (xcoff_debug_hooks): Likewise.
25562         * debug.c (do_nothing_debug_hooks): Likewise.
25563         (debug_nothing_rtx): Delete in favor of...
25564         (debug_nothing_rtx_insn): New function.
25565         (debug_nothing_rtx_rtx): Delete unused function.
25566         (debug_nothing_rtx_code_label): New function.
25567         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
25568         debug_nothing_rtx to debug_nothing_rtx_code_label.
25569         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
25570         to rtx_insn *.
25571         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
25572         debug_nothing_rtx to debug_nothing_rtx_insn.
25573         (sdbout_label): Strengthen param "insn" from rtx to
25574         rtx_code_label *.
25575         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
25576         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
25577         "var_location" hook from debug_nothing_rtx to
25578         debug_nothing_rtx_insn.
25579
25580 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25581
25582         * recog.h (insn_output_fn): Update this function typedef to match
25583         the changes below to the generated output functions, strengthening
25584         the 2nd param from rtx to rtx_insn *.
25585
25586         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
25587         insn when invoking an output function, to match the new signature
25588         of insn_output_fn with a stronger second param.
25589
25590         * genconditions.c (write_header): In the generated code for
25591         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
25592         to match the other changes in this patch.
25593
25594         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
25595         the generated "gen_" functions from rtx to rtx_insn * within their
25596         implementations.
25597
25598         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
25599         the subfunctions within the generated "recog_", "split", "peephole2"
25600         function trees from rtx to rtx_insn *.  For now, the top-level
25601         generated functions ("recog", "split", "peephole2") continue to
25602         take a plain rtx for "insn", to avoid introducing dependencies on
25603         other patches.  Rename this 2nd param from "insn" to
25604         "uncast_insn", and reintroduce "insn" as a local variable of type
25605         rtx_insn *, initialized at the top of the generated function with
25606         a checked cast on "uncast_insn".
25607         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
25608         the generated "gen_" functions from rtx to rtx_insn * within their
25609         prototypes.
25610
25611         * genoutput.c (process_template): Strengthen the 2nd param within
25612         the generated "output_" functions "insn" from rtx to rtx_insn *.
25613
25614 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
25615
25616         * tree-profile.c (tree_profiling): Skip external functions
25617         when doing coverage instrumentation.
25618         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
25619
25620 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25621
25622         * config/rs6000/altivec.h (vec_cpsgn): New #define.
25623         (vec_mergee): Likewise.
25624         (vec_mergeo): Likewise.
25625         (vec_cntlz): Likewise.
25626         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
25627         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
25628         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
25629         VMRGEW, and VMRGOW.
25630         * doc/extend.texi: Document various forms of vec_cpsgn,
25631         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
25632         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
25633         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
25634         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
25635         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
25636
25637 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25638
25639         * config/rs6000/rs6000.c (context.h): New include.
25640         (tree-pass.h): Likewise.
25641         (make_pass_analyze_swaps): New decl.
25642         (rs6000_option_override): Register pass_analyze_swaps.
25643         (swap_web_entry): New subsclass of web_entry_base (df.h).
25644         (special_handling_values): New enum.
25645         (union_defs): New function.
25646         (union_uses): Likewise.
25647         (insn_is_load_p): Likewise.
25648         (insn_is_store_p): Likewise.
25649         (insn_is_swap_p): Likewise.
25650         (rtx_is_swappable_p): Likewise.
25651         (insn_is_swappable_p): Likewise.
25652         (chain_purpose): New enum.
25653         (chain_contains_only_swaps): New function.
25654         (mark_swaps_for_removal): Likewise.
25655         (swap_const_vector_halves): Likewise.
25656         (adjust_subreg_index): Likewise.
25657         (permute_load): Likewise.
25658         (permute_store): Likewise.
25659         (handle_special_swappables): Likewise.
25660         (replace_swap_with_copy): Likewise.
25661         (dump_swap_insn_table): Likewise.
25662         (rs6000_analyze_swaps): Likewise.
25663         (pass_data_analyze_swaps): New pass_data.
25664         (pass_analyze_swaps): New rtl_opt_pass.
25665         (make_pass_analyze_swaps): New function.
25666         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
25667
25668 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25669
25670         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
25671         type from rtx to rtx_insn *.
25672         (create_copy_of_insn_rtx): Likewise.
25673         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
25674         (create_copy_of_insn_rtx): Likewise, also for local "res".
25675
25676 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25677
25678         * rtl.h (find_first_parameter_load): Strengthen return type from
25679         rtx to rtx_insn *.
25680         * rtlanal.c (find_first_parameter_load): Strengthen return type
25681         from rtx to rtx_insn *.  Add checked cast for now, to postpone
25682         strengthening the params.
25683
25684 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25685
25686         PR fortran/44054
25687         * diagnostic.c: Set default caret.
25688         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
25689         line is needed.
25690         * diagnostic.h (struct diagnostic_context):
25691
25692 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25693
25694         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
25695         (sel_bb_head): Strengthen return type insn_t (currently just an
25696         rtx) to rtx_insn *.
25697         (sel_bb_end): Likewise.
25698
25699         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
25700         (sel_bb_head): Strengthen return type and local "head" from
25701         insn_t (currently just an rtx) to rtx_insn *.
25702         (sel_bb_end): Likewise for return type.
25703         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
25704         working with insn.
25705
25706 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25707
25708         * basic-block.h (get_last_bb_insn): Strengthen return type from
25709         rtx to rtx_insn *.
25710         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
25711         end".
25712
25713 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25714
25715         PR fortran/44054
25716         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
25717         to here ...
25718         (diagnostic_report_diagnostic): ... from here.
25719         * toplev.c (general_init): Move code to c-family.
25720
25721 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25722
25723         * df.h (web_entry_base): Replace existing struct web_entry with a
25724         new class web_entry_base with only the predecessor member.
25725         (unionfind_root): Remove declaration and move to class member.
25726         (unionfind_union): Remove declaration and move to friend
25727         function.
25728         (union_defs): Remove declaration.
25729         * web.c (web_entry_base::unionfind_root): Modify to be member
25730         function and adjust accessors.
25731         (unionfind_union): Modify to be friend function and adjust
25732         accessors.
25733         (web_entry): New subclass of web_entry_base containing the reg
25734         member.
25735         (union_match_dups): Modify for struct -> class changes.
25736         (union_defs): Likewise.
25737         (entry_register): Likewise.
25738         (pass_web::execute): Likewise.
25739
25740 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
25741
25742         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
25743         builtin define __VEC_ELEMENT_REG_ORDER__.
25744
25745 2014-08-20  Martin Jambor  <mjambor@suse.cz>
25746             Wei Mi  <wmi@google.com>
25747
25748         PR ipa/60449
25749         PR middle-end/61776
25750         * tree-ssa-operands.c (update_stmt_operands): Remove
25751         MODIFIED_NORETURN_CALLS.
25752         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
25753         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
25754         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
25755         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
25756         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
25757         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
25758         (gimple_call_set_ctrl_altering): New func.
25759         (gimple_call_ctrl_altering_p): Ditto.
25760         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
25761         (make_blocks): Use gimple_call_initialize_ctrl_altering.
25762         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
25763         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
25764         remove MODIFIED_NORETURN_CALLS.
25765
25766 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
25767
25768         * coverage.c (coverage_compute_profile_id): Return non-0;
25769         also handle symbols with unique name.
25770         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
25771
25772 2014-08-20  Steve Ellcey  <sellcey@mips.com>
25773
25774         PR middle-end/49191
25775         * doc/sourcebuild.texi (non_strict_align): New.
25776
25777 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
25778
25779         * cgraphunit.c (ipa_passes, compile): Reshedule
25780         symtab_remove_unreachable_nodes passes; update comments.
25781         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
25782         TODO_remove_functions before the pass; the functions ought to be
25783         already removed.
25784         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
25785         TODO_remove_functions.
25786         * passes.c (pass_data_early_local_passes): Do not schedule function
25787         removal.
25788         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
25789
25790 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25791
25792         PR c/59304
25793         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
25794         before setting the option.
25795         * diagnostic.c (diagnostic_classify_diagnostic): Record
25796         command-line status.
25797
25798 2014-08-20  Richard Biener  <rguenther@suse.de>
25799
25800         PR lto/62190
25801         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
25802         to build uint{16,32,64}_type_node.
25803
25804 2014-08-20  Terry Guo  <terry.guo@arm.com>
25805
25806         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
25807         with immediate_operand.
25808
25809 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
25810
25811         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
25812         "insn" from an as_a to a safe_as_a, for the case when "insn" is
25813         NULL.
25814
25815 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25816
25817         PR preprocessor/51303
25818         * incpath.c (remove_duplicates): Use cpp_warning.
25819
25820 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25821
25822         PR c/60975
25823         PR c/53063
25824         * doc/options.texi (CPP): Document it.
25825         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
25826         * optc-gen.awk: Handle CPP.
25827         * opth-gen.awk: Likewise.
25828
25829 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25830
25831         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
25832         rtx_insn *.
25833         (duplicate_insn_chain): Likewise.
25834         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
25835         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
25836         checked cast for now (until we can strengthen the params in the
25837         same way).
25838         (duplicate_insn_chain): Likewise.
25839
25840 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25841
25842         * rtl.h (next_cc0_user): Strengthen return type from rtx to
25843         rtx_insn *.
25844         (prev_cc0_setter): Likewise.
25845
25846         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
25847         rtx_insn *, adding checked casts for now as necessary.
25848         (prev_cc0_setter): Likewise.
25849
25850 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25851
25852         * expr.h (emit_move_insn): Strengthen return type from rtx to
25853         rtx_insn *.
25854         (emit_move_insn_1): Likewise.
25855         (emit_move_complex_push): Likewise.
25856         (emit_move_complex_parts): Likewise.
25857
25858         * expr.c (emit_move_via_integer): Strengthen return type from rtx
25859         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
25860         with insns.
25861         (emit_move_complex_push): Strengthen return type from rtx to
25862         rtx_insn *.
25863         (emit_move_complex): Likewise, also for local "ret".
25864         (emit_move_ccmode): Likewise.
25865         (emit_move_multi_word): Likewise for return type and locals
25866         "last_insn", "seq".
25867         (emit_move_insn_1): Likewise for return type and locals "result",
25868         "ret".
25869         (emit_move_insn): Likewise for return type and local "last_insn".
25870         (compress_float_constant): Likewise.
25871
25872 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25873
25874         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
25875         from rtx to rtx_insn *.
25876
25877         * rtl.h (emit_insn_before): Likewise.
25878         (emit_insn_before_noloc): Likewise.
25879         (emit_insn_before_setloc): Likewise.
25880         (emit_jump_insn_before): Likewise.
25881         (emit_jump_insn_before_noloc): Likewise.
25882         (emit_jump_insn_before_setloc): Likewise.
25883         (emit_call_insn_before): Likewise.
25884         (emit_call_insn_before_noloc): Likewise.
25885         (emit_call_insn_before_setloc): Likewise.
25886         (emit_debug_insn_before): Likewise.
25887         (emit_debug_insn_before_noloc): Likewise.
25888         (emit_debug_insn_before_setloc): Likewise.
25889         (emit_label_before): Likewise.
25890         (emit_insn_after): Likewise.
25891         (emit_insn_after_noloc): Likewise.
25892         (emit_insn_after_setloc): Likewise.
25893         (emit_jump_insn_after): Likewise.
25894         (emit_jump_insn_after_noloc): Likewise.
25895         (emit_jump_insn_after_setloc): Likewise.
25896         (emit_call_insn_after): Likewise.
25897         (emit_call_insn_after_noloc): Likewise.
25898         (emit_call_insn_after_setloc): Likewise.
25899         (emit_debug_insn_after): Likewise.
25900         (emit_debug_insn_after_noloc): Likewise.
25901         (emit_debug_insn_after_setloc): Likewise.
25902         (emit_label_after): Likewise.
25903         (emit_insn): Likewise.
25904         (emit_debug_insn): Likewise.
25905         (emit_jump_insn): Likewise.
25906         (emit_call_insn): Likewise.
25907         (emit_label): Likewise.
25908         (gen_clobber): Likewise.
25909         (emit_clobber): Likewise.
25910         (gen_use): Likewise.
25911         (emit_use): Likewise.
25912         (emit): Likewise.
25913
25914         (emit_barrier_before): Strengthen return type from rtx to
25915         rtx_barrier *.
25916         (emit_barrier_after): Likewise.
25917         (emit_barrier): Likewise.
25918
25919         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
25920         from rtx to rtx_insn *.  Add checked casts for now when converting
25921         "last" from rtx to rtx_insn *.
25922         (emit_insn_before_noloc): Likewise for return type.
25923         (emit_jump_insn_before_noloc): Likewise.
25924         (emit_call_insn_before_noloc): Likewise.
25925         (emit_debug_insn_before_noloc): Likewise.
25926         (emit_barrier_before): Strengthen return type and local "insn"
25927         from rtx to rtx_barrier *.
25928         (emit_label_before): Strengthen return type from rtx to
25929         rtx_insn *.  Add checked cast for now when returning param
25930         (emit_pattern_after_noloc): Strengthen return type from rtx to
25931         rtx_insn *.  Add checked casts for now when converting "last" from
25932         rtx to rtx_insn *.
25933         (emit_insn_after_noloc): Strengthen return type from rtx to
25934         rtx_insn *.
25935         (emit_jump_insn_after_noloc): Likewise.
25936         (emit_call_insn_after_noloc): Likewise.
25937         (emit_debug_insn_after_noloc): Likewise.
25938         (emit_barrier_after): Strengthen return type from rtx to
25939         rtx_barrier *.
25940         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
25941         Add checked cast for now when converting "label" from rtx to
25942         rtx_insn *.
25943         (emit_pattern_after_setloc): Strengthen return type from rtx to
25944         rtx_insn *.  Add checked casts for now when converting "last" from
25945         rtx to rtx_insn *.
25946         (emit_pattern_after): Strengthen return type from rtx to
25947         rtx_insn *.
25948         (emit_insn_after_setloc): Likewise.
25949         (emit_insn_after): Likewise.
25950         (emit_jump_insn_after_setloc): Likewise.
25951         (emit_jump_insn_after): Likewise.
25952         (emit_call_insn_after_setloc): Likewise.
25953         (emit_call_insn_after): Likewise.
25954         (emit_debug_insn_after_setloc): Likewise.
25955         (emit_debug_insn_after): Likewise.
25956         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
25957         when converting "last" from rtx to rtx_insn *.
25958         (emit_pattern_before): Strengthen return type from rtx to
25959         rtx_insn *.
25960         (emit_insn_before_setloc): Likewise.
25961         (emit_insn_before): Likewise.
25962         (emit_jump_insn_before_setloc): Likewise.
25963         (emit_jump_insn_before): Likewise.
25964         (emit_call_insn_before_setloc): Likewise.
25965         (emit_call_insn_before): Likewise.
25966         (emit_debug_insn_before_setloc): Likewise.
25967         (emit_debug_insn_before): Likewise.
25968         (emit_insn): Strengthen return type and locals "last", "insn",
25969         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
25970         within cases where we know we have an insn.
25971         (emit_debug_insn): Likewise.
25972         (emit_jump_insn): Likewise.
25973         (emit_call_insn): Strengthen return type and local "insn" from rtx
25974         to rtx_insn *.
25975         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
25976         a checked cast to rtx_insn * for now on "label".
25977         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
25978         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
25979         (emit_use): Likewise.
25980         (gen_use): Likewise, also for local "seq".
25981         (emit): Likewise for return type and local "insn".
25982         (rtx_insn): Likewise for return type and local "new_rtx".
25983
25984         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
25985         from rtx to rtx_barrier *.
25986
25987         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
25988         changed return type from rtx to rtx_insn *, we must update
25989         "emit_fn" type, and this in turn means updating...
25990         (frame_insn): ...this.  Strengthen return type from rtx to
25991         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
25992
25993 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25994
25995         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
25996         rtx to rtx_jump_table_data *.  Also for local.
25997         * rtl.h (emit_jump_table_data): Likewise.
25998
25999 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26000
26001         * basic-block.h (create_basic_block_structure): Strengthen third
26002         param "bb_note" from rtx to rtx_note *.
26003         * rtl.h (emit_note_before): Strengthen return type from rtx to
26004         rtx_note *.
26005         (emit_note_after): Likewise.
26006         (emit_note): Likewise.
26007         (emit_note_copy): Likewise.  Also, strengthen param similarly.
26008         * function.h (struct rtl_data): Strengthen field
26009         "x_stack_check_probe_note" from rtx to rtx_note *.
26010
26011         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
26012         from rtx to rtx_note *.
26013         * cfgrtl.c (create_basic_block_structure): Strengthen third param
26014         "bb_note" from rtx to rtx_note *.
26015         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
26016         when calling emit_note_copy.
26017         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
26018         rtx_note *.
26019         (emit_note_after): Likewise.
26020         (emit_note_before): Likewise.
26021         (emit_note_copy): Likewise.  Also, strengthen param similarly.
26022         (emit_note): Likewise.
26023         * except.c (emit_note_eh_region_end): Likewise for return type.
26024         Strengthen local "next" from rtx to rtx_insn *.
26025         (convert_to_eh_region_ranges): Strengthen local "note"
26026         from rtx to rtx_note *.
26027         * final.c (change_scope): Likewise.
26028         (reemit_insn_block_notes): Likewise, for both locals named "note".
26029         Also, strengthen local "insn" from rtx to rtx_insn *.
26030         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
26031         rtx to rtx_note *.
26032         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
26033         strengthen local "seq" from rtx to rtx_insn *.
26034         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
26035         to rtx_note *.
26036         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
26037         vec<rtx_note *>.
26038         (get_bb_note_from_pool): Strengthen return type from rtx to
26039         rtx_note *.
26040         (sel_create_basic_block): Strengthen local "new_bb_note" from
26041         insn_t to rtx_note *.
26042         * var-tracking.c (emit_note_insn_var_location): Strengthen local
26043         "note" from rtx to rtx_note *.
26044         (emit_notes_in_bb): Likewise.
26045
26046 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26047
26048         * function.h (struct rtl_data): Strengthen field
26049         "x_parm_birth_insn" from rtx to rtx_insn *.
26050         * function.c (struct assign_parm_data_all): Strengthen fields
26051         "first_conversion_insn" and "last_conversion_insn" from rtx to
26052         rtx_insn *.
26053
26054 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26055
26056         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
26057         to rtx_insn *; also for local "var_end_seq".
26058         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
26059         (maybe_cleanup_end_of_block): Likewise for param "last" and local
26060         "insn".
26061         (expand_gimple_cond): Likewise for locals "last2" and "last".
26062         (mark_transaction_restart_calls): Likewise for local "insn".
26063         (expand_gimple_stmt): Likewise for return type and locals "last"
26064         and "insn".
26065         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
26066         (avoid_complex_debug_insns): Likewise for param "insn".
26067         (expand_debug_locations): Likewise for locals "insn", "last",
26068         "prev_insn" and "insn2".
26069         (expand_gimple_basic_block): Likewise for local "last".
26070         (construct_exit_block): Likewise for locals "head", "end",
26071         "orig_end".
26072         (pass_expand::execute): Likewise for locals "var_seq",
26073         "var_ret_seq", "next".
26074
26075 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26076
26077         * asan.h (asan_emit_stack_protection): Strengthen return type from
26078         rtx to rtx_insn *.
26079         * asan.c (asan_emit_stack_protection): Likewise.  Add local
26080         "insns" to hold the return value.
26081
26082 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26083
26084         * basic-block.h (bb_note): Strengthen return type from rtx to
26085         rtx_note *.
26086         * sched-int.h (bb_note): Likewise.
26087         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
26088
26089 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26090
26091         * rtl.h (make_insn_raw): Strengthen return type from rtx to
26092         rtx_insn *.
26093
26094         * emit-rtl.c (make_insn_raw): Strengthen return type and local
26095         "insn" from rtx to rtx_insn *.
26096         (make_debug_insn_raw): Strengthen return type from rtx to
26097         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
26098         (make_jump_insn_raw):  Strengthen return type from rtx to
26099         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
26100         (make_call_insn_raw):  Strengthen return type from rtx to
26101         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
26102         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
26103         callback from rtx to rtx_insn *; likewise for local "insn" and
26104         "next", adding a checked cast to rtx_insn in the relevant cases of
26105         the switch statement.
26106         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
26107         callback from rtx to rtx_insn *.
26108         (emit_pattern_after_setloc): Likewise.
26109         (emit_pattern_after): Likewise.
26110         (emit_pattern_before_setloc): Likewise.
26111         (emit_pattern_before): Likewise.
26112
26113 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26114
26115         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
26116         rtx_call_insn *.
26117         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
26118         accepting an rtx_insn *.
26119         (last_call_insn): Strengthen return type from rtx to
26120         rtx_call_insn *.
26121
26122 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26123
26124         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
26125         "insns" from rtx to rtx_insn *.
26126         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
26127         locals "insn" and "prev".
26128
26129 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26130
26131         * rtl.h (tablejump_p): Strengthen third param from rtx * to
26132         rtx_jump_table_data **.
26133
26134         * cfgbuild.c (make_edges): Introduce local "table", using it in
26135         place of "tmp" for jump table data.
26136         (find_bb_boundaries): Strengthen local "table" from rtx to
26137         rtx_jump_table_data *.
26138         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
26139         (outgoing_edges_match): Likewise for locals "table1" and "table2".
26140         (try_crossjump_to_edge): Likewise.
26141         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
26142         "table".
26143         (patch_jump_insn): Introduce local "table", using it in place of
26144         "tmp" for jump table data.
26145         (force_nonfallthru_and_redirect): Introduce local "table", so that
26146         call to tablejump_p can receive an rtx_jump_table_data **.  Update
26147         logic around the call to overwrite "note" appropriately if
26148         tablejump_p returns non-zero.
26149         (get_last_bb_insn): Introduce local "table", using it in place of
26150         "tmp" for jump table data.
26151         * dwarf2cfi.c (create_trace_edges): Likewise.
26152
26153         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
26154         from rtx to rtx_jump_table_data *.
26155         (create_fix_barrier): Strengthen local "tmp" from rtx to
26156         rtx_jump_table_data *.
26157         (arm_reorg): Likewise for local "table".
26158
26159         * config/s390/s390.c (s390_chunkify_start): Likewise.
26160
26161         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
26162
26163         * jump.c (delete_related_insns): Strengthen local "lab_next" from
26164         rtx to rtx_jump_table_data *.
26165
26166         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
26167         rtx_jump_table_data **.  Add a checked cast when writing through
26168         the pointer: we know there that local "table" is non-NULL and that
26169         JUMP_TABLE_DATA_P (table) holds.
26170         (label_is_jump_target_p): Introduce local "table", using it in
26171         place of "tmp" for jump table data.
26172
26173 2014-08-19  Marek Polacek  <polacek@redhat.com>
26174
26175         PR c++/62153
26176         * doc/invoke.texi: Document -Wbool-compare.
26177
26178 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26179
26180         * rtl.h (entry_of_function): Strengthen return type from rtx to
26181         rtx_insn *.
26182         * cfgrtl.c (entry_of_function): Likewise.
26183
26184 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26185
26186         * emit-rtl.h (get_insns): Strengthen return type from rtx to
26187         rtx_insn *, adding a checked cast for now.
26188         (get_last_insn): Likewise.
26189
26190 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26191
26192         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
26193         rtx_code_label *.
26194
26195         * emit-rtl.c (gen_label_rtx): Likewise.
26196
26197 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26198
26199         * rtl.h (previous_insn): Strengthen return type from rtx to
26200         rtx_insn *.
26201         (next_insn): Likewise.
26202         (prev_nonnote_insn): Likewise.
26203         (prev_nonnote_insn_bb): Likewise.
26204         (next_nonnote_insn): Likewise.
26205         (next_nonnote_insn_bb): Likewise.
26206         (prev_nondebug_insn): Likewise.
26207         (next_nondebug_insn): Likewise.
26208         (prev_nonnote_nondebug_insn): Likewise.
26209         (next_nonnote_nondebug_insn): Likewise.
26210         (prev_real_insn): Likewise.
26211         (next_real_insn): Likewise.
26212         (prev_active_insn): Likewise.
26213         (next_active_insn): Likewise.
26214
26215         * emit-rtl.c (next_insn): Strengthen return type from rtx to
26216         rtx_insn *, adding a checked cast.
26217         (previous_insn): Likewise.
26218         (next_nonnote_insn): Likewise.
26219         (next_nonnote_insn_bb): Likewise.
26220         (prev_nonnote_insn): Likewise.
26221         (prev_nonnote_insn_bb): Likewise.
26222         (next_nondebug_insn): Likewise.
26223         (prev_nondebug_insn): Likewise.
26224         (next_nonnote_nondebug_insn): Likewise.
26225         (prev_nonnote_nondebug_insn): Likewise.
26226         (next_real_insn): Likewise.
26227         (prev_real_insn): Likewise.
26228         (next_active_insn): Likewise.
26229         (prev_active_insn): Likewise.
26230
26231         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
26232         param "stepfunc" so that it returns an rtx_insn * rather than an
26233         rtx, to track the change to prev_nonnote_insn_bb, which is the
26234         only function this is called with.
26235         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
26236
26237 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
26238
26239         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
26240         assert.
26241
26242 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26243
26244         * coretypes.h (class rtx_debug_insn): Add forward declaration.
26245         (class rtx_nonjump_insn): Likewise.
26246         (class rtx_jump_insn): Likewise.
26247         (class rtx_call_insn): Likewise.
26248         (class rtx_jump_table_data): Likewise.
26249         (class rtx_barrier): Likewise.
26250         (class rtx_code_label): Likewise.
26251         (class rtx_note): Likewise.
26252
26253         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
26254         adding the invariant DEBUG_INSN_P (X).
26255         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
26256         the invariant NONJUMP_INSN_P (X).
26257         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
26258         the invariant JUMP_P (X).
26259         (class rtx_call_insn): New, a subclass of rtx_insn, adding
26260         the invariant CALL_P (X).
26261         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
26262         invariant JUMP_TABLE_DATA_P (X).
26263         (class rtx_barrier): New, a subclass of rtx_insn, adding the
26264         invariant BARRIER_P (X).
26265         (class rtx_code_label): New, a subclass of rtx_insn, adding
26266         the invariant LABEL_P (X).
26267         (class rtx_note): New, a subclass of rtx_insn, adding
26268         the invariant NOTE_P(X).
26269         (is_a_helper <rtx_debug_insn *>::test): New.
26270         (is_a_helper <rtx_nonjump_insn *>::test): New.
26271         (is_a_helper <rtx_jump_insn *>::test): New.
26272         (is_a_helper <rtx_call_insn *>::test): New.
26273         (is_a_helper <rtx_jump_table_data *>::test): New functions,
26274         overloaded for both rtx and rtx_insn *.
26275         (is_a_helper <rtx_barrier *>::test): New.
26276         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
26277         for both rtx and rtx_insn *.
26278         (is_a_helper <rtx_note *>::test): New.
26279
26280 2014-08-19  Marek Polacek  <polacek@redhat.com>
26281
26282         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
26283         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
26284         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
26285         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
26286
26287 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26288
26289         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
26290         rtx_insn *.  To help with transition, for now, convert from an
26291         access macro into a pair of functions: BND_TO, returning an
26292         rtx_insn *, and...
26293         (SET_BND_TO): New function, for use where BND_TO is used as an
26294         lvalue.
26295
26296         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
26297         SET_BND_TO.
26298         (BND_TO): New function, adding a checked cast.
26299         (SET_BND_TO): New function.
26300
26301         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
26302         SET_BND_TO.
26303         (compute_av_set_on_boundaries): Likewise.
26304
26305 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
26306
26307         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
26308         destination if it is used in source.
26309         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
26310         (*popcount<mode>2_falsedep_1): Likewise.
26311
26312 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
26313
26314         PR other/62168
26315         * configure.ac: Set install_gold_as_default to no first.
26316         * configure: Regenerated.
26317
26318 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26319
26320         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
26321         "note_list" field will eventually be an rtx_insn *.  To help with
26322         transition, for now, convert from an access macro into a pair of
26323         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
26324         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
26325         used as an lvalue.
26326
26327         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
26328         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
26329
26330         * sel-sched-ir.c (init_bb): Likewise.
26331         (sel_restore_notes): Likewise.
26332         (move_bb_info): Likewise.
26333         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
26334         (SET_BB_NOTE_LIST): New function.
26335
26336 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26337
26338         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
26339         field will eventually be an rtx_insn *.  To help with transition,
26340         for now, convert from an access macro into a pair of functions:
26341         VINSN_INSN_RTX, returning an rtx_insn *, and...
26342         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
26343         is used as an lvalue.
26344
26345         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
26346         SET_VINSN_INSN_RTX where it's used as an lvalue.
26347         (VINSN_INSN_RTX): New function.
26348         (SET_VINSN_INSN_RTX): New function.
26349
26350 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26351
26352         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
26353         eventually be rtx_insn *, but to help with transition, for now,
26354         convert from an access macro into a pair of functions: DEP_PRO
26355         returning an rtx_insn * and...
26356         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
26357         lvalue, returning an rtx&.
26358         (DEP_CON): Analogous changes to DEP_PRO above.
26359         (SET_DEP_CON): Likewise.
26360
26361         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
26362         an lvalue to SET_DEP_CON.
26363         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
26364         (sd_copy_back_deps): Likewise for DEP_CON.
26365         (DEP_PRO): New function, adding a checked cast for now.
26366         (DEP_CON): Likewise.
26367         (SET_DEP_PRO): New function.
26368         (SET_DEP_CON): Likewise.
26369
26370 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
26371
26372         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
26373         (extra_options): Add i386/cygwin.opt.
26374         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
26375         (CPP_SPEC): Accept -pthread.
26376         (LINK_SPEC): Ditto.
26377         (GOMP_SELF_SPECS): Update comment.
26378         * config/i386/cygwin.opt: New file for -pthread flag.
26379
26380 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26381
26382         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
26383         * df.h (DF_REF_INSN): Convert from a macro to a function, so
26384         that we can return an rtx_insn *.
26385
26386 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
26387
26388         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
26389         when building executables, not DLLs.  Add --large-address-aware
26390         under the same conditions.
26391         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
26392         when building executables, not DLLs.  Add --large-address-aware
26393         under the same conditions when using -m32.
26394
26395         * config/i386/cygwin-stdint.h: Throughout, make type
26396         definitions dependent on target architecture, not host.
26397
26398 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26399
26400         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
26401         the return type from rtx to rtx_insn *,  which will enable various
26402         conversions in followup patches.  For now this is is done by a
26403         checked cast.
26404         (NEXT_INSN): Likewise.
26405         (SET_PREV_INSN): Convert to an inline function.  This is intended
26406         for use as an lvalue, and so returns an rtx& to allow in-place
26407         modification.
26408         (SET_NEXT_INSN): Likewise.
26409
26410 2014-07-08  Mark Wielaard  <mjw@redhat.com>
26411
26412         PR debug/59051
26413         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
26414
26415 2014-08-19  Marek Polacek  <polacek@redhat.com>
26416
26417         PR c/61271
26418         * cgraphunit.c (handle_alias_pairs): Fix condition.
26419
26420 2014-08-19  Richard Biener  <rguenther@suse.de>
26421
26422         * gimple-fold.c (fold_gimple_assign): Properly build a
26423         null-pointer constant when devirtualizing addresses.
26424
26425 2014-07-07  Mark Wielaard  <mjw@redhat.com>
26426
26427         * dwarf2out.c (decl_quals): New function.
26428         (modified_type_die): Take one cv_quals argument instead of two,
26429         one for const and one for volatile.
26430         (add_type_attribute): Likewise.
26431         (generic_parameter_die): Call add_type_attribute with one modifier
26432         argument.
26433         (base_type_for_mode): Likewise.
26434         (add_bounds_info): Likewise.
26435         (add_subscript_info): Likewise.
26436         (gen_array_type_die): Likewise.
26437         (gen_descr_array_type_die): Likewise.
26438         (gen_entry_point_die): Likewise.
26439         (gen_enumeration_type_die): Likewise.
26440         (gen_formal_parameter_die): Likewise.
26441         (gen_subprogram_die): Likewise.
26442         (gen_variable_die): Likewise.
26443         (gen_const_die): Likewise.
26444         (gen_field_die): Likewise.
26445         (gen_pointer_type_die): Likewise.
26446         (gen_reference_type_die): Likewise.
26447         (gen_ptr_to_mbr_type_die): Likewise.
26448         (gen_inheritance_die): Likewise.
26449         (gen_subroutine_type_die): Likewise.
26450         (gen_typedef_die): Likewise.
26451         (force_type_die): Likewise.
26452
26453 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26454
26455         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
26456         if unset.
26457         * configure: Regenerate.
26458
26459 2014-08-19  Richard Biener  <rguenther@suse.de>
26460
26461         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
26462         DECL_EXTERNALs in BLOCKs as non-references.
26463         * tree-streamer-out.c (streamer_write_chain): Likewise.
26464
26465 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26466             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26467             Anna Tikhonova  <anna.tikhonova@intel.com>
26468             Ilya Tocar  <ilya.tocar@intel.com>
26469             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26470             Ilya Verbin  <ilya.verbin@intel.com>
26471             Kirill Yukhin  <kirill.yukhin@intel.com>
26472             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26473
26474         * config/i386/sse.md
26475         (define_mode_iterator VI48_AVX512F): Delete.
26476         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
26477         (define_mode_iterator VI2_AVX512VL): Ditto.
26478         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
26479         Delete.
26480         (define_insn
26481         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
26482         New.
26483         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
26484         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
26485         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
26486         with VI48_AVX512F_AVX512VL): New.
26487         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
26488         with VI2_AVX512VL): Ditto.
26489
26490 2014-08-19  Marek Polacek  <polacek@redhat.com>
26491
26492         * doc/invoke.texi: Document -Wc99-c11-compat.
26493
26494 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26495
26496         * rtl.h (PREV_INSN): Split macro in two: the existing one,
26497         for rvalues, and...
26498         (SET_PREV_INSN): New macro, for use as an lvalue.
26499         (NEXT_INSN, SET_NEXT_INSN): Likewise.
26500
26501         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
26502         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
26503         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
26504         (fixup_abnormal_edges): Likewise.
26505         (unlink_insn_chain): Likewise.
26506         (fixup_reorder_chain): Likewise.
26507         (cfg_layout_delete_block): Likewise.
26508         (cfg_layout_merge_blocks): Likewise.
26509         * combine.c (update_cfg_for_uncondjump): Likewise.
26510         * emit-rtl.c (link_insn_into_chain): Likewise.
26511         (remove_insn): Likewise.
26512         (delete_insns_since): Likewise.
26513         (reorder_insns_nobb): Likewise.
26514         (emit_insn_after_1): Likewise.
26515         * final.c (rest_of_clean_state): Likewise.
26516         (final_scan_insn): Likewise.
26517         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
26518         * haifa-sched.c (concat_note_lists): Likewise.
26519         (remove_notes): Likewise.
26520         (restore_other_notes): Likewise.
26521         (move_insn): Likewise.
26522         (unlink_bb_notes): Likewise.
26523         (restore_bb_notes): Likewise.
26524         * jump.c (delete_for_peephole): Likewise.
26525         * optabs.c (emit_libcall_block_1): Likewise.
26526         * reorg.c (emit_delay_sequence): Likewise.
26527         (fill_simple_delay_slots): Likewise.
26528         * sel-sched-ir.c (sel_move_insn): Likewise.
26529         (sel_remove_insn): Likewise.
26530         (get_bb_note_from_pool): Likewise.
26531         * sel-sched.c (move_nop_to_previous_block): Likewise.
26532
26533         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
26534         * config/c6x/c6x.c (gen_one_bundle): Likewise.
26535         (c6x_gen_bundles): Likewise.
26536         (hwloop_optimize): Likewise.
26537         * config/frv/frv.c (frv_function_prologue): Likewise.
26538         (frv_register_nop): Likewise.
26539         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
26540         (ia64_reorg): Likewise.
26541         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
26542         (mep_make_bundle): Likewise.
26543         (mep_bundle_insns): Likewise.
26544         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
26545         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
26546         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
26547
26548 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26549
26550         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
26551         return type from rtx to rtx_insn *.
26552         (BB_END): Likewise.
26553         (BB_HEADER): Likewise.
26554         (BB_FOOTER): Likewise.
26555         (SET_BB_HEAD): Convert to a function.
26556         (SET_BB_END): Likewise.
26557         (SET_BB_HEADER): Likewise.
26558         (SET_BB_FOOTER): Likewise.
26559
26560         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
26561         Strengthen the return type from rtx to rtx_insn *.  For now, this
26562         is done by adding a checked cast, but this will eventually
26563         become a field lookup.
26564         (BB_END): Likewise.
26565         (BB_HEADER): Likewise.
26566         (BB_FOOTER): Likewise.
26567         (SET_BB_HEAD): New function, from macro of same name.  This is
26568         intended for use as an lvalue, and so returns an rtx& to allow
26569         in-place modification.
26570         (SET_BB_END): Likewise.
26571         (SET_BB_HEADER): Likewise.
26572         (SET_BB_FOOTER): Likewise.
26573
26574 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
26575
26576         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
26577         for rvalues, and...
26578         (SET_BB_HEAD): New macro, for use as a lvalue.
26579         (BB_END, SET_BB_END): Likewise.
26580         (BB_HEADER, SET_BB_HEADER): Likewise.
26581         (BB_FOOTER, SET_BB_FOOTER): Likewise.
26582
26583         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
26584         of BB_* macros into SET_BB_* macros.
26585         (fix_crossing_unconditional_branches): Likewise.
26586         * caller-save.c (save_call_clobbered_regs): Likewise.
26587         (insert_one_insn): Likewise.
26588         * cfgbuild.c (find_bb_boundaries): Likewise.
26589         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
26590         (outgoing_edges_match): Likewise.
26591         (try_optimize_cfg): Likewise.
26592         * cfgexpand.c (expand_gimple_cond): Likewise.
26593         (expand_gimple_tailcall): Likewise.
26594         (expand_gimple_basic_block): Likewise.
26595         (construct_exit_block): Likewise.
26596         * cfgrtl.c (delete_insn): Likewise.
26597         (create_basic_block_structure): Likewise.
26598         (rtl_delete_block): Likewise.
26599         (rtl_split_block): Likewise.
26600         (emit_nop_for_unique_locus_between): Likewise.
26601         (rtl_merge_blocks): Likewise.
26602         (block_label): Likewise.
26603         (try_redirect_by_replacing_jump): Likewise.
26604         (emit_barrier_after_bb): Likewise.
26605         (fixup_abnormal_edges): Likewise.
26606         (record_effective_endpoints): Likewise.
26607         (relink_block_chain): Likewise.
26608         (fixup_reorder_chain): Likewise.
26609         (fixup_fallthru_exit_predecessor): Likewise.
26610         (cfg_layout_duplicate_bb): Likewise.
26611         (cfg_layout_split_block): Likewise.
26612         (cfg_layout_delete_block): Likewise.
26613         (cfg_layout_merge_blocks): Likewise.
26614         * combine.c (update_cfg_for_uncondjump): Likewise.
26615         * emit-rtl.c (add_insn_after): Likewise.
26616         (remove_insn): Likewise.
26617         (reorder_insns): Likewise.
26618         (emit_insn_after_1): Likewise.
26619         * haifa-sched.c (get_ebb_head_tail): Likewise.
26620         (restore_other_notes): Likewise.
26621         (move_insn): Likewise.
26622         (sched_extend_bb): Likewise.
26623         (fix_jump_move): Likewise.
26624         * ifcvt.c (noce_process_if_block): Likewise.
26625         (dead_or_predicable): Likewise.
26626         * ira.c (update_equiv_regs): Likewise.
26627         * reg-stack.c (change_stack): Likewise.
26628         * sel-sched-ir.c (sel_move_insn): Likewise.
26629         * sel-sched.c (move_nop_to_previous_block): Likewise.
26630
26631         * config/c6x/c6x.c (hwloop_optimize): Likewise.
26632         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
26633
26634 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
26635
26636         * rtl.h (for_each_rtx_in_insn): New function.
26637         * rtlanal.c (for_each_rtx_in_insn): Likewise.
26638
26639 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
26640
26641         * coretypes.h (class rtx_insn): Add forward declaration.
26642
26643         * rtl.h: Include is-a.h.
26644         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
26645         workaround to ensure gengtype knows inheritance is occurring,
26646         whilst continuing to use the pre-existing special-casing for
26647         rtx_def.
26648         (class rtx_insn): New subclass of rtx_def, adding the
26649         invariant that we're dealing with something we can sanely use
26650         INSN_UID, NEXT_INSN, PREV_INSN on.
26651         (is_a_helper <rtx_insn *>::test): New.
26652         (is_a_helper <const rtx_insn *>::test): New.
26653
26654 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
26655
26656         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
26657
26658 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
26659
26660         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
26661         comdats as extern.
26662
26663 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
26664
26665         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
26666         to BUILT_IN_UNREACHABLE.
26667
26668 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
26669
26670         PR target/62011
26671         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
26672         New tune flag.
26673         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
26674         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
26675         (ffs<mode>2): Do not expand with tzcnt for
26676         TARGET_AVOID_FALSE_DEP_FOR_BMI.
26677         (ffssi2_no_cmove): Ditto.
26678         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
26679         (ctz<mode>2): New expander.
26680         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
26681         (*ctz<mode>2_falsedep): New insn.
26682         (*ctz<mode>2): Rename from ctz<mode>2.
26683         (clz<mode>2_lzcnt): New expander.
26684         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
26685         (*clz<mode>2_lzcnt_falsedep): New insn.
26686         (*clz<mode>2): Rename from ctz<mode>2.
26687         (popcount<mode>2): New expander.
26688         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
26689         (*popcount<mode>2_falsedep): New insn.
26690         (*popcount<mode>2): Rename from ctz<mode>2.
26691         (*popcount<mode>2_cmp): Remove.
26692         (*popcountsi2_cmp_zext): Ditto.
26693
26694 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
26695
26696         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
26697         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
26698         * config/microblaze/microblaze.h
26699         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
26700
26701 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
26702
26703         PR other/62168
26704         * configure.ac: Set install_gold_as_default to no for
26705         --enable-gold=no.
26706         * configure: Regenerated.
26707
26708 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
26709
26710         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
26711         * config.in: Add undef of HAVE_isl.
26712         * configure: Regenerate.
26713         * configure.ac: Add definition of HAVE_isl.
26714         * graphite-blocking.c: Add checking of HAVE_isl.
26715         * graphite-dependences.c: Likewise.
26716         * graphite-interchange.c: Likewise.
26717         * graphite-isl-ast-to-gimple.c: Likewise.
26718         * graphite-optimize-isl.c: Likewise.
26719         * graphite-poly.c: Likewise.
26720         * graphite-scop-detection.c: Likewise.
26721         * graphite-sese-to-poly.c: Likewise.
26722         * graphite.c: Likewise.
26723         * toplev.c: Replace the checking of HAVE_cloog with the checking
26724         of HAVE_isl.
26725
26726 2014-08-18  Richard Biener  <rguenther@suse.de>
26727
26728         PR tree-optimization/62090
26729         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
26730         (fold_builtin_3): Do not fold snprintf.
26731         (fold_builtin_4): Likewise.
26732         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
26733         moved from builtins.c.
26734         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
26735         (gimple_fold_builtin): Do not fold sprintf here.
26736
26737 2014-08-18  Richard Biener  <rguenther@suse.de>
26738
26739         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
26740         code to ...
26741         (maybe_canonicalize_mem_ref_addr): ... this function.
26742         (fold_stmt_1): Apply it here before all simplification.
26743
26744 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
26745
26746         PR ipa/61800
26747         * cgraph.h (cgraph_node::create_indirect_edge): Add
26748         compute_indirect_info param.
26749         * cgraph.c (cgraph_node::create_indirect_edge): Compute
26750         indirect_info only when it is required.
26751         * cgraphclones.c (cgraph_clone_edge): Do not recompute
26752         indirect_info fore cloned indirect edge.
26753
26754 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26755             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26756             Anna Tikhonova  <anna.tikhonova@intel.com>
26757             Ilya Tocar  <ilya.tocar@intel.com>
26758             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26759             Ilya Verbin  <ilya.verbin@intel.com>
26760             Kirill Yukhin  <kirill.yukhin@intel.com>
26761             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26762
26763         * config/i386/sse.md
26764         (define_mode_iterator VI8_AVX2_AVX512BW): New.
26765         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
26766
26767 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26768             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26769             Anna Tikhonova  <anna.tikhonova@intel.com>
26770             Ilya Tocar  <ilya.tocar@intel.com>
26771             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26772             Ilya Verbin  <ilya.verbin@intel.com>
26773             Kirill Yukhin  <kirill.yukhin@intel.com>
26774             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26775
26776         * config/i386/sse.md
26777         (define_mode_iterator VF1_AVX512VL): New.
26778         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
26779         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
26780         New.
26781
26782 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26783             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26784             Anna Tikhonova  <anna.tikhonova@intel.com>
26785             Ilya Tocar  <ilya.tocar@intel.com>
26786             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26787             Ilya Verbin  <ilya.verbin@intel.com>
26788             Kirill Yukhin  <kirill.yukhin@intel.com>
26789             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26790
26791         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
26792         * config/i386/i386.md
26793         (define_code_iterator any_float): New.
26794         (define_code_attr floatsuffix): New.
26795         * config/i386/sse.md
26796         (define_mode_iterator VF1_128_256VL): New.
26797         (define_mode_iterator VF2_512_256VL): New.
26798         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
26799         TARGET check.
26800         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
26801         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
26802         New.
26803         (define_mode_attr qq2pssuff): New.
26804         (define_mode_attr sselongvecmode): New.
26805         (define_mode_attr sselongvecmodelower): New.
26806         (define_mode_attr sseintvecmode3): New.
26807         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
26808         New.
26809         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
26810         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
26811         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
26812         (define_insn "ufloatv2siv2df2<mask_name>"): New.
26813
26814 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26815             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26816             Anna Tikhonova  <anna.tikhonova@intel.com>
26817             Ilya Tocar  <ilya.tocar@intel.com>
26818             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26819             Ilya Verbin  <ilya.verbin@intel.com>
26820             Kirill Yukhin  <kirill.yukhin@intel.com>
26821             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26822
26823         * config/i386/sse.md
26824         (define_mode_iterator VF2_AVX512VL): New.
26825         (define_mode_attr sseintvecmode2): New.
26826         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
26827         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
26828         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
26829         (define_insn
26830         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
26831         Ditto.
26832         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
26833         Ditto.
26834         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
26835         Ditto.
26836
26837 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26838             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26839             Anna Tikhonova  <anna.tikhonova@intel.com>
26840             Ilya Tocar  <ilya.tocar@intel.com>
26841             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26842             Ilya Verbin  <ilya.verbin@intel.com>
26843             Kirill Yukhin  <kirill.yukhin@intel.com>
26844             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26845
26846         * config/i386/i386.md
26847         (define_insn "*movoi_internal_avx"): Add evex version.
26848         (define_insn "*movti_internal"): Ditto.
26849
26850 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26851             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26852             Anna Tikhonova  <anna.tikhonova@intel.com>
26853             Ilya Tocar  <ilya.tocar@intel.com>
26854             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26855             Ilya Verbin  <ilya.verbin@intel.com>
26856             Kirill Yukhin  <kirill.yukhin@intel.com>
26857             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26858
26859         * config/i386/i386.md
26860         (define_attr "isa"): Add avx512dq, noavx512dq.
26861         (define_attr "enabled"): Ditto.
26862         * config/i386/sse.md
26863         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
26864
26865 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26866             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26867             Anna Tikhonova  <anna.tikhonova@intel.com>
26868             Ilya Tocar  <ilya.tocar@intel.com>
26869             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26870             Ilya Verbin  <ilya.verbin@intel.com>
26871             Kirill Yukhin  <kirill.yukhin@intel.com>
26872             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26873
26874         * config/i386/i386.c
26875         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
26876         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
26877         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
26878         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
26879         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
26880         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
26881         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
26882         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
26883         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
26884         * config/i386/sse.md
26885         (define_mode_iterator VMOVE): Allow V4TI mode.
26886         (define_mode_iterator V_AVX512VL): New.
26887         (define_mode_iterator V): New handling for AVX512VL.
26888         (define_insn "avx512f_load<mode>_mask"): Delete.
26889         (define_insn "<avx512>_load<mode>_mask"): New.
26890         (define_insn "avx512f_store<mode>_mask"): Delete.
26891         (define_insn "<avx512>_store<mode>_mask"): New.
26892
26893
26894 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
26895
26896         PR sanitizer/62089
26897         * asan.c (instrument_derefs): Fix bitfield check.
26898
26899 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26900
26901         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
26902         * config/rs6000/htm.md (ttest): Remove clobber.
26903         * config/rs6000/predicates.md (any_mask_operand): New predicate.
26904         (and_operand): Reformat.
26905         (and_2rld_operand): New predicate.
26906         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
26907         parameter.
26908         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
26909         parameter.  Handle AND directly.
26910         (rs6000_split_logical_di): Remove last parameter.
26911         (rs6000_split_logical): Remove last parameter.  Remove obsolete
26912         comment.
26913         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
26914         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
26915         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
26916         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
26917         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
26918         and 5 anonymous splitters):  Delete.
26919         (and<mode>3): New expander.
26920         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
26921         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
26922         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
26923         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
26924         (floatdisf2_internal1): Remove clobbers.
26925         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
26926         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
26927         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
26928         (and<mode>3 for BOOL_128): Remove clobber.
26929         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
26930         rs6000_split_logical.
26931         (*bool<mode>3_internal for BOOL_128): Adjust call of
26932         rs6000_split_logical.
26933         (*boolc<mode>3_internal1 for BOOL_128,
26934         *boolc<mode>3_internal2 for BOOL_128,
26935         *boolcc<mode>3_internal1 for BOOL_128,
26936         *boolcc<mode>3_internal2 for BOOL_128,
26937         *eqv<mode>3_internal1 for BOOL_128,
26938         *eqv<mode>3_internal2 for BOOL_128,
26939         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
26940         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
26941         clobber.
26942         (*vec_reload_and_reg_<mptrsize>): Delete.
26943
26944 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26945
26946         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
26947         and split, *boolccsi3_internal3 and split): Delete.
26948         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
26949         *boolccdi3_internal3 and split): Delete.
26950         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
26951         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
26952
26953 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26954
26955         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
26956         and split, *boolcsi3_internal3 and split): Delete.
26957         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
26958         *boolcdi3_internal3 and split): Delete.
26959         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
26960
26961 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26962
26963         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
26964         <'u'>: Also support printing the low-order 16 bits.
26965         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
26966         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
26967         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
26968         *booldi3_internal3 and split): Delete.
26969         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
26970         *bool<mode>3_dot2): New.
26971         (two anonymous define_splits for non_logical_cint_operand): Merge.
26972
26973 2014-08-17  Marek Polacek  <polacek@redhat.com>
26974             Manuel López-Ibáñez  <manu@gcc.gnu.org>
26975
26976         PR c/62059
26977         * diagnostic.c (adjust_line): Add gcc_checking_assert.
26978         (diagnostic_show_locus): Don't print caret diagnostic
26979         if a column is larger than the line_width.
26980
26981 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
26982
26983         * common.opt: Make the ISL AST generator to be the main code generator
26984         of Graphite.
26985
26986 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
26987
26988         * wide-int.h (generic_wide_int): Declare as class instead of struct.
26989
26990 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
26991
26992         PR target/61641
26993         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
26994         Declare.
26995         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
26996         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
26997         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
26998         Define.
26999         * config/pa/pa.md (begin_brtab): Delete insn.
27000         (end_brtab): Likewise.
27001
27002 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27003
27004         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
27005
27006 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
27007
27008         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
27009         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
27010         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
27011         (get_dynamic_type): Remove.
27012         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
27013         (clear_speculation): Bring to ipa-deivrt.h
27014         (get_class_context): Rename to ...
27015         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
27016         (contains_type_p): Update.
27017         (get_dynamic_type): Rename to ...
27018         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
27019         (possible_polymorphic_call_targets): UPdate.
27020         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
27021         * ipa-prop.c (ipa_analyze_call_uses): Update.
27022
27023 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
27024
27025         * doc/invoke.texi (SH options): Document missing processor variant
27026         options.  Remove references to Hitachi.  Undocument deprecated mspace
27027         option.
27028
27029 2014-08-15  Jason Merrill  <jason@redhat.com>
27030
27031         * tree.c (type_hash_canon): Uncomment assert.
27032
27033 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27034
27035         * input.h (in_system_header_at): Add comment.
27036
27037 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27038
27039         PR fortran/44054
27040         * diagnostic.c (build_message_string): Make it extern.
27041         * diagnostic.h (build_message_string): Make it extern.
27042
27043 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
27044
27045         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
27046         load/store from/to non-floating class pseudo.
27047
27048 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27049
27050         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
27051
27052 2014-08-15  Richard Biener  <rguenther@suse.de>
27053
27054         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
27055         (get_constraint_for_ssa_var): Remove dead code.
27056         (get_constraint_for_1): Adjust.
27057         (find_what_var_points_to): Likewise.
27058         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
27059
27060 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
27061
27062         PR target/61878
27063         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
27064         (_mm512_mask_cmpge_epu32_mask): Ditto.
27065         (_mm512_cmpge_epu32_mask): Ditto.
27066         (_mm512_mask_cmpge_epi64_mask): Ditto.
27067         (_mm512_cmpge_epi64_mask): Ditto.
27068         (_mm512_mask_cmpge_epu64_mask): Ditto.
27069         (_mm512_cmpge_epu64_mask): Ditto.
27070         (_mm512_mask_cmple_epi32_mask): Ditto.
27071         (_mm512_cmple_epi32_mask): Ditto.
27072         (_mm512_mask_cmple_epu32_mask): Ditto.
27073         (_mm512_cmple_epu32_mask): Ditto.
27074         (_mm512_mask_cmple_epi64_mask): Ditto.
27075         (_mm512_cmple_epi64_mask): Ditto.
27076         (_mm512_mask_cmple_epu64_mask): Ditto.
27077         (_mm512_cmple_epu64_mask): Ditto.
27078         (_mm512_mask_cmplt_epi32_mask): Ditto.
27079         (_mm512_cmplt_epi32_mask): Ditto.
27080         (_mm512_mask_cmplt_epu32_mask): Ditto.
27081         (_mm512_cmplt_epu32_mask): Ditto.
27082         (_mm512_mask_cmplt_epi64_mask): Ditto.
27083         (_mm512_cmplt_epi64_mask): Ditto.
27084         (_mm512_mask_cmplt_epu64_mask): Ditto.
27085         (_mm512_cmplt_epu64_mask): Ditto.
27086         (_mm512_mask_cmpneq_epi32_mask): Ditto.
27087         (_mm512_mask_cmpneq_epu32_mask): Ditto.
27088         (_mm512_cmpneq_epu32_mask): Ditto.
27089         (_mm512_mask_cmpneq_epi64_mask): Ditto.
27090         (_mm512_cmpneq_epi64_mask): Ditto.
27091         (_mm512_mask_cmpneq_epu64_mask): Ditto.
27092         (_mm512_cmpneq_epu64_mask): Ditto.
27093         (_mm512_castpd_ps): Ditto.
27094         (_mm512_castpd_si512): Ditto.
27095         (_mm512_castps_pd): Ditto.
27096         (_mm512_castps_si512): Ditto.
27097         (_mm512_castsi512_ps): Ditto.
27098         (_mm512_castsi512_pd): Ditto.
27099         (_mm512_castpd512_pd128): Ditto.
27100         (_mm512_castps512_ps128): Ditto.
27101         (_mm512_castsi512_si128): Ditto.
27102         (_mm512_castpd512_pd256): Ditto.
27103         (_mm512_castps512_ps256): Ditto.
27104         (_mm512_castsi512_si256): Ditto.
27105         (_mm512_castpd128_pd512): Ditto.
27106         (_mm512_castps128_ps512): Ditto.
27107         (_mm512_castsi128_si512): Ditto.
27108         (_mm512_castpd256_pd512): Ditto.
27109         (_mm512_castps256_ps512): Ditto.
27110         (_mm512_castsi256_si512): Ditto.
27111         (_mm512_cmpeq_epu32_mask): Ditto.
27112         (_mm512_mask_cmpeq_epu32_mask): Ditto.
27113         (_mm512_mask_cmpeq_epu64_mask): Ditto.
27114         (_mm512_cmpeq_epu64_mask): Ditto.
27115         (_mm512_cmpgt_epu32_mask): Ditto.
27116         (_mm512_mask_cmpgt_epu32_mask): Ditto.
27117         (_mm512_mask_cmpgt_epu64_mask): Ditto.
27118         (_mm512_cmpgt_epu64_mask): Ditto.
27119         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
27120         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
27121         * config/i386/i386.c (enum ix86_builtins): Add
27122         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
27123         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
27124         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
27125         (bdesc_args): Add __builtin_ia32_si512_256si,
27126         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
27127         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
27128         __builtin_ia32_pd512_pd.
27129         (ix86_expand_args_builtin): Handle new FTYPEs.
27130         * config/i386/sse.md (castmode): Add 512-bit modes.
27131         (AVX512MODE2P): New.
27132         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
27133         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
27134
27135 2014-08-15  Richard Biener  <rguenther@suse.de>
27136
27137         * fold-const.c (tree_swap_operands_p): Put all constants
27138         last, also strip sign-changing NOPs when considering further
27139         canonicalization.  Canonicalize also when optimizing for size.
27140
27141 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27142
27143         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
27144         one_match > zero_match case to just before simple_sequence.
27145
27146 2014-08-15  Richard Biener  <rguenther@suse.de>
27147
27148         * data-streamer.h (streamer_string_index, string_for_index):
27149         Remove.
27150         * data-streamer-out.c (streamer_string_index): Make static.
27151         * data-streamer-in.c (string_for_index): Likewise.
27152         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
27153         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
27154
27155 2014-08-15  Richard Biener  <rguenther@suse.de>
27156
27157         PR tree-optimization/62031
27158         * tree-data-ref.c (dr_analyze_indices): Do not set
27159         DR_UNCONSTRAINED_BASE.
27160         (dr_may_alias_p): All indirect accesses have to go the
27161         formerly DR_UNCONSTRAINED_BASE path.
27162         * tree-data-ref.h (struct indices): Remove
27163         unconstrained_base member.
27164         (DR_UNCONSTRAINED_BASE): Remove.
27165
27166 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
27167
27168         PR middle-end/62092
27169         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
27170         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
27171         in OMP_CLAUSE_MAP in some outer target region.
27172
27173 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
27174
27175         * tree-ssa-loop-ivopts.c (ivopts_data): New field
27176         name_expansion_cache.
27177         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
27178         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
27179         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
27180         (difference_cannot_overflow_p): New parameter.  Use affine
27181         expansion for equality check.
27182         (iv_elimination_compare_lt): Pass new argument.
27183
27184 2014-08-14  DJ Delorie  <dj@redhat.com>
27185
27186         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
27187         variables to the accumulator.
27188
27189         * config/rl78/predicates.md (rl78_near_mem_operand): New.
27190         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
27191         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
27192         with far-far moves.
27193
27194         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
27195         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
27196         (umulqihi3_virt): Likewise.
27197         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
27198         (umulqihi3_real): Likewise.
27199
27200         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
27201
27202 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
27203
27204         PR tree-optimization/62091
27205         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
27206         function_entry_reached.
27207         (walk_aliased_vdefs): Clear it here.
27208         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
27209
27210 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
27211
27212         * ipa-utils.h (compare_virtual_tables): Declare.
27213         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
27214
27215 2014-08-14  Marek Polacek  <polacek@redhat.com>
27216
27217         DR 458
27218         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
27219         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
27220
27221 2014-08-14  Tom de Vries  <tom@codesourcery.com>
27222
27223         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
27224
27225 2014-08-14  Tom de Vries  <tom@codesourcery.com>
27226
27227         PR rtl-optimization/62004
27228         PR rtl-optimization/62030
27229         * ifcvt.c (rtx_interchangeable_p): New function.
27230         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
27231         * emit-rtl.h (mem_attrs_eq_p): Declare.
27232
27233 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
27234
27235         * graphite-scop-detection.c:
27236         Add inclusion of cp-tree.h.
27237         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
27238         in case they are pointers to object types
27239
27240 2014-08-14  Richard Biener  <rguenther@suse.de>
27241
27242         * BASE-VER: Change to 5.0.0
27243
27244 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27245             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27246             Anna Tikhonova  <anna.tikhonova@intel.com>
27247             Ilya Tocar  <ilya.tocar@intel.com>
27248             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27249             Ilya Verbin  <ilya.verbin@intel.com>
27250             Kirill Yukhin  <kirill.yukhin@intel.com>
27251             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27252
27253         * config/i386/sse.md (define_mode_attr avx512): New.
27254         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
27255         V4DI modes.
27256         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
27257         (define_mode_attr ssse3_avx2): Ditto.
27258         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
27259         (define_mode_attr avx2_avx512bw): New.
27260         (define_mode_attr ssedoublemodelower): New.
27261         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
27262         V32HI, V64QI modes.
27263         (define_mode_attr ssebytemode): Allow V8DI modes.
27264         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
27265         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
27266         (define_mode_attr ssePSmode2): New.
27267         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
27268         V16HI, V32HI modes.
27269         (define_mode_attr dbpsadbwmode): New.
27270         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
27271         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
27272         (vi8_sse4_1_avx2_avx512): New.
27273         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
27274         mode attribute.
27275         (define_mode_attr blendbits): Move before its immediate use.
27276
27277 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27278             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27279             Anna Tikhonova  <anna.tikhonova@intel.com>
27280             Ilya Tocar  <ilya.tocar@intel.com>
27281             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27282             Ilya Verbin  <ilya.verbin@intel.com>
27283             Kirill Yukhin  <kirill.yukhin@intel.com>
27284             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27285
27286         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
27287         * config/i386/subst.md
27288         (define_mode_iterator SUBST_V): Update.
27289         (define_mode_iterator SUBST_A): Ditto.
27290         (define_subst_attr "mask_operand7"): New.
27291         (define_subst_attr "mask_operand10"): New.
27292         (define_subst_attr "mask_operand_arg34") : New.
27293         (define_subst_attr "mask_expand_op3"): New.
27294         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
27295         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
27296         (define_subst_attr "mask_avx512vl_condition"): New.
27297         (define_subst_attr "round_mask_operand4"): Ditto.
27298         (define_subst_attr "round_mask_scalar_op3"): Delete.
27299         (define_subst_attr "round_mask_op4"): New.
27300         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
27301         V16SImode.
27302         (define_subst_attr "round_modev8sf_condition"): New.
27303         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
27304         <MODE>mode.
27305         (define_subst_attr "round_saeonly_mask_operand4"): New.
27306         (define_subst_attr "round_saeonly_mask_op4"): New.
27307         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
27308         V8DImode, V16SImode.
27309         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
27310         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
27311         (define_subst_attr "mask_expand4_args"): New.
27312         (define_subst "mask_expand4"): New.
27313
27314 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27315             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27316             Anna Tikhonova  <anna.tikhonova@intel.com>
27317             Ilya Tocar  <ilya.tocar@intel.com>
27318             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27319             Ilya Verbin  <ilya.verbin@intel.com>
27320             Kirill Yukhin  <kirill.yukhin@intel.com>
27321             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27322
27323         * config/i386/i386.md
27324         (define_attr "isa"): Add avx512bw,noavx512bw.
27325         (define_attr "enabled"): Ditto.
27326         (define_split): Add 32/64-bit mask logic.
27327         (define_insn "*k<logic>qi"): New.
27328         (define_insn "*k<logic>hi"): New.
27329         (define_insn "*anddi_1"): Add mask version.
27330         (define_insn "*andsi_1"): Ditto.
27331         (define_insn "*<code><mode>_1"): Ditto.
27332         (define_insn "*<code>hi_1"): Ditto.
27333         (define_insn "kxnor<mode>"): New.
27334         (define_insn "kunpcksi"): New.
27335         (define_insn "kunpckdi"): New.
27336         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
27337         (define_insn "*one_cmplhi2_1"): Ditto.
27338
27339 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27340             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27341             Anna Tikhonova  <anna.tikhonova@intel.com>
27342             Ilya Tocar  <ilya.tocar@intel.com>
27343             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27344             Ilya Verbin  <ilya.verbin@intel.com>
27345             Kirill Yukhin  <kirill.yukhin@intel.com>
27346             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27347
27348         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
27349         V32HImode.
27350
27351 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27352             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27353             Anna Tikhonova  <anna.tikhonova@intel.com>
27354             Ilya Tocar  <ilya.tocar@intel.com>
27355             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27356             Ilya Verbin  <ilya.verbin@intel.com>
27357             Kirill Yukhin  <kirill.yukhin@intel.com>
27358             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27359
27360         * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
27361         registers.
27362         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
27363         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
27364         xmm/ymm16+ when availble.
27365         * config/i386/i386.h
27366         (HARD_REGNO_NREGS): Add mask regs.
27367         (VALID_AVX512F_REG_MODE): Ditto.
27368         (VALID_AVX512F_REG_MODE) : Define.
27369         (VALID_MASK_AVX512BW_MODE): Ditto.
27370         (reg_class) (MASK_REG_P(X)): Define.
27371         * config/i386/i386.md: Do not split long moves with mask register,
27372         use kmovb if avx512bw is availible.
27373         (movdi_internal): Handle mask registers.
27374
27375 2014-08-14  Richard Biener  <rguenther@suse.de>
27376
27377         PR tree-optimization/62081
27378         * tree-ssa-loop.c (pass_fix_loops): New pass.
27379         (pass_tree_loop::gate):  Do not fixup loops here.
27380         * tree-pass.h (make_pass_fix_loops): Declare.
27381         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
27382
27383 2014-08-14  Richard Biener  <rguenther@suse.de>
27384
27385         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
27386         (type_hash_canon): ... this and avoid 2nd lookup for the add.
27387
27388 2014-08-14  Richard Biener  <rguenther@suse.de>
27389
27390         PR tree-optimization/62090
27391         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
27392         (fold_builtin_2): Do not fold sprintf.
27393         (fold_builtin_3): Likewise.
27394         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
27395         moved from builtins.c.
27396         (gimple_fold_builtin): Fold sprintf.
27397
27398 2014-08-14  Richard Biener  <rguenther@suse.de>
27399
27400         PR rtl-optimization/62079
27401         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
27402         run cleanup_cfg.
27403
27404 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
27405
27406         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
27407         current_function_decl.
27408
27409 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
27410
27411         * cgraph.c (cgraph_node::function_symbol): Fix wrong
27412         cgraph_function_node to cgraph_node::function_symbol
27413         refactoring.
27414
27415 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
27416
27417         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
27418         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
27419
27420 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
27421
27422         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
27423         warning.
27424
27425 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
27426
27427         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
27428         generator.
27429
27430 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
27431
27432         PR target/62025
27433         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
27434         any registers that are used in mem_insn.
27435
27436 2014-08-12  Steve Ellcey  <sellcey@mips.com>
27437
27438         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
27439
27440 2014-08-12  Steve Ellcey  <sellcey@mips.com>
27441
27442         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
27443         (MULTILIB_DIRNAMES): Ditto.
27444         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
27445         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
27446         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
27447         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
27448         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
27449         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
27450
27451 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27452
27453         PR target/61413
27454         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
27455         of __ARM_SIZEOF_WCHAR_T.
27456
27457 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27458
27459         PR target/62098
27460         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
27461         Remove unnecessary attributes.
27462
27463 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
27464
27465         * internal-fn.c (init_internal_fns): Fix off-by-one.
27466
27467 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27468             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27469             Anna Tikhonova  <anna.tikhonova@intel.com>
27470             Ilya Tocar  <ilya.tocar@intel.com>
27471             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27472             Ilya Verbin  <ilya.verbin@intel.com>
27473             Kirill Yukhin  <kirill.yukhin@intel.com>
27474             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27475
27476         * config/i386/i386.c (standard_sse_constant_opcode): Use
27477         vpxord/vpternlog if avx512 is availible.
27478
27479 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27480
27481         PR middle-end/62103
27482         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
27483         bitfields, that is when size doesn't match the size of type or the
27484         size of the constructor.
27485
27486 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
27487
27488         * config/rs6000/constraints.md (wh constraint): New constraint,
27489         for FP registers if direct move is available.
27490         (wi constraint): New constraint, for VSX/FP registers that can
27491         handle 64-bit integers.
27492         (wj constraint): New constraint for VSX/FP registers that can
27493         handle 64-bit integers for direct moves.
27494         (wk constraint): New constraint for VSX/FP registers that can
27495         handle 64-bit doubles for direct moves.
27496         (wy constraint): Make documentation match implementation.
27497
27498         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
27499         scalar_in_vmx_p field to simplify tests of whether SFmode or
27500         DFmode can go in the Altivec registers.
27501         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
27502         (rs6000_setup_reg_addr_masks): Likewise.
27503         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
27504         field, and wh/wi/wj/wk constraints.
27505         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
27506         the wh/wi/wj/wk constraints.
27507         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
27508         upper registers, prefer VSX registers unless the operation is a
27509         memory operation with REG+OFFSET addressing.
27510
27511         * config/rs6000/vsx.md (VSr mode attribute): Add support for
27512         DImode.  Change SFmode to use ww constraint instead of d to allow
27513         SF registers in the upper registers.
27514         (VSr2): Likewise.
27515         (VSr3): Likewise.
27516         (VSr5): Fix thinko in comment.
27517         (VSa): New mode attribute that is an alternative to wa, that
27518         returns the VSX register class that a mode can go in, but may not
27519         be the preferred register class.
27520         (VS_64dm): New mode attribute for appropriate register classes for
27521         referencing 64-bit elements of vectors for direct moves and normal
27522         moves.
27523         (VS_64reg): Likewise.
27524         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
27525         register allocator to only registers the data type can handle.
27526         (vsx_le_perm_load_<mode>): Likewise.
27527         (vsx_le_perm_store_<mode>): Likewise.
27528         (vsx_xxpermdi2_le_<mode>): Likewise.
27529         (vsx_xxpermdi4_le_<mode>): Likewise.
27530         (vsx_lxvd2x2_le_<mode>): Likewise.
27531         (vsx_lxvd2x4_le_<mode>): Likewise.
27532         (vsx_stxvd2x2_le_<mode>): Likewise.
27533         (vsx_add<mode>3): Likewise.
27534         (vsx_sub<mode>3): Likewise.
27535         (vsx_mul<mode>3): Likewise.
27536         (vsx_div<mode>3): Likewise.
27537         (vsx_tdiv<mode>3_internal): Likewise.
27538         (vsx_fre<mode>2): Likewise.
27539         (vsx_neg<mode>2): Likewise.
27540         (vsx_abs<mode>2): Likewise.
27541         (vsx_nabs<mode>2): Likewise.
27542         (vsx_smax<mode>3): Likewise.
27543         (vsx_smin<mode>3): Likewise.
27544         (vsx_sqrt<mode>2): Likewise.
27545         (vsx_rsqrte<mode>2): Likewise.
27546         (vsx_tsqrt<mode>2_internal): Likewise.
27547         (vsx_fms<mode>4): Likewise.
27548         (vsx_nfma<mode>4): Likewise.
27549         (vsx_eq<mode>): Likewise.
27550         (vsx_gt<mode>): Likewise.
27551         (vsx_ge<mode>): Likewise.
27552         (vsx_eq<mode>_p): Likewise.
27553         (vsx_gt<mode>_p): Likewise.
27554         (vsx_ge<mode>_p): Likewise.
27555         (vsx_xxsel<mode>): Likewise.
27556         (vsx_xxsel<mode>_uns): Likewise.
27557         (vsx_copysign<mode>3): Likewise.
27558         (vsx_float<VSi><mode>2): Likewise.
27559         (vsx_floatuns<VSi><mode>2): Likewise.
27560         (vsx_fix_trunc<mode><VSi>2): Likewise.
27561         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
27562         (vsx_x<VSv>r<VSs>i): Likewise.
27563         (vsx_x<VSv>r<VSs>ic): Likewise.
27564         (vsx_btrunc<mode>2): Likewise.
27565         (vsx_b2trunc<mode>2): Likewise.
27566         (vsx_floor<mode>2): Likewise.
27567         (vsx_ceil<mode>2): Likewise.
27568         (vsx_<VS_spdp_insn>): Likewise.
27569         (vsx_xscvspdp): Likewise.
27570         (vsx_xvcvspuxds): Likewise.
27571         (vsx_float_fix_<mode>2): Likewise.
27572         (vsx_set_<mode>): Likewise.
27573         (vsx_extract_<mode>_internal1): Likewise.
27574         (vsx_extract_<mode>_internal2): Likewise.
27575         (vsx_extract_<mode>_load): Likewise.
27576         (vsx_extract_<mode>_store): Likewise.
27577         (vsx_splat_<mode>): Likewise.
27578         (vsx_xxspltw_<mode>): Likewise.
27579         (vsx_xxspltw_<mode>_direct): Likewise.
27580         (vsx_xxmrghw_<mode>): Likewise.
27581         (vsx_xxmrglw_<mode>): Likewise.
27582         (vsx_xxsldwi_<mode>): Likewise.
27583         (vsx_xscvdpspn): Tighten constraints to only use register classes
27584         the types use.
27585         (vsx_xscvspdpn): Likewise.
27586         (vsx_xscvdpspn_scalar): Likewise.
27587
27588         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
27589         wj, and wk constraints.
27590         (GPR_REG_CLASS_P): New helper macro for register classes targeting
27591         general purpose registers.
27592
27593         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
27594         direct moves.
27595         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
27596         DImode instead of wm.  Use wk constraint for direct move of DFmode
27597         instead of wm.
27598         (extendsidi2_lfiwax): Likewise.
27599         (lfiwax): Likewise.
27600         (lfiwzx): Likewise.
27601         (movdi_internal64): Likewise.
27602
27603         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
27604         wk constraints. Make the wy constraint documentation match them
27605         implementation.
27606
27607 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
27608
27609         Replacement of isl_int by isl_val
27610         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
27611         (compute_bounds_for_param): use isl_val instead of isl_int
27612         (compute_bounds_for_loop): likewise
27613         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
27614         (build_linearized_memory_access): use isl_val instead of isl_int
27615         (pdr_stride_in_loop): likewise
27616         * graphite-optimize-isl.c:
27617         (getPrevectorMap): use isl_val instead of isl_int
27618         * graphite-poly.c:
27619         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
27620         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
27621         (extern the_isl_ctx): declare
27622         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
27623         (extract_affine_gmp): likewise
27624         (wrap): likewise
27625         (build_loop_iteration_domains): likewise
27626         (add_param_constraints): likewise
27627
27628 2014-08-11  Richard Biener  <rguenther@suse.de>
27629
27630         PR tree-optimization/62075
27631         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
27632         handle uses in patterns.
27633
27634 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27635             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27636             Anna Tikhonova  <anna.tikhonova@intel.com>
27637             Ilya Tocar  <ilya.tocar@intel.com>
27638             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27639             Ilya Verbin  <ilya.verbin@intel.com>
27640             Kirill Yukhin  <kirill.yukhin@intel.com>
27641             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27642
27643         * common/config/i386/i386-common.c
27644         (OPTION_MASK_ISA_AVX512VL_SET): Define.
27645         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
27646         (ix86_handle_option): Handle OPT_mavx512vl.
27647         * config/i386/cpuid.h (bit_AVX512VL): Define.
27648         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
27649         set -mavx512vl accordingly.
27650         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27651         OPTION_MASK_ISA_AVX512VL.
27652         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
27653         (ix86_option_override_internal): Define PTA_AVX512VL, handle
27654         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
27655         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
27656         * config/i386/i386.h (TARGET_AVX512VL): Define.
27657         (TARGET_AVX512VL_P(x)): Ditto.
27658         * config/i386/i386.opt: Add mavx512vl.
27659
27660 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
27661
27662         PR tree-optimization/62073
27663         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
27664         a basic block.
27665
27666 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27667             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27668             Anna Tikhonova  <anna.tikhonova@intel.com>
27669             Ilya Tocar  <ilya.tocar@intel.com>
27670             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27671             Ilya Verbin  <ilya.verbin@intel.com>
27672             Kirill Yukhin  <kirill.yukhin@intel.com>
27673             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27674
27675         * common/config/i386/i386-common.c
27676         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
27677         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
27678         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
27679         (ix86_handle_option): Handle OPT_mavx512bw.
27680         * config/i386/cpuid.h (bit_AVX512BW): Define.
27681         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
27682         set -mavx512bw accordingly.
27683         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27684         OPTION_MASK_ISA_AVX512BW.
27685         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
27686         (ix86_option_override_internal): Define PTA_AVX512BW, handle
27687         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
27688         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
27689         * config/i386/i386.h (TARGET_AVX512BW): Define.
27690         (TARGET_AVX512BW_P(x)): Ditto.
27691         * config/i386/i386.opt: Add mavx512bw.
27692
27693 2014-08-11  Richard Biener  <rguenther@suse.de>
27694
27695         PR tree-optimization/62070
27696         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
27697         Remove SSA checking.
27698
27699 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
27700
27701         * asan.c (asan_check_flags): New enum.
27702         (build_check_stmt_with_calls): Removed function.
27703         (build_check_stmt): Split inlining logic to
27704         asan_expand_check_ifn.
27705         (instrument_derefs): Rename parameter.
27706         (instrument_mem_region_access): Rename parameter.
27707         (instrument_strlen_call): Likewise.
27708         (asan_expand_check_ifn): New function.
27709         (asan_instrument): Remove old code.
27710         (pass_sanopt::execute): Change handling of
27711         asan-instrumentation-with-call-threshold.
27712         (asan_clear_shadow): Fix formatting.
27713         (asan_function_start): Likewise.
27714         (asan_emit_stack_protection): Likewise.
27715         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
27716         Update description.
27717         * internal-fn.c (expand_ASAN_CHECK): New function.
27718         * internal-fn.def (ASAN_CHECK): New internal function.
27719         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
27720         Update description.
27721         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
27722         * tree.c: Small comment fix.
27723
27724 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
27725
27726         * gimple.c (gimple_call_fnspec): Support internal functions.
27727         (gimple_call_return_flags): Use const.
27728         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
27729         * internal-fn.def: Add fnspec information.
27730         * internal-fn.h (internal_fn_fnspec): New function.
27731         (init_internal_fns): Declare new function.
27732         * internal-fn.c (internal_fn_fnspec_array): New global variable.
27733         (init_internal_fns): New function.
27734         * tree-core.h: Update macro call.
27735         * tree.c (build_common_builtin_nodes): Initialize internal fns.
27736
27737 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
27738
27739         * lto-streamer.h (struct output_block::symbol): Change from
27740         struct symtab_node to plain symtab_node.
27741         (referenced_from_this_partition_p): Change first parameter
27742         from struct symtab_node to plain symtab_node.
27743
27744 2014-08-10  Marek Polacek  <polacek@redhat.com>
27745
27746         PR c/51849
27747         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
27748
27749 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
27750
27751         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
27752         DECL correctly; do not give up on types in static storage.
27753
27754 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
27755
27756         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
27757
27758 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
27759
27760         * graphite-isl-ast-to-gimple.c:
27761         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
27762
27763         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
27764
27765 2014-08-08  Guozhi Wei  <carrot@google.com>
27766
27767         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
27768
27769 2014-08-08  Cary Coutant  <ccoutant@google.com>
27770
27771         * dwarf2out.c (get_skeleton_type_unit): Remove.
27772         (output_skeleton_debug_sections): Remove skeleton type units.
27773         (output_comdat_type_unit): Likewise.
27774         (dwarf2out_finish): Likewise.
27775
27776 2014-08-07  Yi Yang  <ahyangyi@google.com>
27777
27778         * predict.c (expr_expected_value_1): Remove the redundant assignment.
27779
27780 2014-08-08  Richard Biener  <rguenther@suse.de>
27781
27782         * lto-streamer.h (struct lto_input_block): Make it a class
27783         with a constructor.
27784         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
27785         (struct lto_function_header, struct lto_simple_header,
27786         struct lto_simple_header_with_strings,
27787         struct lto_decl_header, struct lto_function_header): Make
27788         a simple inheritance hieararchy.  Remove unused fields.
27789         (struct lto_asm_header): Remove.
27790         * lto-streamer-out.c (produce_asm): Adjust.
27791         (lto_output_toplevel_asms): Likewise.
27792         (produce_asm_for_decls): Likewise.
27793         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
27794         * data-streamer-in.c (string_for_index): Likewise.
27795         * ipa-inline-analysis.c (inline_read_section): Likewise.
27796         * ipa-prop.c (ipa_prop_read_section): Likewise.
27797         (read_replacements_section): Likewise.
27798         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
27799         * lto-section-in.c (lto_create_simple_input_block): Likewise.
27800         (lto_destroy_simple_input_block): Likewise.
27801         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
27802         (lto_input_toplevel_asms): Likewise.
27803
27804 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27805             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27806             Anna Tikhonova  <anna.tikhonova@intel.com>
27807             Ilya Tocar  <ilya.tocar@intel.com>
27808             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27809             Ilya Verbin  <ilya.verbin@intel.com>
27810             Kirill Yukhin  <kirill.yukhin@intel.com>
27811             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27812
27813         * common/config/i386/i386-common.c
27814         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
27815         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
27816         (ix86_handle_option): Handle OPT_mavx512dq.
27817         * config/i386/cpuid.h (bit_AVX512DQ): Define.
27818         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
27819         set -mavx512dq accordingly.
27820         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27821         OPTION_MASK_ISA_AVX512DQ.
27822         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
27823         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
27824         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
27825         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
27826         * config/i386/i386.h (TARGET_AVX512DQ): Define.
27827         (TARGET_AVX512DQ_P(x)): Ditto.
27828         * config/i386/i386.opt: Add mavx512dq.
27829
27830 2014-08-08  Richard Biener  <rguenther@suse.de>
27831
27832         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
27833         target_percent, target_percent_s): Export.
27834         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
27835         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
27836         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
27837         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
27838         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
27839         Move to gimple-fold.c.
27840         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
27841         strcat and strcpy.
27842         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
27843         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
27844         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
27845         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
27846         (rewrite_call_expr_array): Remove.
27847         (fold_builtin_sprintf_chk): Likewise.
27848         (fold_builtin_snprintf_chk): Likewise.
27849         (fold_builtin_varargs): Remove handling of sprintf_chk,
27850         vsprintf_chk, snprintf_chk and vsnprintf_chk.
27851         (gimple_fold_builtin_sprintf_chk): Remove.
27852         (gimple_fold_builtin_snprintf_chk): Likewise.
27853         (gimple_fold_builtin_varargs): Likewise.
27854         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
27855         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
27856         * gimple.c (gimple_seq_add_seq_without_update): New function.
27857         * gimple.h (gimple_seq_add_seq_without_update): Declare.
27858         * gimple-fold.c: Include output.h.
27859         (gsi_replace_with_seq_vops): New function, split out from ...
27860         (gimplify_and_update_call_from_tree): ... here.
27861         (replace_call_with_value): New function.
27862         (replace_call_with_call_and_fold): Likewise.
27863         (var_decl_component_p): Moved from builtins.c.
27864         (gimple_fold_builtin_memory_op): Moved from builtins.c
27865         fold_builtin_memory_op and rewritten to GIMPLE.
27866         (gimple_fold_builtin_memset): Likewise.
27867         (gimple_fold_builtin_strcpy): Likewise.
27868         (gimple_fold_builtin_strncpy): Likewise.
27869         (gimple_fold_builtin_strcat): Likewise.
27870         (gimple_fold_builtin_fputs): Likewise.
27871         (gimple_fold_builtin_memory_chk): Likewise.
27872         (gimple_fold_builtin_stxcpy_chk): Likewise.
27873         (gimple_fold_builtin_stxncpy_chk): Likewise.
27874         (gimple_fold_builtin_snprintf_chk): Likewise.
27875         (gimple_fold_builtin_sprintf_chk): Likewise.
27876         (gimple_fold_builtin_strlen): New function.
27877         (gimple_fold_builtin_with_strlen): New function split out from
27878         gimple_fold_builtin.
27879         (gimple_fold_builtin): Change signature and handle
27880         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
27881         here.  Call gimple_fold_builtin_with_strlen.
27882         (gimple_fold_call): Adjust.
27883
27884 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
27885
27886         * calls.c (precompute_arguments): Check
27887         promoted_for_signed_and_unsigned_p and set the promoted mode.
27888         (promoted_for_signed_and_unsigned_p): New function.
27889         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
27890         and set the promoted mode.
27891         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
27892         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
27893         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
27894
27895
27896 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
27897
27898         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
27899         instead of SUBREG_PROMOTED_UNSIGNED_SET.
27900         (expand_call): Likewise.
27901         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
27902         to get promoted mode.
27903         * combine.c (record_promoted_value): Skip > 0 comparison with
27904         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
27905         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
27906         of SUBREG_PROMOTED_UNSIGNED_P.
27907         (convert_modes): Likewise.
27908         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
27909         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
27910         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
27911         SUBREG_PROMOTED_UNSIGNED_SET.
27912         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
27913         instead of SUBREG_PROMOTED_UNSIGNED_SET.
27914         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
27915         SUBREG_PROMOTED_SET.
27916         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
27917         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
27918         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
27919         of SUBREG_PROMOTED_UNSIGNED_P.
27920         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
27921         (SUBREG_PROMOTED_SET): New define.
27922         (SUBREG_PROMOTED_GET): Likewise.
27923         (SUBREG_PROMOTED_SIGN): Likewise.
27924         (SUBREG_PROMOTED_SIGNED_P): Likewise.
27925         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
27926         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
27927         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
27928         instead of SUBREG_PROMOTED_UNSIGNED_GET.
27929         (nonzero_bits1): Skip > 0 comparison with the results as
27930         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
27931         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
27932         of !SUBREG_PROMOTED_UNSIGNED_P.
27933         * simplify-rtx.c (simplify_unary_operation_1): Use new
27934         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
27935         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
27936         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
27937         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
27938
27939 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
27940
27941         * ipa-devirt.c: Include gimple-pretty-print.h
27942         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
27943         further tests.
27944         (decl_maybe_in_construction_p): Fix conditional on cdtor check
27945         (get_polymorphic_call_info): Fix return value
27946         (type_change_info): New sturcture based on ipa-prop
27947         variant.
27948         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
27949         based on ipa-prop variant.
27950         (extr_type_from_vtbl_ptr_store): New function
27951         based on ipa-prop variant.
27952         (record_known_type): New function.
27953         (check_stmt_for_type_change): New function.
27954         (get_dynamic_type): New function.
27955         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
27956         * tree-ssa-pre.c: ipa-utils.h
27957         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
27958         machinery; sanity check with ipa-prop devirtualization.
27959         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
27960         polymorphic flag.
27961
27962 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
27963
27964         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
27965         * alias.c, cfgexpand.c, cgraphbuild.c,
27966         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
27967         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
27968         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
27969         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
27970         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
27971         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
27972         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
27973         dse.c, except.c, gengtype.c, gimple-expr.c,
27974         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
27975         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
27976         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
27977         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
27978         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
27979         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
27980         pointer-set.h.
27981         * pointer-set.c: Remove file.
27982         * pointer-set.h: Remove file.
27983
27984 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27985
27986         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
27987         * config/arm/types.md (f_sels, f_seld): Delete.
27988
27989 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27990
27991         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
27992         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
27993         (aarch64_movdi_<mode>high): Likewise.
27994         (aarch64_mov<mode>high_di): Likewise.
27995         (aarch64_movdi_<mode>low): Likewise.
27996         (aarch64_mov<mode>low_di): Likewise.
27997         (aarch64_movtilow_tilow): Likewise.
27998         Add comment explaining usage of fp,simd attributes and of
27999         TARGET_FLOAT and TARGET_SIMD.
28000
28001 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
28002             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28003
28004         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
28005         Use MOVN when one of the half-words is 0xffff.
28006
28007 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
28008
28009         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
28010
28011 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28012
28013         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
28014         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
28015         (rfs_str): String corresponding to RFS_* constants.
28016         (rank_for_schedule_stats_t): New typedef.
28017         (rank_for_schedule_stats): New static variable.
28018         (rfs_result): New static function.
28019         (rank_for_schedule): Track statistics for deciding heuristics.
28020         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
28021         static functions.
28022         (ready_sort): Use them for debug printouts.
28023         (schedule_block): Init statistics state.  Print statistics on
28024         rank_for_schedule decisions.
28025
28026 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28027
28028         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
28029
28030 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
28031
28032         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
28033         constraint.
28034
28035 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28036
28037         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
28038         function to not conflict.
28039         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
28040         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
28041         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
28042         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
28043         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
28044         of pointer_map.
28045
28046 2014-08-07  Marek Polacek  <polacek@redhat.com>
28047
28048         * fold-const.c (fold_binary_loc): Add folding of
28049         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
28050
28051 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
28052
28053         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
28054         instead of type size.
28055         (ASM_FINISH_DECLARE_OBJECT): Likewise.
28056
28057 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
28058
28059         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
28060         (*thumb1_movqi_insn): Likewise.
28061         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
28062
28063 2014-08-07  Tom de Vries  <tom@codesourcery.com>
28064
28065         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
28066         (glibc_2_11_or_earlier): Remove effective-target keywords.
28067
28068 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
28069
28070         * config/arm/arm.c (bdesc_2arg): Fix typo.
28071         (arm_atomic_assign_expand_fenv): Remove The default implementation.
28072
28073 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28074
28075         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
28076
28077 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
28078
28079         PR debug/61923
28080         * haifa-sched.c (advance_one_cycle): Fix dump.
28081         (schedule_block): Don't advance cycle if we are already at the
28082         beginning of the cycle.
28083
28084 2014-08-06  Martin Jambor  <mjambor@suse.cz>
28085
28086         PR ipa/61393
28087         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
28088
28089 2014-08-06  Richard Biener  <rguenther@suse.de>
28090
28091         PR lto/62034
28092         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
28093         SCCs here.
28094         (lto_input_tree): Pop SCCs here.
28095
28096 2014-08-06  Richard Biener  <rguenther@suse.de>
28097
28098         PR tree-optimization/61320
28099         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
28100         handle misaligned loads.
28101
28102 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
28103
28104         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
28105         (aarch64_expand_vec_perm_const): Check for dup before zip.
28106
28107 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28108
28109         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
28110         CONST_INT_P instead of GET_CODE and compare.
28111         (aarch64_select_cc_mode): Likewise.
28112         (aarch64_print_operand): Likewise.
28113         (aarch64_rtx_costs): Likewise.
28114         (aarch64_simd_valid_immediate): Likewise.
28115         (aarch64_simd_check_vect_par_cnst_half): Likewise.
28116         (aarch64_simd_emit_pair_result_insn): Likewise.
28117
28118 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
28119
28120         * gdbhooks.py (find_gcc_source_dir): New helper function.
28121         (class PassNames): New class, locating and parsing passes.def.
28122         (class BreakOnPass): New command "break-on-pass".
28123
28124 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
28125
28126         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
28127         getting olde.
28128
28129 2014-08-05  Richard Biener  <rguenther@suse.de>
28130
28131         PR rtl-optimization/61672
28132         * emit-rtl.h (mem_attrs_eq_p): Declare.
28133         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
28134         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
28135         * cfgcleanup.c (merge_memattrs): Likewise.
28136         Include emit-rtl.h.
28137
28138 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28139
28140         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
28141         rather than singleton vectors.
28142         (vqdmlsls_lane_s32): Likewise.
28143
28144 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28145
28146         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
28147         Use VSDQ_HSI mode iterator.
28148         (aarch64_sqrdmulh_laneq<mode>): Likewise.
28149         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
28150         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
28151         Use BUILTIN_VDQHS macro.
28152         (sqrdmulh_laneq): Likewise.
28153         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
28154         (vqdmlals_laneq_s32): Likewise.
28155         (vqdmlslh_laneq_s16): Likewise.
28156         (vqdmlsls_laneq_s32): Likewise.
28157         (vqdmulhh_laneq_s16): Likewise.
28158         (vqdmulhs_laneq_s32): Likewise.
28159         (vqrdmulhh_laneq_s16): Likewise.
28160         (vqrdmulhs_laneq_s32): Likewise.
28161
28162 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28163
28164         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
28165         (vmuld_laneq_f64): Likewise.
28166         (vmuls_laneq_f32): Likewise.
28167         (vmul_n_f64): Likewise.
28168         (vmuld_lane_f64): Reimplement in C.
28169         (vmuls_lane_f32): Likewise.
28170
28171 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28172
28173         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
28174         to reservation.
28175         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
28176
28177 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28178
28179         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
28180         (rbitsi2): Likewise.
28181         (*arm_rev): Set predicable and predicable_short_it attributes.
28182
28183 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28184
28185         * convert.c (convert_to_integer): Guard transformation to lrint by
28186         -fno-math-errno.
28187
28188 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
28189
28190         * config/aarch64/aarch64-builtins.c
28191         (aarch64_simd_builtin_type_mode): Delete.
28192         (v8qi_UP): Remap to V8QImode.
28193         (v4hi_UP): Remap to V4HImode.
28194         (v2si_UP): Remap to V2SImode.
28195         (v2sf_UP): Remap to V2SFmode.
28196         (v1df_UP): Remap to V1DFmode.
28197         (di_UP): Remap to DImode.
28198         (df_UP): Remap to DFmode.
28199         (v16qi_UP):V16QImode.
28200         (v8hi_UP): Remap to V8HImode.
28201         (v4si_UP): Remap to V4SImode.
28202         (v4sf_UP): Remap to V4SFmode.
28203         (v2di_UP): Remap to V2DImode.
28204         (v2df_UP): Remap to V2DFmode.
28205         (ti_UP): Remap to TImode.
28206         (ei_UP): Remap to EImode.
28207         (oi_UP): Remap to OImode.
28208         (ci_UP): Map to CImode.
28209         (xi_UP): Remap to XImode.
28210         (si_UP): Remap to SImode.
28211         (sf_UP): Remap to SFmode.
28212         (hi_UP): Remap to HImode.
28213         (qi_UP): Remap to QImode.
28214         (aarch64_simd_builtin_datum): Make mode a machine_mode.
28215         (VAR1): Build builtin name.
28216         (aarch64_init_simd_builtins): Remove dead code.
28217
28218 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
28219
28220         * graphite-isl-ast-to-gimple.c:
28221         (set_options): New function.
28222         (scop_to_isl_ast): Add calling of set_options.
28223
28224 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
28225
28226         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
28227         (analyze_iv_to_split_insn): Don't initialize them.
28228         (get_ivts_expr): Removed.
28229         (allocate_basic_variable, insert_base_initialization): Use
28230         SET_SRC instead of *get_ivts_expr.
28231         (split_iv): Use &SET_SRC instead of get_ivts_expr.
28232
28233 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
28234
28235         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
28236         (translate_isl_ast_for_loop): Add checking of the
28237         flag_loop_parallelize_all.
28238         (ast_build_before_for): New function.
28239         (scop_to_isl_ast): Add checking of the
28240         flag_loop_parallelize_all.
28241         * graphite-dependences.c: Move the defenition of the
28242         scop_get_dependences from graphite-optimize-isl.c to this file.
28243         (apply_schedule_on_deps): Add checking of the ux's emptiness.
28244         (carries_deps): Add checking of the x's value.
28245         * graphite-optimize-isl.c: Move the defenition of the
28246         scop_get_dependences to graphite-dependences.c.
28247         * graphite-poly.h: Add declarations of scop_get_dependences
28248         and carries_deps.
28249
28250 2014-08-04  Rohit  <rohitarulraj@freescale.com>
28251
28252         PR target/60102
28253         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
28254         names.
28255         (alt_reg_names): Likewise.
28256         (rs6000_dwarf_register_span): For SPE high registers, replace
28257         dwarf register numbers with GCC hard register numbers.
28258         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
28259         (rs6000_dbx_register_number): For SPE high registers, return dwarf
28260         register number for the corresponding GCC hard register number.
28261         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
28262         newly added GCC hard register numbers for SPE high registers.
28263         (DWARF_FRAME_REGISTERS):  Likewise.
28264         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
28265         (DWARF_FRAME_REGNUM): Likewise.
28266         (FIXED_REGISTERS): Likewise.
28267         (CALL_USED_REGISTERS): Likewise.
28268         (CALL_REALLY_USED_REGISTERS): Likewise.
28269         (REG_ALLOC_ORDER): Likewise.
28270         (enum reg_class): Likewise.
28271         (REG_CLASS_NAMES): Likewise.
28272         (REG_CLASS_CONTENTS): Likewise.
28273         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
28274
28275 2014-08-04  Richard Biener  <rguenther@suse.de>
28276
28277         * gimple-fold.h (gimple_fold_builtin): Remove.
28278         * gimple-fold.c (gimple_fold_builtin): Make static.
28279         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
28280         fold_stmt, not gimple_fold_builtin.
28281
28282 2014-08-04  Martin Liska <mliska@suse.cz>
28283
28284         * cgraph.h (csi_end_p): Removed.
28285         (csi_next): Likewise.
28286         (csi_node): Likewise.
28287         (csi_start): Likewise.
28288         (cgraph_node_in_set_p): Likewise.
28289         (cgraph_node_set_size): Likewise.
28290         (vsi_end_p): Likewise.
28291         (vsi_next): Likewise.
28292         (vsi_node): Likewise.
28293         (vsi_start): Likewise.
28294         (varpool_node_set_size): Likewise.
28295         (cgraph_node_set_nonempty_p): Likewise.
28296         (varpool_node_set_nonempty_p): Likewise.
28297         * cgraphunit.c (cgraph_process_new_functions): vec replaces
28298         cgraph_node_set.
28299         * ipa-inline-transform.c: Likewise.
28300         * ipa-utils.c (cgraph_node_set_new): Removed.
28301         (cgraph_node_set_add): Likewise.
28302         (cgraph_node_set_remove): Likewise.
28303         (cgraph_node_set_find): Likewise.
28304         (dump_cgraph_node_set): Likewise.
28305         (debug_cgraph_node_set): Likewise.
28306         (free_cgraph_node_set): Likewise.
28307         (varpool_node_set_new): Likewise.
28308         (varpool_node_set_add): Likewise.
28309         (varpool_node_set_remove): Likewise.
28310         (varpool_node_set_find): Likewise.
28311         (dump_varpool_node_set): Likewise.
28312         (free_varpool_node_set): Likewise.
28313         (debug_varpool_node_set): Likewise.
28314         * tree-emutls.c (struct tls_var_data):
28315         (emutls_index): Removed.
28316         (emutls_decl): Likewise.
28317         (gen_emutls_addr): Function implementation uses newly added
28318         hash_map<varpool_node *, tls_var_data>.
28319         (clear_access_vars): Likewise.
28320         (create_emultls_var): Likewise.
28321         (ipa_lower_emutls): Likewise.
28322         (reset_access): New function.
28323
28324 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
28325
28326         * config/i386/i386.c (ix86_option_override_internal): Add
28327         PTA_RDRND and PTA_MOVBE for bdver4.
28328
28329 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28330             James Greenhalgh  <james.greenhalgh@arm.com>
28331
28332         * doc/md.texi (clrsb): Document.
28333         (clz): Change reference to x into operand 1.
28334         (ctz): Likewise.
28335         (popcount): Likewise.
28336
28337 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28338
28339         PR target/61713
28340         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
28341         move to subtarget in serial version if result is ignored.
28342
28343 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28344             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28345
28346         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
28347         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
28348         (sched_analyze_insn): Update use of try_group_insn to
28349         sched_macro_fuse_insns.
28350         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
28351         arguments that are not conditional jumps.
28352
28353 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
28354
28355         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
28356         family information. Handle BTVER2 cpu with cpuid family value.
28357
28358 2014-08-04  Tom de Vries  <tom@codesourcery.com>
28359
28360         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
28361         (glibc_2_11_or_earlier): Document effective-target keywords.
28362
28363 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
28364
28365         * ipa-devirt.c (odr_type_warn_count): Add type.
28366         (possible_polymorphic_call_targets): Set it.
28367         (ipa_devirt): Use it.
28368
28369 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
28370
28371         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
28372         Document.
28373         * ipa-devirt.c: Include hash-map.h
28374         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
28375         (clear_speculation): Break out of ...
28376         (get_class_context): ... here; speed up handling obviously useless
28377         speculations.
28378         (odr_type_warn_count, decl_warn_count): New structures.
28379         (final_warning_record): New structure.
28380         (final_warning_records): New static variable.
28381         (possible_polymorphic_call_targets): Cleanup handling of
28382         speculative info; do not build speculation when user do not care;
28383         record info about warnings when asked for.
28384         (add_decl_warning): New function.
28385         (type_warning_cmp): New function.
28386         (decl_warning_cmp): New function.
28387         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
28388         (gate): Enable pass when warnings are requested.
28389         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
28390         options.
28391
28392 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
28393
28394         * hash-map.h (default_hashmap_traits::mark_key_deleted):
28395         Fix cast.
28396         (hash_map::remove): New method.
28397         (hash_map::traverse): New method.
28398         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
28399         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
28400         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
28401         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
28402         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
28403         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
28404         pointer_map.
28405
28406 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
28407
28408         * hash-set.h: new File.
28409         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
28410         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
28411         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
28412         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
28413         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
28414         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
28415         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
28416         varpool.c: Use hash_set instead of pointer_set.
28417
28418 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
28419
28420         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
28421
28422 2014-08-01  Jiong Wang <jiong.wang@arm.com>
28423
28424         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
28425         for frame access when strict_p is false.
28426
28427 2014-08-01  Renlin Li <renlin.li@arm.com>
28428 2014-08-01  Jiong Wang <jiong.wang@arm.com>
28429
28430         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
28431         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
28432         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
28433         Declaration.
28434         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
28435         predicate.
28436         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
28437         aarch64_mem_pair_offset.
28438
28439 2014-08-01  Jiong Wang <jiong.wang@arm.com>
28440
28441         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
28442         offset.
28443         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
28444         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
28445
28446 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
28447
28448         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
28449
28450 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
28451
28452         PR regression/61510
28453         * cgraphunit.c (analyze_functions): Use get_create rather than get
28454         for decls which are clones of abstract functions.
28455
28456 2014-08-01  Martin Liska  <mliska@suse.cz>
28457
28458         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
28459         * ipa-prop.h (count_formal_params): Global function created from static.
28460         * ipa-prop.c (count_formal_params): Likewise.
28461         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
28462         profiles for semantically equivalent functions.
28463         * passes.c (do_per_function): If we load body of a function
28464         during WPA, this condition should behave same.
28465         * varpool.c (ctor_for_folding): More tolerant assert for variable
28466         aliases created during WPA.
28467
28468 2014-08-01  Martin Liska  <mliska@suse.cz>
28469
28470         * doc/invoke.texi (Options That Control Optimization): Documentation
28471         for -foptimize-strlen introduced. Optimization levels default options
28472         fixed.
28473
28474 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
28475
28476         * opts.c (common_handle_option): Handle -fsanitize=alignment.
28477         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
28478         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
28479         type to bool.
28480         * stor-layout.h (min_align_of_type): New prototype.
28481         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
28482         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
28483         check.
28484         * ubsan.c: Include builtins.h.
28485         (ubsan_expand_bounds_ifn): Change return type to bool,
28486         always return true.
28487         (ubsan_expand_null_ifn): Change return type to bool, change
28488         argument to gimple_stmt_iterator *.  Handle both null and alignment
28489         sanitization, take type from ckind argument's type rather than
28490         first argument.
28491         (instrument_member_call): Removed.
28492         (instrument_mem_ref): Remove t argument, add mem and base arguments.
28493         Handle both null and alignment sanitization, don't say whole
28494         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
28495         call instead of 2 argument.
28496         (instrument_null): Adjust instrument_mem_ref caller.  Don't
28497         instrument calls here.
28498         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
28499         like SANITIZE_NULL.
28500         * stor-layout.c (min_align_of_type): New function.
28501         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
28502         Or it into SANITIZE_UNDEFINED.
28503         * doc/invoke.texi (-fsanitize=alignment): Document.
28504
28505 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28506
28507         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
28508
28509 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28510
28511         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
28512         inchash.
28513         (vn_reference_compute_hash): Dito.
28514         (vn_nary_op_compute_hash): Dito.
28515         (vn_phi_compute_hash): Dito.
28516         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
28517
28518 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28519
28520         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
28521         Rename to inchash:add_expr_commutative. Convert to inchash.
28522         (iterative_hash_hashable_expr): Rename to
28523         inchash:add_hashable_expr. Convert to inchash.
28524         (avail_expr_hash): Dito.
28525
28526 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28527
28528         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
28529         Convert to inchash.
28530
28531 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28532
28533         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
28534
28535 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28536
28537         * Makefile.in (OBJS): Add rtlhash.o
28538         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
28539         (loc_checksum): Dito.
28540         (loc_checksum_ordered): Dito.
28541         (hash_loc_operands): Dito.
28542         (hash_locs): Dito.
28543         (hash_loc_list): Dito.
28544         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
28545         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
28546         * rtlhash.c: New file.
28547         * rtlhash.h: New file.
28548
28549 2014-07-31  Andi Kleen  <ak@linux.intel.com>
28550
28551         * inchash.h (inchash): Change inchash class to namespace.
28552         (class hash): ... Rename from inchash.
28553         (add_object): Move from macro to class template.
28554         * lto-streamer-out.c (hash_tree): Change inchash
28555         to inchash::hash.
28556         * tree.c (build_type_attribute_qual_variant): Dito.
28557         (type_hash_list): Dito.
28558         (attribute_hash_list): Dito.
28559         (iterative_hstate_expr): Rename to inchash::add_expr
28560         (build_range_type_1): Change inchash to inchash::hash
28561         and use hash::add_expr.
28562         (build_array_type_1): Dito.
28563         (build_function_type): Dito
28564         (build_method_type_directly): Dito.
28565         (build_offset_type): Dito.
28566         (build_complex_type): Dito.
28567         (make_vector_type): Dito.
28568         * tree.h (iterative_hash_expr): Dito.
28569
28570 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
28571
28572         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
28573
28574 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
28575
28576         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
28577         correct alphabetical position.
28578         (vpaddd_f64): Rewrite using builtins.
28579         (vpaddd_s64): Move to correct alphabetical position.
28580         (vpaddd_u64): New.
28581
28582 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
28583
28584         PR target/61844
28585         * config/sh/sh.c (sh_legitimate_address_p,
28586         sh_legitimize_reload_address): Handle reg+reg address modes when
28587         ALLOW_INDEXED_ADDRESS is false.
28588         * config/sh/predicates.md (general_movsrc_operand,
28589         general_movdst_operand): Likewise.
28590
28591 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
28592
28593         * config/aarch64/aarch64-builtins.c
28594         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
28595         BYTES_BIG_ENDIAN.
28596
28597 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
28598
28599         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
28600         the generated mask based on BYTES_BIG_ENDIAN.
28601         (aarch64_simd_check_vect_par_cnst_half): New.
28602         * config/aarch64/aarch64-protos.h
28603         (aarch64_simd_check_vect_par_cnst_half): New.
28604         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
28605         the check out to aarch64_simd_check_vect_par_cnst_half.
28606         (vect_par_cnst_lo_half): Likewise.
28607         * config/aarch64/aarch64-simd.md
28608         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
28609         (move_hi_quad_<mode>): Always generate a low mask.
28610
28611 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28612
28613         * doc/invoke.texi (AVR Options): Add documentation about
28614         __AVR_DEVICE_NAME__ built-in macro.
28615
28616 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
28617
28618         PR target/61948
28619         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
28620         constraints are satisfied.
28621         (<shift>di3_neon): Likewise.
28622
28623 2014-07-31  Richard Biener  <rguenther@suse.de>
28624
28625         PR tree-optimization/61964
28626         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
28627         by structural equality.
28628
28629 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
28630
28631         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
28632         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
28633         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
28634         New enums.
28635         * gcc.c (sanitize_spec_function): Support new option.
28636         (SANITIZER_SPEC): Remove now redundant check.
28637         * opts.c (common_handle_option): Support new option.
28638         (finish_options): Check for incompatibilities.
28639         * toplev.c (process_options): Split userspace-specific checks.
28640
28641 2014-07-31  Richard Biener  <rguenther@suse.de>
28642
28643         * lto-streamer.h (struct output_block): Remove global.
28644         (struct data_in): Remove labels, num_named_labels and
28645         num_unnamed_labels.
28646         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
28647         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
28648
28649 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
28650
28651         PR c++/60517
28652         * common.opt (-Wreturn-local-addr): Moved from c.opt.
28653         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
28654         (isolate_path): New argument to avoid inserting a trap.
28655         (find_implicit_erroneous_behaviour): Handle returning the address
28656         of a local variable.
28657         (find_explicit_erroneous_behaviour): Likewise.
28658
28659 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
28660
28661         PR lto/61868
28662         * toplev.c (init_random_seed): Move piece of code never called to
28663         set_random_seed.
28664         (set_random_seed): see above.
28665
28666 2014-07-31  Tom de Vries  <tom@codesourcery.com>
28667
28668         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
28669
28670 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
28671
28672         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
28673         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
28674
28675 2014-07-31  Richard Biener  <rguenther@suse.de>
28676
28677         * data-streamer.h (streamer_write_data_stream): Declare here,
28678         renamed from ...
28679         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
28680         * lto-cgraph.c (lto_output_node): Adjust.
28681         (lto_output_varpool_node): Likewise.
28682         * data-streamer-out.c (streamer_string_index): Likewise.
28683         (streamer_write_data_stream, lto_append_block): Move from ...
28684         * lto-section-out.c (lto_output_data_stream,
28685         lto_append_block): ... here.
28686
28687 2014-07-30  Mike Stump  <mikestump@comcast.net>
28688
28689         * configure.ac: Also check for popen.
28690         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
28691         * configure: Regenerate.
28692         * config.in:  Regenerate.
28693
28694 2014-07-30  Martin Jambor  <mjambor@suse.cz>
28695
28696         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
28697         parameter to gimple.
28698
28699 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28700
28701         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
28702         address as second parameter to __tpf_eh_return routine.
28703
28704 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
28705
28706         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
28707         Thumb2.
28708
28709 2014-07-30  Tom Tromey  <tromey@redhat.com>
28710
28711         PR c/59855
28712         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
28713         * doc/extend.texi (Type Attributes): Document designated_init
28714         attribute.
28715
28716 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
28717
28718         * graphite-isl-ast-to-gimple.c:
28719         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
28720         (gcc_expression_from_isl_expression): Pass type to
28721         gcc_expression_from_isl_ast_expr_id.
28722
28723 2014-07-30  Richard Biener  <rguenther@suse.de>
28724
28725         * lto-streamer.h (lto_write_data): New function.
28726         * langhooks.c (lhd_append_data): Do not free block.
28727         * lto-section-out.c (lto_write_data): New function writing
28728         raw data to the current section.
28729         (lto_write_stream): Adjust for langhook semantic change.
28730         (lto_destroy_simple_output_block): Write header directly.
28731         * lto-opts.c (lto_write_options): Write options directly.
28732         * lto-streamer-out.c (produce_asm): Write heaeder directly.
28733         (lto_output_toplevel_asms): Likewise.
28734         (copy_function_or_variable): Copy data directly.
28735         (write_global_references): Output index table directly.
28736         (lto_output_decl_state_refs): Likewise.
28737         (write_symbol): Write data directly.
28738         (produce_symtab): Adjust.
28739         (produce_asm_for_decls): Output header and refs directly.
28740
28741 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
28742
28743         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
28744         to speculative_targets
28745         (get_class_context): Fix handling of contextes without outer type;
28746         avoid matching non-polymorphic types in LTO.
28747         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
28748         parameter to speculative_targetsp; handle speculation.
28749         (dump_possible_polymorphic_call_targets): Update dumping.
28750
28751 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
28752
28753         * common.opt (Wodr): Enable by default.
28754
28755 2014-07-29  Olivier Hainque  <hainque@adacore.com>
28756
28757         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
28758
28759 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
28760
28761         PR bootstrap/61914
28762         * gengtype.c (strtoken): New function.
28763         (create_user_defined_type): Replace strtok with strtoken.
28764
28765 2014-07-29  Nathan Sidwell  <nathan@acm.org>
28766
28767         * gcov-io.c (gcov_var): Make hidden.
28768         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
28769         (gcov_do_dump): Declare.
28770         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
28771
28772 2014-07-29  Martin Jambor  <mjambor@suse.cz>
28773
28774         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
28775         parameter to gimple.
28776         (sra_modify_assign): Likewise.
28777
28778 2014-07-29  Richard Biener  <rguenther@suse.de>
28779
28780         PR middle-end/52478
28781         * expr.c (expand_expr_real_2): Revert last change.
28782
28783 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
28784
28785         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
28786         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
28787         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
28788         call.
28789         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
28790         (contains_type_p): Forward declare.
28791         (polymorphic_call_target_hasher::hash): Hash speculative info.
28792         (polymorphic_call_target_hasher::equal): Compare speculative info.
28793         (get_class_context): Handle speuclation.
28794         (contains_type_p): Update.
28795         (get_polymorphic_call_info_for_decl): Update.
28796         (walk_ssa_copies): Break out from ...
28797         (get_polymorphic_call_info): ... here; set speculative context
28798         before giving up.
28799         * ipa-prop.c (ipa_write_indirect_edge_info,
28800         ipa_read_indirect_edge_info): Stream speculative context.
28801         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
28802         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
28803         SPECULATIVE_MAYBE_DERIVED_TYPE).
28804         (possible_polymorphic_call_targets overriders): Update.
28805         (dump_possible_polymorphic_call_targets overriders): Update.
28806         (dump_possible_polymorphic_call_target_p overriders): Update.
28807
28808 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
28809
28810         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
28811         ipa-devirt path; fix thinko there.
28812
28813 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
28814
28815         * config/i386/i386.c (ix86_return_in_memory): Replace one
28816         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
28817
28818 2014-07-28  Marek Polacek  <polacek@redhat.com>
28819
28820         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
28821
28822 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
28823
28824         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
28825         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
28826         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
28827         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
28828         (USE_LD_AS_NEEDED): Likewise.
28829         (ASM_APP_ON): Likewise.
28830         (ASM_APP_OFF): Likewise.
28831         (TARGET_POSIX_IO): Likewise.
28832         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
28833         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
28834         (USE_LD_AS_NEEDED): Likewise.
28835         (ASM_APP_ON): Likewise.
28836         (ASM_APP_OFF): Likewise.
28837         (TARGET_POSIX_IO): Likewise.
28838
28839 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
28840
28841         PR middle-end/61734
28842         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
28843         operators other than the equality operators.
28844
28845 2014-07-28  Richard Biener  <rguenther@suse.de>
28846
28847         PR middle-end/52478
28848         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
28849         sure to register SImode ones, not only >= word_mode ones.
28850         * expr.c (expand_expr_real_2): When expanding -ftrapv
28851         binops do not use OPTAB_LIB_WIDEN.
28852
28853 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
28854
28855         PR middle-end/61919
28856         * tree-outof-ssa.c (insert_partition_copy_on_edge)
28857         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
28858         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
28859         inserting them in the insn stream.
28860
28861 2014-07-28  Marek Polacek  <polacek@redhat.com>
28862
28863         PR middle-end/61913
28864         * common.opt (Wodr): Add Var.
28865
28866 2014-07-28  Richard Biener  <rguenther@suse.de>
28867
28868         PR tree-optimization/61921
28869         * tree-ssa-structalias.c (create_variable_info_for_1): Check
28870         if there is a varpool node before dereferencing it.
28871
28872 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
28873
28874         * graphite-sese-to-poly.c:
28875         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
28876         id of the pbb), which contains pointer to the pbb1.
28877
28878         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
28879
28880 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
28881
28882         * graphite-isl-ast-to-gimple.c:
28883         (graphite_create_new_guard): New function.
28884         (translate_isl_ast_node_if): New function.
28885         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
28886
28887         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
28888
28889 2014-07-27  Anthony Green  <green@moxielogic.com>
28890
28891         * config.gcc: Add moxie-*-moxiebox* configuration.
28892         * config/moxie/moxiebox.h: New file.
28893
28894 2014-07-26  Andrew Pinski  <apinski@cavium.com>
28895
28896         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
28897         from the read only register.
28898
28899 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
28900
28901         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
28902         as the allocation class if it isn't likely to be spilled.
28903
28904 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
28905
28906         * rtl.h (tls_referenced_p): Declare.
28907         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
28908         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
28909         (mips_cannot_force_const_mem): Use tls_referenced_p.
28910         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
28911         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
28912         instead of pa_tls_referenced_p.
28913         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
28914         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
28915         (pa_legitimate_constant_p): Likewise.
28916         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
28917         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
28918         (rs6000_cannot_force_const_mem, rs6000_emit_move)
28919         (rs6000_address_for_altivec): Use tls_referenced_p instead of
28920         rs6000_tls_referenced_p.
28921         (rs6000_tls_symbol_ref_1): Delete.
28922
28923 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
28924
28925         PR target/44551
28926         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
28927         Optimize inverse of a VEC_CONCAT.
28928
28929 2014-07-25  Xinliang David Li  <davidxl@google.com>
28930
28931         * params.def: New parameter.
28932         * coverage.c (get_coverage_counts): Check new flag.
28933         (coverage_compute_profile_id): Check new flag.
28934         (coverage_begin_function): Check new flag.
28935         (coverage_end_function): Check new flag.
28936         * value-prof.c (coverage_node_map_initialized_p): New function.
28937         (init_node_map): Populate map with all functions.
28938         * doc/invoke.texi: Document new parameter.
28939
28940 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
28941             Richard Biener <rguenther@suse.de>
28942
28943         * lto-streamer-out.c (struct sccs): Turn to ...
28944         (class DFS): ... this one; refactor the DFS walk so it can
28945         be re-done on per-SCC basis.
28946         (DFS::DFS): New constructor.
28947         (DFS::~DFS): New destructor.
28948         (hash_tree): Add new MAP argument holding in-SCC hash values;
28949         remove POINTER_TYPE hashing hack.
28950         (scc_entry_compare): Rename to ...
28951         (DFS::scc_entry_compare): ... this one.
28952         (hash_scc): Rename to ...
28953         (DFS::hash_scc): ... this one; pass output_block instead
28954         of streamer_cache; work harder to get unique and stable SCC
28955         hashes.
28956         (DFS_write_tree): Rename to ...
28957         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
28958         (lto_output_tree): Update.
28959
28960 2014-07-25  Andi Kleen  <ak@linux.intel.com>
28961
28962         * lto-streamer-out.c (hash_tree): Convert to inchash.
28963
28964 2014-07-25  Andi Kleen  <ak@linux.intel.com>
28965
28966         * tree.c (build_type_attribute_qual_variant): Use inchash.
28967         (type_hash_list): Dito.
28968         (attribute_hash_list): Dito
28969         (iterative_hstate_expr): Dito.
28970         (iterative_hash_expr): Dito.
28971         (build_range_type_1): Dito.
28972         (build_array_type_1): Dito.
28973         (build_function_type): Dito.
28974         (build_method_type_directly): Dito.
28975         (build_offset_type): Dito.
28976         (build_complex_type): Dito.
28977         (make_vector_type): Dito.
28978         * tree.h (iterative_hash_expr): Add compat wrapper.
28979         (iterative_hstate_expr): Add.
28980
28981 2014-07-25  Andi Kleen  <ak@linux.intel.com>
28982
28983         * Makefile.in (OBJS): Add inchash.o.
28984         (PLUGIN_HEADERS): Add inchash.h.
28985         * ipa-devirt.c: Include inchash.h.
28986         * lto-streamer-out.c: Dito.
28987         * tree-ssa-dom.c: Dito.
28988         * tree-ssa-pre.c: Dito.
28989         * tree-ssa-sccvn.c: Dito.
28990         * tree-ssa-tail-merge.c: Dito.
28991         * asan.c: Dito.
28992         * tree.c (iterative_hash_hashval_t): Move to ...
28993         (iterative_hash_host_wide_int): Move to ...
28994         * inchash.c: Here. New file.
28995         * tree.h (iterative_hash_hashval_t): Move to ...
28996         (iterative_hash_host_wide_int): Move to ...
28997         * inchash.h: Here. New file.
28998
28999 2014-07-25  Richard Biener  <rguenther@suse.de>
29000
29001         PR middle-end/61762
29002         PR middle-end/61894
29003         * fold-const.c (native_encode_int): Add and handle offset
29004         parameter to do partial encodings of expr.
29005         (native_encode_fixed): Likewise.
29006         (native_encode_real): Likewise.
29007         (native_encode_complex): Likewise.
29008         (native_encode_vector): Likewise.
29009         (native_encode_string): Likewise.
29010         (native_encode_expr): Likewise.
29011         * fold-const.c (native_encode_expr): Add offset parameter
29012         defaulting to -1.
29013         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
29014         (fold_ctor_reference): Handle all reads from tcc_constant
29015         ctors.
29016
29017 2014-07-25  Richard Biener  <rguenther@suse.de>
29018
29019         * tree-inline.c (estimate_move_cost): Mark speed_p argument
29020         as possibly unused.
29021
29022 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29023
29024         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
29025
29026 2014-07-24  Kyle McMartin  <kyle@redhat.com>
29027
29028         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
29029
29030 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29031
29032         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
29033         Add prototype.
29034         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
29035         function.
29036         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
29037         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
29038         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
29039
29040 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29041
29042         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
29043         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
29044         aggregate types.  Instead, *all* aggregate types, except for single-
29045         element or homogeneous float/vector aggregates, are quadword-aligned
29046         if required by their type alignment.  Issue -Wpsabi note when a type
29047         is now treated differently than before.
29048
29049 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29050
29051         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
29052         does not fit fully into floating-point registers, and there is still
29053         space in the register parameter area, use GPRs to pass those parts
29054         of the argument.  Issue -Wpsabi note if any parameter is now treated
29055         differently than before.
29056         (rs6000_arg_partial_bytes): Update.
29057
29058 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
29059
29060         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
29061
29062 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
29063
29064         * rtl.h (target_rtl): Remove lang_dependent_initialized.
29065         * toplev.c (initialize_rtl): Don't use it.  Move previously
29066         "language-dependent" calls to...
29067         (backend_init): ...here.
29068         (lang_dependent_init_target): Don't set lang_dependent_initialized.
29069         Assert that RTL initialization hasn't happend yet.
29070
29071 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
29072
29073         PR rtl-optimization/61629
29074         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
29075         they have already been initialized.
29076
29077 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
29078
29079         PR middle-end/61268
29080         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
29081         DECL_INCOMING_RTL and entry_parm.
29082         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
29083         * calls.c (load_register_parameters): Likewise argument values.
29084         (emit_library_call_value_1, store_one_arg): Likewise argument
29085         save areas.
29086         * config/i386/i386.c (assign_386_stack_local): Likewise the local
29087         stack slot.
29088         * explow.c (validize_mem): Modify the argument in-place.
29089
29090 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29091
29092         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
29093         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
29094
29095 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29096
29097         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
29098         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
29099
29100 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29101
29102         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
29103         (aarch64_save_callee_saves): New parameter "skip_wb".
29104         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
29105
29106 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29107
29108         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
29109         "wb_candidate2".
29110         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
29111
29112 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
29113
29114         * graphite-isl-ast-to-gimple.c:
29115         (graphite_create_new_loop): Add calling of isl_id_free to properly
29116         decrement reference counts.
29117
29118         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
29119
29120 2014-07-24  Martin Liska  <mliska@suse.cz>
29121         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
29122         function used.
29123         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
29124         (rs6000_code_end): Likewise.
29125
29126 2014-07-24  Martin Liska  <mliska@suse.cz>
29127
29128         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
29129         symtab_node funtion used.
29130         (rs6000_xcoff_declare_object_name): Likewise.
29131
29132 2014-07-24  Martin Liska  <mliska@suse.cz>
29133
29134         * cgraphunit.c (compile): Correct function used.
29135
29136 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
29137
29138         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
29139         as non-indexable.
29140
29141 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
29142
29143         PR lto/61802
29144         * varasm.c (bss_initializer_p): Handle offlined ctors.
29145         (align_variable, get_variable_align): Likewise.
29146         (make_decl_one_only): Likewise.
29147         (default_binds_local_p_1): Likewise.
29148         (decl_binds_to_current_def_p): Likewise.
29149         (get_variable_section): Get constructor if it is offlined.
29150         (assemble_variable_contents): Sanity check that the caller
29151         streamed in the ctor in LTO.
29152
29153 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
29154
29155         * graphite-isl-ast-to-gimple.c:
29156         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
29157         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
29158         isl_ast_op_pdiv_r to the different case.
29159
29160         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
29161
29162 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29163
29164         PR middle-end/61876
29165         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
29166         when flag_errno_math is on.
29167
29168 2014-07-24  Martin Liska  <mliska@suse.cz>
29169
29170         * cgraph.h (varpool_node):
29171         (availability get_availability (void)):
29172         created from cgraph_variable_initializer_availability
29173         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
29174         created from: cgraph_variable_initializer_availability
29175         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
29176         (void finalize_named_section_flags (void)):
29177         created from varpool_finalize_named_section_flags
29178         (bool assemble_decl (void)): created from varpool_assemble_decl
29179         (void analyze (void)): created from varpool_analyze_node
29180         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
29181         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
29182         (void remove_initializer (void)): created from varpool_remove_initializer
29183         (tree get_constructor (void)): created from varpool_get_constructor
29184         (bool externally_visible_p (void)): created from varpool_externally_visible_p
29185         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
29186         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
29187         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
29188         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
29189         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
29190         (static bool output_variables (void)): created from varpool_output_variables
29191         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
29192         created from varpool_extra_name_alias
29193         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
29194         (static void dump_varpool (FILE *f)): created from dump_varpool
29195         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
29196         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
29197         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
29198         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
29199         (void assemble_aliases (void)): created from assemble_aliases
29200
29201 2014-07-24  Martin Liska  <mliska@suse.cz>
29202
29203         * cgraph.h (symtab_node):
29204         (void register_symbol (void)): created from symtab_register_node
29205         (void remove (void)): created from symtab_remove_node
29206         (void dump (FILE *f)): created from dump_symtab_node
29207         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
29208         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
29209         (struct ipa_ref *add_reference (symtab_node *referred_node,
29210         enum ipa_ref_use use_type)): created from add_reference
29211         (struct ipa_ref *add_reference (symtab_node *referred_node,
29212         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
29213         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
29214         gimple stmt)): created from maybe_add_reference
29215         (bool semantically_equivalent_p (symtab_node *target)): created from
29216         symtab_semantically_equivalent_p
29217         (void remove_from_same_comdat_group (void)): created from
29218         remove_from_same_comdat_group
29219         (void add_to_same_comdat_group (symtab_node *old_node)): created from
29220         symtab_add_to_same_comdat_group
29221         (void dissolve_same_comdat_group_list (void)): created from
29222         symtab_dissolve_same_comdat_group_list
29223         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
29224         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
29225         created from symtab_alias_ultimate_target
29226         (inline symtab_node *next_defined_symbol (void)): created from
29227         symtab_next_defined_symbol
29228         (bool resolve_alias (symtab_node *target)): created from
29229         symtab_resolve_alias
29230         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
29231         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
29232         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
29233         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
29234         (void set_section (const char *section)): created from set_section_1
29235         (enum availability get_availability (void)): created from symtab_node_availability
29236         (void make_decl_local (void)): created from symtab_make_decl_local
29237         (bool real_symbol_p (void)): created from symtab_read_node
29238         (can_be_discarded_p (void)): created from symtab_can_be_discarded
29239         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
29240         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
29241         symtab_in_same_comdat_p;
29242         (bool address_taken_from_non_vtable_p (void)): created from
29243         address_taken_from_non_vtable_p
29244         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
29245         (static void dump_table (FILE *)): created from dump_symtab
29246         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
29247         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
29248         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
29249         symtab_used_from_object_file_p
29250         (void dump_base (FILE *)): created from dump_symtab_base
29251         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
29252         (void unregister (void)): created from symtab_unregister_node
29253         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
29254         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
29255         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
29256         symtab_nonoverwritable_alias_1
29257         * cgraph.h (cgraph_node):
29258         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
29259         created from cgraph_remove_node_and_inline_clones
29260         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
29261         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
29262         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
29263         (cgraph_node *function_symbol (enum availability *avail = NULL)):
29264         created from cgraph_function_node
29265         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
29266         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
29267         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
29268         created from cgraph_create_clone
29269         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
29270         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
29271         created from cgraph_create_virtual_clone
29272         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
29273         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
29274         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
29275         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
29276         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
29277         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
29278         created from cgraph_function_version_info
29279         (struct cgraph_function_version_info *insert_new_function_version (void)):
29280         created from insert_new_cgraph_node_version
29281         (struct cgraph_function_version_info *function_version (void)): created from
29282         get_cgraph_node_version
29283         (void analyze (void)): created from analyze_function
29284         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
29285         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
29286         tree real_alias) cgraph_add_thunk
29287         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
29288         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
29289         created from cgraph_function_or_thunk_node
29290         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
29291         created from expand_thunk
29292         (void reset (void)): created from cgraph_reset_node
29293         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
29294         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
29295         (void remove (void)): created from cgraph_remove_node
29296         (void dump (FILE *f)): created from dump_cgraph_node
29297         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
29298         (bool get_body (void)): created from cgraph_get_body
29299         (void release_body (void)): created from cgraph_release_function_body
29300         (void unnest (void)): created from cgraph_unnest_node
29301         (void make_local (void)): created from cgraph_make_node_local
29302         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
29303         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
29304         gcov_type count, int freq)): created from cgraph_create_edge
29305         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
29306         gcov_type count, int freq)): created from cgraph_create_indirect_edge
29307         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
29308         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
29309         created from cgraph_create_edge_including_clones
29310         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
29311         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
29312         (void remove_callers (void)): created from cgraph_node_remove_callers
29313         (void remove_callees (void)): created from cgraph_node_remove_callees
29314         (enum availability get_availability (void)): created from cgraph_function_body_availability
29315         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
29316         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
29317         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
29318         (void call_duplication_hooks (cgraph_node *node2)): created from
29319         cgraph_call_node_duplication_hooks
29320         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
29321         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
29322         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
29323         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
29324         (void call_function_insertion_hooks (void)):
29325         created from cgraph_call_function_insertion_hooks
29326         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
29327         (bool local_p (void)): created from cgraph_local_node
29328         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
29329         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
29330         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
29331         (inline bool only_called_directly_or_aliased_p (void)):
29332         created from cgraph_only_called_directly_or_aliased_p
29333         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
29334         created from cgraph_will_be_removed_from_program_if_no_direct_calls
29335         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
29336         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
29337         (bool can_remove_if_no_direct_calls_p (void)):
29338         created from cgraph_can_remove_if_no_direct_calls_p
29339         (inline bool has_gimple_body_p (void)):
29340         created from cgraph_function_with_gimple_body_p
29341         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
29342         (static void dump_cgraph (FILE *f)): created from dump_cgraph
29343         (static inline void debug_cgraph (void)): created from debug_cgraph
29344         (static void record_function_versions (tree decl1, tree decl2)):
29345         created from record_function_versions
29346         (static void delete_function_version (tree decl)):
29347         created from delete_function_version
29348         (static void add_new_function (tree fndecl, bool lowered)):
29349         created from cgraph_add_new_function
29350         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
29351         (static cgraph_node * create (tree decl)): created from cgraph_create_node
29352         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
29353         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
29354         (static cgraph_node *get_for_asmname (tree asmname)):
29355         created from cgraph_node_for_asm
29356         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
29357         created from cgraph_same_body_alias
29358         (static bool used_from_object_file_p_worker (cgraph_node *node,
29359         void *): new function
29360         (static bool non_local_p (cgraph_node *node, void *)):
29361         created from cgraph_non_local_node_p_1
29362         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
29363         created from verify_cgraph
29364         (static bool make_local (cgraph_node *node, void *)):
29365         created from cgraph_make_node_local
29366         (static cgraph_node *create_alias (tree alias, tree target)):
29367         created from cgraph_create_function_alias
29368         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
29369         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
29370         created from cgraph_create_edge_1
29371         * cgraph.h (varpool_node):
29372         (void remove (void)): created from varpool_remove_node
29373         (void dump (FILE *f)): created from dump_varpool_node
29374
29375 2014-07-24  Richard Biener  <rguenther@suse.de>
29376
29377         PR ipa/61823
29378         * tree-ssa-structalias.c (create_variable_info_for_1):
29379         Use varpool_get_constructor.
29380         (create_variable_info_for): Likewise.
29381
29382 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29383
29384         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
29385         subtract outgoing area size when restoring stack_pointer_rtx.
29386
29387 2014-07-24  Nick Clifton  <nickc@redhat.com>
29388
29389         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
29390         that operations are taking place in parallel.
29391         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
29392
29393 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
29394
29395         * omp-low.c (extract_omp_for_data): Add missing break statement.
29396
29397 2014-07-24  Richard Biener  <rguenther@suse.de>
29398
29399         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
29400         * tree-inline.c (estimate_move_cost): Add speed_p parameter
29401         and adjust MOVE_RATIO query accordingly.
29402         (estimate_num_insns): Adjust callers.
29403         * ipa-prop.c (ipa_populate_param_decls): Likewise.
29404         * ipa-cp.c (gather_context_independent_values,
29405         estimate_local_effects): Likewise.
29406         * ipa-split.c (consider_split): Likewise.
29407
29408 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
29409
29410         * config/i386/driver-i386.c: Remove names of unused arguments and
29411         unnecessary unused attributes.
29412         * config/i386/host-mingw32.c: Likewise.
29413         * config/i386/i386.c: Likewise.
29414         * config/i386/winnt-stubs.c: Likewise.
29415         * config/i386/winnt.c: Likewise.
29416
29417 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29418
29419         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
29420         (aarch64_gen_loadwb_pair): New helper function.
29421         (aarch64_expand_epilogue): Simplify code using new helper functions.
29422         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
29423
29424 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29425
29426         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
29427         (aarch64_gen_storewb_pair): New helper function.
29428         (aarch64_expand_prologue): Simplify code using new helper functions.
29429         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
29430
29431 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29432
29433         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
29434         Rename to aarch64_save_callee_saves, remove restore code.
29435         (aarch64_restore_callee_saves): New function.
29436
29437 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29438
29439         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
29440         (aarch64_save_callee_saves): New function to handle reg save
29441         for both core and vectore regs.
29442
29443 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29444
29445         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
29446         (aarch64_gen_store_pair): New helper function.
29447         (aarch64_save_or_restore_callee_save_registers)
29448         (aarch64_save_or_restore_fprs): Use new helper functions.
29449
29450 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29451
29452         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
29453         (aarch64_save_or_restore_callee_save_registers)
29454         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
29455
29456 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29457
29458         * config/aarch64/aarch64.c
29459         (aarch64_save_or_restore_callee_save_registers)
29460         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
29461
29462 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29463
29464         * config/aarch64/aarch64.c
29465         (aarch64_save_or_restore_callee_save_registers)
29466         (aarch64_save_or_restore_fprs): Remove 'increment'.
29467
29468 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29469
29470         * config/aarch64/aarch64.c
29471         (aarch64_save_or_restore_callee_save_registers)
29472         (aarch64_save_or_restore_fprs): Use register offset in
29473         cfun->machine->frame.reg_offset.
29474
29475 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29476
29477         * config/aarch64/aarch64.c
29478         (aarch64_save_or_restore_callee_save_registers)
29479         (aarch64_save_or_restore_fprs): Remove base_rtx.
29480
29481 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29482
29483         * config/aarch64/aarch64.c
29484         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
29485         to 'start_offset'.  Remove local variable 'start_offset'.
29486
29487 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29488
29489         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
29490         type to HOST_WIDE_INT.
29491
29492 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29493
29494         * config/aarch64/aarch64.c (aarch64_expand_prologue)
29495         (aarch64_save_or_restore_fprs)
29496         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
29497
29498 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
29499
29500         * config/arm/t-rtems-eabi: Add
29501         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
29502         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
29503         mbig-endian/mthumb/march=armv7-r, and
29504         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
29505         multilibs.
29506
29507 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
29508             Chris Johns <chrisj@rtems.org>
29509             Joel Sherrill <joel.sherrill@oarcorp.com>
29510
29511         * config.gcc: Add nios2-*-rtems*.
29512         * config/nios2/rtems.h: New file.
29513         * gcc/config/nios2/t-rtems: New file.
29514
29515 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
29516
29517         PR target/61396
29518         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
29519         constant numbers, not general constants.
29520         (rs6000_expand_vector_init): Ditto.
29521
29522 2014-07-23  Nathan Sidwell  <nathan@acm.org>
29523
29524         * gcov-tool.c (gcov_list): Declare here.
29525         (set_gcov_list): Remove.
29526         (gcov_output_files): Set gcov_list directly.
29527
29528 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
29529
29530         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
29531
29532 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
29533
29534         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
29535         callee-saved registers are available for padding purpose
29536         and r3 is not mandatory, then prefer use those callee-saved
29537         instead of r3.
29538
29539 2014-07-23  Richard Biener  <rguenther@suse.de>
29540
29541         * params.def (PARAM_MAX_COMBINE_INSNS): New.
29542         * combine.c: Include statistics.h and params.h.
29543         (combine_instructions): Guard three and four insn combines
29544         with max-combine-insns value.  Record statistics for combines
29545         performed.
29546         * doc/invoke.texi (max-combine-insns): Document new param.
29547
29548 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
29549
29550         * graphite-isl-ast-to-gimple.c:
29551         (translate_isl_ast_node_block): New function.
29552         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
29553
29554         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
29555         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
29556
29557 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
29558
29559         * graphite-isl-ast-to-gimple.c:
29560         (get_max_schedule_dimensions): New function.
29561         (extend_schedule): Likewise.
29562         (generate_isl_schedule): Add calling of extend_schedule and
29563         get_max_schedule_dimensions.
29564
29565 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29566
29567         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
29568         (case UNSPEC): Handle UNSPEC_RBIT.
29569
29570 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29571
29572         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
29573         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
29574
29575 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29576
29577         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
29578
29579 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
29580
29581         * graphite-isl-ast-to-gimple.c:
29582         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
29583         (ivs_params_clear):
29584         (build_iv_mapping): New function.
29585         (translate_isl_ast_node_user): Likewise.
29586         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
29587
29588         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
29589         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
29590         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
29591
29592 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
29593
29594         PR target/55701
29595         * config/arm/arm.md (setmem): New pattern.
29596         * config/arm/arm-protos.h (struct tune_params): New fields.
29597         (arm_gen_setmem): New prototype.
29598         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
29599         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
29600         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
29601         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
29602         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
29603         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
29604         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
29605         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
29606         (arm_const_inline_cost): New function.
29607         (arm_block_set_max_insns): New function.
29608         (arm_block_set_non_vect_profit_p): New function.
29609         (arm_block_set_vect_profit_p): New function.
29610         (arm_block_set_unaligned_vect): New function.
29611         (arm_block_set_aligned_vect): New function.
29612         (arm_block_set_unaligned_non_vect): New function.
29613         (arm_block_set_aligned_non_vect): New function.
29614         (arm_block_set_vect, arm_gen_setmem): New functions.
29615
29616 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
29617
29618         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
29619
29620 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
29621
29622         PR target/61855
29623         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
29624         out of #ifdef __OPTIMIZE__.
29625
29626 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
29627
29628         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
29629         different trapping status if -fnon-call-exceptions is enabled.
29630
29631 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
29632
29633         * expr.c (store_field): Handle VOIDmode for calls that return values
29634         in multiple locations.
29635
29636 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29637
29638         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
29639         (altivec_vsldoi_<mode>): Likewise.
29640
29641 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
29642
29643         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
29644         to the number of characters in the line.
29645
29646 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
29647
29648         * graphite-isl-ast-to-gimple.c: Add using of
29649         build_nonstandard_integer_type instead of int128_integer_type_node.
29650
29651 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
29652
29653         * toplev.c (output_stack_usage): Adjust the location of the warning.
29654
29655 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
29656
29657         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
29658         (*membar_storeload): Disable for LEON3.
29659
29660 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29661
29662         PR rtl-optimization/61461
29663         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
29664
29665 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
29666
29667         PR target/61794
29668         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
29669         Fix instruction constraint.
29670         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
29671
29672 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
29673
29674         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
29675
29676 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
29677
29678         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
29679         GNU coding standards.
29680         (nds32_register_move_cost): Likewise.
29681         (nds32_memory_move_cost): Likewise.
29682         (nds32_address_cost): Likewise.
29683
29684 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
29685
29686         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
29687
29688 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
29689
29690         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
29691         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
29692         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
29693         (HAVE_sync_compare_and_swapqi): Define.
29694         (HAVE_sync_compare_and_swaphi): Likewise.
29695         (HAVE_sync_compare_and_swapsi): Likewise.
29696
29697 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
29698
29699         * config/mips/p5600.md: Add missing cpu tests.
29700
29701 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29702
29703         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
29704         (vmla_f64): Likewise.
29705         (vfms_f64): Likewise.
29706         (vmls_f64): Likewise.
29707
29708 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29709
29710         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
29711         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
29712
29713 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29714
29715         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
29716         (vmlal_high_lane_s32): Likewise.
29717         (vmlal_high_lane_u16): Likewise.
29718         (vmlal_high_lane_u32): Likewise.
29719         (vmlsl_high_lane_s16): Likewise.
29720         (vmlsl_high_lane_s32): Likewise.
29721         (vmlsl_high_lane_u16): Likewise.
29722         (vmlsl_high_lane_u32): Likewise.
29723
29724 2014-07-17  Terry Guo  <terry.guo@arm.com>
29725
29726         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
29727         (alus_reg): Renamed to alus_sreg.
29728         * config/arm/arm-fixed.md: Change type of non-dsp instructions
29729         from alu_reg to alu_sreg.  Change type of dsp instructions from
29730         alu_reg to alu_dsp_reg.
29731         * config/arm/thumb1.md: Likewise.
29732         * config/arm/thumb2.md: Likewise.
29733         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
29734         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
29735         with alu_sreg and alus_sreg.
29736         * config/arm/arm1026ejs.md (alu_op): Likewise.
29737         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
29738         * config/arm/arm926ejs.md (9_alu_op): Likewise.
29739         * config/arm/fa526.md (526_alu_op): Likewise.
29740         * config/arm/fa606te.md (606te_alu_op): Likewise.
29741         * config/arm/fa626te.md (626te_alu_op): Likewise.
29742         * config/arm/fa726te.md (726te_alu_op): Likewise.
29743         * config/arm/fmp626.md (mp626_alu_op): Likewise.
29744         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
29745         alu_sreg, alu_dsp_reg and alus_sreg.
29746         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
29747         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
29748         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
29749         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
29750         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
29751         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
29752         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
29753         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
29754         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
29755         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
29756         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
29757         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
29758         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
29759         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
29760         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
29761         alus_reg to alus_sreg.
29762
29763 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
29764
29765         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
29766         infinity format.
29767
29768 2014-07-17  Richard Biener  <rguenther@suse.de>
29769
29770         PR rtl-optimization/61801
29771         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
29772         don't set reg_pending_barrier if it appears in a debug-insn.
29773
29774 2014-07-16  DJ Delorie  <dj@redhat.com>
29775
29776         * config/rx/rx.c (rx_option_override): Fix alignment values.
29777         (rx_align_for_label): Likewise.
29778
29779 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
29780
29781         PR target/61737.
29782         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
29783         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
29784         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
29785         functions.
29786         (cris_print_index, cris_print_operand, cris_constant_index_p)
29787         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
29788         (cris_address_cost): Ditto last CONSTANT_P.
29789         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
29790         callers changed.  Yield cris_offsettable_symbol for non-PIC
29791         constant symbolic expressions including labels.  Yield cris_unspec
29792         for all unspecs.
29793         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
29794         target to pic_offset_table_rtx for calls that will likely go
29795         through PLT, const0_rtx when they can't.  All callers changed.
29796         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
29797         symbolic expressions to be PICified.  Remove second, redundant,
29798         assert on can_create_pseudo_p returning non-zero.  Use
29799         replace_equiv_address_nv, not replace_equiv_address, for final
29800         operand update.
29801         * config/cris/cris.md ("movsi"): Move variable t to pattern
29802         toplevel. Adjust assert for new cris_symbol_type member.  Use
29803         CONSTANT_P instead of CONSTANT_ADDRESS_P.
29804         ("*movsi_internal") <case 9>: Make check for valid unspec operands
29805         for lapc stricter.
29806         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
29807         ("call", "call_value"): Use second incoming operand as a marker
29808         for pic-offset-table-register being used.
29809         ("*expanded_call_non_v32", "*expanded_call_v32")
29810         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
29811         second incoming operand to CALL, match cris_call_type_marker.
29812         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
29813         ("*expanded_call_side"): Ditto.  Fix typo in comment.
29814         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
29815         CONSTANT_P.
29816         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
29817         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
29818         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
29819         users changed.  Add members cris_offsettable_symbol and cris_unspec.
29820         (cris_symbol_type): Rename from cris_pic_symbol_type.
29821         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
29822         just CONSTANT_P.
29823         * config/cris/cris-protos.h (cris_symbol_type_of,
29824         cris_expand_pic_call_address): Adjust prototypes.
29825         (cris_legitimate_constant_p): New prototype.
29826
29827         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
29828         an existing tmake_file.  Don't add t-slibgcc and t-linux.
29829
29830 2014-07-17  Jason Merrill  <jason@redhat.com>
29831
29832         PR c++/61623
29833         * symtab.c (symtab_remove_from_same_comdat_group): Also
29834         set_comdat_group to NULL_TREE.
29835         (verify_symtab): Fix diagnostic.
29836
29837 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
29838
29839         PR target/61662
29840         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
29841
29842 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
29843
29844         Support location tracking for built-in macro tokens
29845         * input.h (is_location_from_builtin_token): New function declaration.
29846         * input.c (is_location_from_builtin_token): New function definition.
29847         * toplev.c (general_init): Tell libcpp what the pre-defined
29848         spelling location for built-in tokens is.
29849
29850 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
29851
29852         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
29853         on the FUNCTION_DECL.
29854
29855 2014-07-16  Richard Biener  <rguenther@suse.de>
29856
29857         PR other/61782
29858         * doc/extend.texi (always_inline): Clarify.
29859
29860 2014-07-15  Eric Christopher  <echristo@gmail.com>
29861
29862         * doc/invoke.texi (Link Options): Document -z option.
29863
29864 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
29865
29866         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
29867         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
29868
29869 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
29870
29871         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
29872
29873 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
29874
29875         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
29876         varpool_assemble_decl.
29877         * varpool.c (varpool_assemble_decl): Assert that node->definition is
29878         true.
29879
29880 2014-07-15  Michael Matz  <matz@suse.de>
29881
29882         PR rtl-optimization/61772
29883         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
29884
29885 2014-07-15  Richard Biener  <rguenther@suse.de>
29886
29887         * opts.c (default_options_table): Disable bit-ccp at -Og.
29888
29889 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
29890
29891         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
29892
29893 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
29894
29895         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
29896         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
29897         call langhook for unknown declaration.
29898         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
29899         * tree.h (DECL_ARGUMENTS): Update.
29900         * print-tree.c (print_node): Update.
29901         * tree-core.h (tree_decl_non_common): Remove arguments.
29902         (tree_function_decl): Add arguments.
29903
29904 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
29905
29906         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
29907
29908 2014-07-14  Richard Biener  <rguenther@suse.de>
29909
29910         PR tree-optimization/61779
29911         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
29912         simplifying a condition.
29913
29914 2014-07-14  Richard Biener  <rguenther@suse.de>
29915
29916         * builtins.c (c_strlen): Make only_value == 2 really only
29917         affect warning generation.
29918
29919 2014-07-14  Richard Biener  <rguenther@suse.de>
29920
29921         PR tree-optimization/61757
29922         PR tree-optimization/61783
29923         PR tree-optimization/61787
29924         * tree-ssa-dom.c (record_equality): Revert canonicalization
29925         change and add comment.
29926         (propagate_rhs_into_lhs): Revert previous fix, removing
29927         loop depth restriction again.
29928
29929 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29930
29931         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
29932         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
29933         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
29934         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
29935         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
29936         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
29937         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
29938
29939 2014-07-14  Richard Biener  <rguenther@suse.de>
29940
29941         * cgraph.h (decl_in_symtab_p): Make inline.
29942
29943 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
29944
29945         PR middle-end/61294
29946         * doc/invoke.texi (-Wmemset-transposed-args): Document.
29947
29948         PR target/61656
29949         * config/i386/i386.c (classify_argument): Don't merge classes above
29950         number of words.
29951
29952 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
29953
29954         * cgraph.h (symtab_node): Add nonzero_address.
29955         (decl_in_symtab_p): Break out from ...
29956         (symtab_get_node): ... here.
29957         * fold-const.c: Include cgraph.h
29958         (tree_single_nonzero_warnv_p): Use symtab to determine
29959         if symbol is non-zero.
29960         * symtab.c (symtab_node::nonzero_address): New method.
29961
29962 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
29963
29964         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
29965         forgotten in previous commit.
29966
29967 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
29968
29969         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
29970         on builtin types.
29971         * ipa-devirt.c: Include stor-layout.h and intl.h
29972         (odr_subtypes_equivalent_p): New function.
29973         (warn_odr): New function.
29974         (warn_type_mismatch): New function.
29975         (odr_types_equivalent_p): New function.
29976         (add_type_duplicate): Use it.
29977         * common.opt (Wodr): New flag.
29978         * doc/invoke.texi (Wodr): Document new warning.
29979
29980 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
29981
29982         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
29983         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
29984         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
29985         (varpool_get_constructor): Push CTORS_IN timevar.
29986         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
29987
29988 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
29989
29990         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
29991         Remove VOID_FTYPE_PUSHORT.
29992         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
29993         Change code to USHORT_FTYPE_VOID.
29994         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
29995         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
29996         (ix86_atomic_assign_expand_fenv): Update for
29997         __builtin_ia32_fnstsw changes.
29998         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
29999         (fnstsw): Change operand 0 to nonimmediate operand.
30000
30001 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30002
30003         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
30004         (varpool_get_constructor): New function.
30005         (varpool_ctor_useable_for_folding_p): Break out from ...
30006         (ctor_for_folding): ... here; use varpool_get_constructor.
30007         (varpool_assemble_decl): Likewise.
30008         * lto-streamer.h (struct output_block): Turn cgraph_node
30009         to symbol filed.
30010         (lto_input_variable_constructor): Declare.
30011         * ipa-visibility.c (function_and_variable_visibility): Use
30012         varpool_get_constructor.
30013         * cgraph.h (varpool_get_constructor): Declare.
30014         (varpool_ctor_useable_for_folding_p): New function.
30015         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
30016         parameter; return error_mark_node for non-trivial constructors.
30017         (lto_write_tree_1, DFS_write_tree): Update use of
30018         get_symbol_initial_value.
30019         (output_function): Update initialization of symbol.
30020         (output_constructor): New function.
30021         (copy_function): Rename to ..
30022         (copy_function_or_variable): ... this one; handle vars too.
30023         (lto_output): Output variable sections.
30024         * lto-streamer-in.c (input_constructor): New function.
30025         (lto_read_body): Rename from ...
30026         (lto_read_body_or_constructor): ... this one; handle vars too.
30027         (lto_input_variable_constructor): New function.
30028         * ipa-prop.c (ipa_prop_write_jump_functions,
30029         ipa_prop_write_all_agg_replacement): Update.
30030         * lto-cgraph.c (compute_ltrans_boundary): Use it.
30031         (output_cgraph_opt_summary): Set symbol to NULL.
30032
30033 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30034
30035         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
30036         non-polymorphic types.
30037         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
30038         * ipa-devirt.c (types_same_for_odr): Do not explode when one
30039         of types is not polymorphic.
30040
30041 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
30042
30043         * lra-constraints.c (remove_inheritance_pseudos): Process
30044         destination pseudo too.
30045
30046 2014-07-11  Rong Xu  <xur@google.com>
30047
30048         * gcov-tool.c (gcov_output_files): Fix build error introduced in
30049         commit r212448.
30050
30051 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
30052
30053         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
30054         * config/avr/avr-devices.c (AVR_MCU): Same.
30055         (avr_mcu_types): add text start value to end of device list.
30056         * config/avr/avr-mcus.def: Add text section start for all devices.
30057         (ata5782): Add new avr5 device.
30058         (ata5831): Same.
30059         * config/avr/avr-tables.opt: Regenerate.
30060         * config/avr/avr.h: Add declaration for text section start handler.
30061         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
30062         SPEC functions.
30063         (LINK_SPEC): Include text section start handler to linker spec.
30064         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
30065         pass -Ttext option to linker if the text section start for the device
30066         is not zero.
30067         * config/avr/t-multilib: Regenerate.
30068         * doc/avr-mmcu.texi: Regenerate.
30069
30070 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
30071
30072         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
30073         * config/rs6000/aix52.h (LINK_SPEC): Same.
30074         * config/rs6000/aix53.h (LINK_SPEC): Same.
30075         * config/rs6000/aix61.h (LINK_SPEC): Same.
30076         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
30077
30078 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
30079
30080         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
30081         (graphite_verify): New function.
30082         (ivs_params_clear): New function.
30083         (gcc_expression_from_isl_ast_expr_id): New function.
30084         (gcc_expression_from_isl_expr_int): New function.
30085         (binary_op_to_tree): New function.
30086         (ternary_op_to_tree): New function.
30087         (unary_op_to_tree): New function.
30088         (nary_op_to_tree): New function.
30089         (gcc_expression_from_isl_expr_op): New function.
30090         (gcc_expression_from_isl_expression): New function.
30091         (graphite_create_new_loop): New function.
30092         (translate_isl_ast_for_loop): New function.
30093         (get_upper_bound): New function.
30094         (graphite_create_new_loop_guard): New function.
30095         (translate_isl_ast_node_for): New function.
30096         (translate_isl_ast): New function.
30097         (add_parameters_to_ivs_params): New function.
30098         (scop_to_isl_ast): New parameter ip.
30099         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
30100
30101 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30102
30103         * config/xtensa/predicates.md (call expander): Update for
30104         DECL_SECTION_NAME being string.
30105
30106 2014-07-11  Richard Biener  <rguenther@suse.de>
30107
30108         PR middle-end/61473
30109         * builtins.c (fold_builtin_memory_op): Inline memory moves that
30110         can be implemented with a single load followed by a single store.
30111         (c_strlen): Only warn when only_value is not 2.
30112
30113 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
30114
30115         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
30116
30117 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
30118
30119         PR target/61561
30120         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
30121         (*movhi_bytes): Likewise.
30122         (*arm_movqi_insn): Likewise.
30123
30124 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
30125
30126         PR target/56858
30127         * config/alpha/alpha.c: Include tree-pass.h, context.h
30128         and pass_manager.h.
30129         (pass_data_handle_trap_shadows): New pass.
30130         (pass_handle_trap_shadows::gate): New pass gate function.
30131         (make_pass_handle_trap_shadows): New function.
30132         (rest_of_handle_trap_shadows): Ditto.
30133
30134         (alpha_align_insns_1): Rename from alpha_align_insns.
30135         (pass_data_align_insns): New pass.
30136         (pass_align_insns::gate): New pass gate function.
30137         (make_pass_aling_insns): New function.
30138         (rest_of_align_insns): Ditto.
30139         (alpha_align_insns): Ditto.
30140
30141         (alpha_option_override): Declare handle_trap_shadows info
30142         and align_insns_info.  Register handle_trap_shadows and align_insns
30143         passes here.
30144         (alpha_reorg): Do not call alpha_trap_shadows and
30145         alpha_align_insn from here.
30146
30147         (alpha_pad_function_end): Do not skip BARRIERs.
30148
30149 2014-07-10  Rong Xu  <xur@google.com>
30150
30151         Add gcov-tool: an offline gcda profile processing tool support.
30152         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
30153         (gcov_is_error): Ditto.
30154         (gcov_read_string): Ditto.
30155         (gcov_read_sync): Ditto.
30156         * gcov-io.h: Move counter defines to gcov-counter.def.
30157         * gcov-dump.c (tag_counters): Use gcov-counter.def.
30158         * coverage.c: Ditto.
30159         * gcov-tool.c: Offline gcda profile processing tool.
30160         (unlink_gcda_file): Remove one gcda file.
30161         (unlink_profile_dir): Remove gcda files from the profile path.
30162         (gcov_output_files): Output gcda files to an output dir.
30163         (profile_merge): Merge two profiles in directory.
30164         (print_merge_usage_message): Print merge usage.
30165         (merge_usage): Print merge usage and exit.
30166         (do_merge): Driver for profile merge sub-command.
30167         (profile_rewrite): Rewrite profile.
30168         (print_rewrite_usage_message): Print rewrite usage.
30169         (rewrite_usage): Print rewrite usage and exit.
30170         (do_rewrite): Driver for profile rewrite sub-command.
30171         (print_usage): Print gcov-info usage and exit.
30172         (print_version): Print gcov-info version.
30173         (process_args): Process arguments.
30174         (main): Main routine for gcov-tool.
30175         * Makefile.in: Build and install gcov-tool.
30176         * gcov-counter.def: New file split from gcov-io.h.
30177         * doc/gcc.texi: Include gcov-tool.texi.
30178         * doc/gcov-tool.texi: Document for gcov-tool.
30179
30180 2014-07-10  Richard Biener  <rguenther@suse.de>
30181
30182         PR tree-optimization/61757
30183         * tree-ssa-dom.c (loop_depth_of_name): Restore.
30184         (propagate_rhs_into_lhs): Revert part of last change.
30185
30186 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
30187
30188         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
30189         FUNCTION_DECLs.
30190
30191 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
30192
30193         PR middle-end/53590
30194         * function.c (allocate_struct_function): Revert r188667 change.
30195
30196         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
30197
30198 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
30199
30200         * doc/install.texi: Remove links to defunct package providers for
30201         Solaris.
30202
30203 2014-07-09  Tom de Vries  <tom@codesourcery.com>
30204
30205         * final.c (get_call_fndecl): Declare.
30206         (self_recursive_call_p): New function.
30207         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
30208
30209 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30210
30211         * ipa-devirt.c (record_node): Walk through aliases.
30212
30213 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30214
30215         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
30216
30217 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30218
30219         Revert:
30220         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
30221
30222 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30223
30224         * ipa-visibility.c (function_and_variable_visibility): Remove
30225         temporary hack disabling local aliases on AIX.
30226
30227 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30228
30229         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
30230         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
30231
30232 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30233
30234         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
30235         * rs6000/rs6000.c: Inline output of .set instruction.
30236         (declare_alias_data): New struct.
30237         (rs6000_declare_alias): New function.
30238         (rs6000_xcoff_declare_function_name): Use it.
30239         (rs6000_xcoff_declare_object_name): New function.
30240         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
30241         (ASM_OUTPUT_DEF): Turn to empty definition.
30242
30243 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
30244
30245         PR bootstrap/61679
30246         * hash-table.h: use hash_table::value_type instead of
30247         Descriptor::value_type in the return types of several methods.
30248
30249 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
30250
30251         * tree-pass.h (pass_data): Remove has_execute member.
30252         * passes.c (execute_one_pass): Don't check pass->has_execute.
30253         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
30254         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
30255         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
30256         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
30257         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
30258         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
30259         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
30260         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
30261         gimple-low.c, gimple-ssa-isolate-paths.c,
30262         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
30263         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
30264         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
30265         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
30266         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
30267         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
30268         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
30269         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
30270         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
30271         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
30272         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
30273         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
30274         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
30275         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
30276         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
30277         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
30278         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
30279         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
30280         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
30281         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
30282         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
30283         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
30284         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
30285         web.c: Remove initializer for pass_data::has_execute.
30286
30287 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
30288
30289         * graphite-htab.h: Use hash_map instead of hash_table.
30290         * graphite-clast-to-gimple.c: Adjust.
30291         * passes.c: Use hash_map instead of hash_table.
30292         * sese.c: Likewise.
30293         * sese.h: Remove now unused code.
30294
30295 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
30296
30297         PR target/61599
30298         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
30299         than zero.
30300
30301 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
30302
30303         PR rtl-optimization/61673
30304         * combine.c (simplify_comparison): Test just mode's sign bit
30305         in tmode rather than the sign bit and any bits above it.
30306
30307 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
30308
30309         * graphite-isl-ast-to-gimple.c (generate_isl_context):
30310         Add __isl_give to the declaration.
30311         (generate_isl_schedule): Likewise.
30312         (scop_to_isl_ast): Likewise.
30313
30314 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30315
30316         * config/arm/arm.c (cortexa5_extra_costs): New table.
30317         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
30318
30319 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
30320
30321         PR tree-optimization/61725
30322         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
30323         range, use range_includes_zerop_p instead of integer_zerop on
30324         vr0->min, only use log2 of max if min is not negative.
30325
30326 2014-07-08  Richard Biener  <rguenther@suse.de>
30327
30328         * tree-ssa-dom.h (loop_depth_of_name): Remove.
30329         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
30330         restriction on loop depth difference.
30331         (record_equality): Likewise.
30332         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
30333         (loop_depth_of_name): Remove.
30334         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
30335         restriction on loop depth difference.
30336         (init_copy_prop): Likewise.
30337
30338 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
30339
30340         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
30341         parameter.
30342         (walk_aliased_vdefs): Likewise.
30343         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
30344         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
30345         (detect_type_change_from_memory_writes): Check if entry was reached.
30346
30347 2014-07-08  Richard Biener  <rguenther@suse.de>
30348
30349         PR tree-optimization/61681
30350         * tree-ssa-structalias.c (find_what_var_points_to): Expand
30351         NONLOCAL inside ESCAPED.
30352
30353 2014-07-08  Richard Biener  <rguenther@suse.de>
30354
30355         PR tree-optimization/61680
30356         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30357         Handle properly all read-write dependences with group accesses.
30358
30359 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
30360
30361         PR tree-optimization/61576
30362         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
30363         block containing reduction statement is predecessor of phi basi block.
30364
30365 2014-07-08  Marek Polacek  <polacek@redhat.com>
30366
30367         PR c/60226
30368         * fold-const.c (round_up_loc): Change the parameter type.
30369         Remove assert.
30370         * fold-const.h (round_up_loc): Adjust declaration.
30371         * stor-layout.c (finalize_record_size): Check for too large types.
30372
30373 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
30374
30375         * symtab.c: Include calls.h.
30376         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
30377
30378 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
30379
30380         * config/rs6000/rs6000.c (output_vec_const_move): Handle
30381         little-endian code generation.
30382         * config/rs6000/spe.md (spe_evmergehi): Rename to...
30383         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
30384         (spe_evmergehilo): Rename to...
30385         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
30386         (spe_evmergelo): Rename to...
30387         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
30388         (spe_evmergelohi): Rename to...
30389         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
30390         (spe_evmergehi, spe_evmergehilo): New expanders.
30391         (spe_evmergelo, spe_evmergelohi): Likewise.
30392         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
30393         (*frob_tf_ti): Likewise.
30394         (*frob_<mode>_di_2): Likewise.
30395         (*frob_tf_di_8_2): Likewise.
30396         (*frob_di_<mode>): Likewise.
30397         (*frob_ti_tf): Likewise.
30398         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
30399         (*frob_ti_<mode>_8_2): Likewise.
30400         (*frob_ti_tf_2): Likewise.
30401         (mov_si<mode>_e500_subreg0): Rename to...
30402         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
30403         endianness only.
30404         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
30405         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
30406         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
30407         the big endianness only.
30408         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
30409         (*mov_si<mode>_e500_subreg0_2): Rename to...
30410         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
30411         big big endianness only.
30412         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
30413         (*mov_si<mode>_e500_subreg4): Rename to...
30414         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
30415         endianness only.
30416         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
30417         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
30418         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
30419         the big endianness only.
30420         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
30421         pattern.
30422         (*mov_si<mode>_e500_subreg4_2): Rename to...
30423         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
30424         endianness only.
30425         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
30426         (*mov_sitf_e500_subreg8): Rename to...
30427         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
30428         endianness only.
30429         (*mov_sitf_e500_subreg8_le): New instruction pattern.
30430         (*mov_sitf_e500_subreg8_2): Rename to...
30431         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
30432         endianness only.
30433         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
30434         (*mov_sitf_e500_subreg12): Rename to...
30435         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
30436         endianness only.
30437         (*mov_sitf_e500_subreg12_le): New instruction pattern.
30438         (*mov_sitf_e500_subreg12_2): Rename to...
30439         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
30440         endianness only.
30441         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
30442
30443 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
30444
30445         * asan.c (instrument_strlen_call): Do not instrument first byte
30446         in strlen if already instrumented.
30447
30448 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30449
30450         * config/arm/arm.opt (mwords-little-endian): Delete.
30451         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
30452         of TARGET_LITTLE_WORDS.
30453         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
30454         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
30455         warning.
30456         * doc/invoke.texi: Remove references to -mwords-little-endian.
30457
30458 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
30459
30460         * expmed.c (struct init_expmed_rtl): Change all fields but
30461         pow2 and cint from struct rtx_def to rtx.
30462         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
30463         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
30464         at the end again.
30465
30466 2014-07-06  Marek Polacek  <polacek@redhat.com>
30467
30468         PR c/6940
30469         * doc/invoke.texi: Document -Wsizeof-array-argument.
30470
30471 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
30472
30473         * wide-int.h (wide_int_storage): Change declaration from struct
30474         to class.
30475
30476 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
30477
30478         * cgraph.c (cgraph_create_indirect_edge): Update call of
30479         get_polymorphic_call_info.
30480         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
30481         (possible_polymorphic_call_targets): Add parameter call.
30482         (decl_maybe_in_construction_p): New predicate.
30483         (get_polymorphic_call_info): Add parameter call;
30484         use decl_maybe_in_construction_p.
30485         * gimple-fold.c (fold_gimple_assign): Update use of
30486         possible_polymorphic_call_targets.
30487         (gimple_fold_call): Likewise.
30488         * ipa-prop.c: Inlcude calls.h
30489         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
30490         (param_type_may_change_p): New predicate.
30491         (detect_type_change_from_memory_writes): Break out from ...
30492         (detect_type_change): ... this one; use param_type_may_change_p.
30493         (detect_type_change_ssa): Use param_type_may_change_p.
30494         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
30495
30496 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
30497
30498         PR target/49423
30499         * config/arm/arm-protos.h (arm_legitimate_address_p,
30500         arm_is_constant_pool_ref): Add prototypes.
30501         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
30502         (arm_is_constant_pool_ref) New function.
30503         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
30504         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
30505         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
30506         operand. Remove pool_range and neg_pool_range attributes.
30507         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
30508         pool_range and neg_pool_range attributes.
30509         * config/arm/constraints.md (Uh): New constraint.
30510         (Uq): Don't allow constant pool references.
30511
30512 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
30513
30514         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
30515         (move_lo_quad_internal_be_<mode>): Likewise.
30516         (move_lo_quad_<mode>): Convert to define_expand.
30517         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
30518         (aarch64_simd_move_hi_quad_be_<mode>): New.
30519         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
30520         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
30521         (aarch64_combinez_be<mode>): New.
30522         (aarch64_combine<mode>): Convert to define_expand.
30523         (aarch64_combine_internal<mode>): New.
30524         (aarch64_simd_combine<mode>): Remove bogus RTL description.
30525
30526 2014-07-04  Tom de Vries  <tom@codesourcery.com>
30527
30528         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
30529         combination of earlyclobber and read/write modifiers.
30530
30531 2014-07-04  Tom de Vries  <tom@codesourcery.com>
30532
30533         * config/aarch64/aarch64-simd.md
30534         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
30535
30536 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
30537
30538         PR target/61714
30539         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
30540
30541 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
30542
30543         PR middle-end/61654
30544         * cgraphunit.c (expand_thunk): Call free_dominance_info.
30545
30546         PR tree-optimization/61684
30547         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
30548         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
30549
30550 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30551             Kito Cheng  <kito@0xlab.org>
30552             Monk Chiang  <sh.chiang04@gmail.com>
30553
30554         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
30555         (nds32_symbol_load_store_p): Move to ...
30556         (nds32_fp_as_gp_check_available): Move to ...
30557         * config/nds32/nds32-fp-as-gp.c: ... here.
30558         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
30559         extern declaration.
30560
30561 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30562             Kito Cheng  <kito@0xlab.org>
30563             Monk Chiang  <sh.chiang04@gmail.com>
30564
30565         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
30566         (nds32_expand_store_multiple): Move to ...
30567         (nds32_expand_movmemqi): Move to ...
30568         * config/nds32/nds32-memory-manipulation.c: ... here.
30569
30570 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30571             Kito Cheng  <kito@0xlab.org>
30572             Monk Chiang  <sh.chiang04@gmail.com>
30573
30574         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
30575         (nds32_output_casesi_pc_relative): Move to ...
30576         (nds32_output_casesi): Move to ...
30577         (nds32_mem_format): Move to ...
30578         (nds32_output_16bit_store): Move to ...
30579         (nds32_output_16bit_load): Move to ...
30580         (nds32_output_32bit_store): Move to ...
30581         (nds32_output_32bit_load): Move to ...
30582         (nds32_output_32bit_load_s): Move to ...
30583         (nds32_output_stack_push): Move to ...
30584         (nds32_output_stack_pop): Move to ...
30585         * config/nds32/nds32-md-auxiliary.c: ... here.
30586
30587 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30588             Ling-Hua Tseng  <uranus@tinlans.org>
30589
30590         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
30591         the purpose of this file.
30592
30593 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30594             Kito Cheng  <kito@0xlab.org>
30595             Monk Chiang  <sh.chiang04@gmail.com>
30596
30597         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
30598         (nds32_address_cost): Move implementation to ...
30599         * config/nds32/nds32-cost.c: ... here.
30600         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
30601         (nds32_address_cost_impl): Declare.
30602
30603 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30604             Kito Cheng  <kito@0xlab.org>
30605             Monk Chiang  <sh.chiang04@gmail.com>
30606
30607         * config/nds32/nds32.c
30608         (nds32_consecutive_registers_load_store_p): Move to ...
30609         (nds32_valid_multiple_load_store): Move to ...
30610         (nds32_valid_stack_push_pop): Move to ...
30611         (nds32_can_use_bclr_p): Move to ...
30612         (nds32_can_use_bset_p): Move to ...
30613         (nds32_can_use_btgl_p): Move to ...
30614         (nds32_can_use_bitci_p): Move to ...
30615         * config/nds32/nds32-predicates.c: ... here.
30616
30617 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30618             Kito Cheng  <kito@0xlab.org>
30619             Monk Chiang  <sh.chiang04@gmail.com>
30620
30621         * config/nds32/nds32.c
30622         (nds32_expand_builtin_null_ftype_reg): Move to ...
30623         (nds32_expand_builtin_reg_ftype_imm): Move to ...
30624         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
30625         (nds32_init_builtins): Move implementation to ...
30626         (nds32_expand_builtin): Move implementation to ...
30627         * config/nds32/nds32-intrinsic.c: ... here.
30628         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
30629         (nds32_expand_builtin_impl): Declare.
30630
30631 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30632             Kito Cheng  <kito@0xlab.org>
30633             Monk Chiang  <sh.chiang04@gmail.com>
30634
30635         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
30636         (nds32_emit_section_tail_template): Move to ...
30637         (nds32_emit_isr_jmptbl_section): Move to ...
30638         (nds32_emit_isr_vector_section): Move to ...
30639         (nds32_emit_isr_reset_conten): Move to ...
30640         (nds32_check_isr_attrs_conflict): Move to ...
30641         (nds32_construct_isr_vectors_information): Move to ...
30642         (nds32_asm_file_start): Move implementation to ...
30643         (nds32_asm_file_end): Move implementation to ...
30644         * config/nds32/nds32-isr.c: ... here.
30645         * config/nds32/nds32-protos.h
30646         (nds32_check_isr_attrs_conflict): Declare.
30647         (nds32_construct_isr_vectors_information): Declare.
30648         (nds32_asm_file_start_for_isr): Declare.
30649         (nds32_asm_file_end_for_isr): Declare.
30650
30651 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
30652             Kito Cheng  <kito@0xlab.org>
30653             Monk Chiang  <sh.chiang04@gmail.com>
30654
30655         * config.gcc (nds32*): Add new modules to extra_objs.
30656         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
30657         (nds32be-*-*): Likewise.
30658         * config/nds32/nds32-cost.c: New file.
30659         * config/nds32/nds32-fp-as-gp.c: New file.
30660         * config/nds32/nds32-intrinsic.c: New file.
30661         * config/nds32/nds32-isr.c: New file.
30662         * config/nds32/nds32-md-auxiliary.c: New file.
30663         * config/nds32/nds32-memory-manipulation.c: New file.
30664         * config/nds32/nds32-pipelines-auxiliary.c: New file.
30665         * config/nds32/nds32-predicates.c: New file.
30666         * config/nds32/t-nds32: New file.
30667
30668 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
30669
30670         PR tree-optimization/61682
30671         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
30672         using cases and when one of the operands is equal to 1.
30673
30674 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
30675
30676         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
30677         ashr<mode>3): Correct mode of operands[2].
30678         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
30679         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
30680         Correct mode of operands[2].  Fix split condition.
30681
30682 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
30683
30684         * arm.md (arch): Add armv6_or_vfpv3.
30685         (arch_enabled): Add test for the above.
30686         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
30687         on VFP9.
30688         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
30689
30690 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
30691
30692         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
30693         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
30694         HWI 1 and negate the unsigned value.
30695         * expmed.c (expand_sdiv_pow2): For modes wider than word always
30696         use AND instead of shift.
30697         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
30698
30699 2014-07-03  Marek Polacek  <polacek@redhat.com>
30700
30701         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
30702         (-fsanitize=float-divide-by-zero): Move to the table with
30703         -fsanitize=undefined suboptions.
30704         (-fsanitize=float-cast-overflow): Likewise.
30705
30706 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
30707
30708         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
30709         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
30710         endianness.
30711
30712 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30713
30714         * loop-invariant.c (struct invariant): Add a new member: eqno;
30715         (find_identical_invariants): Update eqno;
30716         (create_new_invariant): Init eqno;
30717         (get_inv_cost): Compute comp_cost with eqno;
30718
30719 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
30720
30721         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
30722         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
30723         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
30724         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
30725         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
30726
30727 2014-07-02  Christian Bruel  <christian.bruel@st.com>
30728
30729         PR target/29349
30730         PR target/53513
30731         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
30732         (make_preds_opaque): Delete.
30733         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
30734         (commit_mode_sets): New function.
30735         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
30736         Process all modes at once.
30737         * basic-block.h (pre_edge_lcm_avs): Declare.
30738         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
30739         Call clear_aux_for_edges. Fix comments.
30740         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
30741         (pre_edge_rev_lcm): Idem.
30742         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
30743         parameter.
30744         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
30745         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
30746         Idem.
30747         * config/i386/i386.c (x96_emit_mode_set): Idem.
30748         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
30749         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
30750         (fpscr_toggle) Disallow from delay slot.
30751         * target.def (emit_mode_set): Add prev_mode parameter.
30752         * doc/tm.texi: Regenerate.
30753
30754 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30755
30756         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
30757         variable i.
30758
30759 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
30760
30761         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
30762         vtable_pointer_value_to_vtable): Constify.
30763         (contains_polymorphic_type_p): Declare.
30764         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
30765         vtable_pointer_value_to_vtable): Constify.
30766         (contains_polymorphic_type_p): New predicate.
30767         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
30768         polymorphic types.
30769         (ipa_set_ancestor_jf): Likewise.
30770         (detect_type_change): Return false in easy cases.
30771         (compute_complex_assign_jump_func): Require type to contain
30772         polymorphic type.
30773         (compute_known_type_jump_func): Likewise.
30774
30775 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
30776
30777         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
30778         Remove.
30779         (type_in_anonymous_namespace_p): Constify argument.
30780         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
30781         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
30782         (main_odr_variant): New function.
30783         (hash_type_name): Make static; update assert; do not ICE on
30784         non-records.
30785         (types_same_for_odr): Bring here from tree.c; simplify and remove
30786         old structural comparing code that doesn't work for templates.
30787         (odr_hasher::equal): Update assert.
30788         (add_type_duplicate): Return true when bases should be computed;
30789         replace incomplete loader by complete; do not output duplicated
30790         warnings; do not ICE on non-records; set odr_violated flag.
30791         (get_odr_type): Be ready to replace incomplete type by complete
30792         one; work on ODR variants instead of main variants; reorder item
30793         in array so bases have still smaller indexes.
30794         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
30795         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
30796
30797 2014-07-01  Cary Coutant  <ccoutant@google.com>
30798
30799         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
30800         lookup.
30801         (resolve_addr_in_expr): When replacing the rtx in a location list
30802         entry, get a new address table entry.
30803         (dwarf2out_finish): Call index_location_lists even if there are no
30804         addr_index_table entries yet.
30805
30806 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
30807
30808         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
30809         change for not being obvious.
30810
30811 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
30812
30813         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
30814         unused argument.
30815
30816 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30817
30818         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
30819         (vcagt_f64): Likewise.
30820         (vcale_f64): Likewise.
30821         (vcaled_f64): Likewise.
30822         (vcales_f32): Likewise.
30823         (vcalt_f64): Likewise.
30824         (vcaltd_f64): Likewise.
30825         (vcalts_f32): Likewise.
30826
30827 2014-07-01  Marek Polacek  <polacek@redhat.com>
30828
30829         * doc/invoke.texi: Document -Wint-conversion.
30830
30831 2014-07-01  Marek Polacek  <polacek@redhat.com>
30832
30833         PR c/58286
30834         * doc/invoke.texi: Document -Wincompatible-pointer-types.
30835
30836 2014-07-01  Martin Liska  <mliska@suse.cz>
30837
30838         IPA REF alias refactoring
30839         * cgraph.h (iterate_direct_aliases): New function.
30840         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
30841         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
30842         FOR_EACH_ALIAS added.
30843         (cgraph_for_node_and_aliases): Likewise.
30844         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
30845         * ipa-inline.c (reset_edge_caches): Likewise.
30846         (update_caller_keys): Likewise.
30847         * trans-mem.c (ipa_tm_execute): Likewise.
30848         *varpool.c (varpool_analyze_node): Likewise.
30849         (varpool_for_node_and_aliases): Likewise.
30850         * ipa-ref.h (first_alias): New function.
30851         (last_alias): Likewise.
30852         (has_aliases_p): Likewise.
30853         * ipa-ref.c (ipa_ref::remove_reference): Removal function
30854         is sensitive to IPA_REF_ALIASes.
30855         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
30856         are put at the beginning of the list.
30857         (symtab_node::iterate_direct_aliases): New function.
30858
30859 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30860
30861         Revert:
30862         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
30863         type is complete.
30864         (write_ts_type_common_tree_pointers): Do not stream fields not set
30865         for incomplete types; do not stream duplicated fields for variants;
30866         sanity check that variant and type match.
30867         (write_ts_type_non_common_tree_pointers): Likewise.
30868         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
30869         TYPE_SIZE whether type is complete.
30870         (lto_input_ts_type_common_tree_pointers): Do same changes as in
30871         write_ts_type_common_tree_pointers
30872         (lto_input_ts_type_non_common_tree_pointers): Likewise.
30873
30874 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
30875
30876         * var-tracking.c (add_stores): Return instead of asserting if old
30877         and new values for conditional store are the same.
30878
30879 2014-06-30  Richard Henderson  <rth@redhat.com>
30880
30881         PR rtl-opt/61608
30882         PR target/39284
30883         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
30884         the cfg if there were any changes.
30885         * passes.def: Revert move of peephole2 after reorder_blocks;
30886         move duplicate_computed_gotos before peephole2.
30887
30888 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
30889
30890         * except.c (emit_note_eh_region_end): New helper function.
30891         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
30892         emit EH_REGION_END note.
30893         * jump.c (cleanup_barriers): Do not split a call and its
30894         corresponding CALL_ARG_LOCATION note.
30895
30896 2014-06-30  Jeff Law  <law@redhat.com>
30897
30898         PR tree-optimization/61607
30899         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
30900         deeper into the SSA_NAME_VALUE chain.
30901
30902 2014-06-30  Marek Polacek  <polacek@redhat.com>
30903
30904         * convert.c (convert_to_integer): Don't instrument conversions if the
30905         function has no_sanitize_undefined attribute.
30906         * ubsan.c: Don't run the ubsan pass if the function has
30907         no_sanitize_undefined attribute.
30908
30909 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
30910
30911         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
30912         -fsanitize=undefined suboptions.
30913
30914 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
30915
30916         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
30917         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
30918         against bigendian and adjust indices.
30919
30920 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
30921
30922         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
30923
30924 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30925
30926         PR target/61633
30927         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
30928         Add alternative; make early clobber.  Adjust both split patterns
30929         to use operand 0 as the working register.
30930
30931 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
30932
30933         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
30934         as ira_object_id_map might be NULL, or 1.
30935
30936 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30937
30938         * loop-invariant.c (get_inv_cost): Handle register class.
30939         (gain_for_invariant): Check the register pressure of the inv
30940         and its overlapped register class, other than all.
30941
30942 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
30943
30944         * doc/invoke.texi (Optimize Options): Fix descriptions of
30945         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
30946
30947 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
30948
30949         * doc/extend.texi (Function Attributes): Update 'naked' attribute
30950         documentation.
30951
30952 2014-06-29  Tobias Grosser <tobias@grosser.es>
30953
30954         PR bootstrap/61650
30955         * graphite-isl-ast-to-gimple.c: Add missing guards.
30956
30957 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
30958
30959         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
30960         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
30961         * flag-types.h: Add new enum fgraphite_generator.
30962         * graphite-isl-ast-to-gimple.c: New.
30963         * graphite-isl-ast-to-gimple.h: New.
30964         * graphite.c (graphite_transform_loops): Add choice of Graphite
30965         code generator, which depends on flag_graphite_code_gen.
30966
30967 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
30968
30969         * graphite-dependences.c (subtract_commutative_associative_deps):
30970         Add NULL checking of the following variables: must_raw_no_source,
30971         may_raw_no_source, must_war_no_source, may_war_no_source,
30972         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
30973         must_war, may_war, must_waw, may_waw.
30974
30975 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
30976
30977         * graphite-clast-to-gimple.c: gloog is renamed to
30978         graphite_regenerate_ast_cloog.  gloog_error is renamed to
30979         graphite_regenerate_error.
30980         * graphite-clast-to-gimple.h: The definition of the struct
30981         bb_pbb_def is moved to graphite-htab.h.
30982         Add inclusion of the hash-table.h.
30983         * graphite-htab.h: The declaration of the function gloog is moved
30984         to graphite-clast-to-gimple.h and renamed to
30985         graphite_regenerate_ast_cloog.
30986         * graphite.c (graphite_transform_loops): gloog is renamed
30987         to graphite_regenerate_ast_cloog.
30988
30989 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30990
30991         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
30992         type is complete.
30993         (write_ts_type_common_tree_pointers): Do not stream fields not set
30994         for incomplete types; do not stream duplicated fields for variants;
30995         sanity check that variant and type match.
30996         (write_ts_type_non_common_tree_pointers): Likewise.
30997         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
30998         TYPE_SIZE whether type is complete.
30999         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31000         write_ts_type_common_tree_pointers
31001         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31002
31003 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31004
31005         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
31006
31007 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31008
31009         * tree-inline.c (remap_type_1): Do not duplicate fields
31010         that are shared in between type and its main variant.
31011
31012 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31013
31014         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
31015         of the type.
31016         (ipa_set_ancestor_jf) Likewise.
31017         (check_stmt_for_type_change): Check that we work on main variant.
31018         (detect_type_change): Look into main variant.
31019         (compute_known_type_jump_func): Check that main variant has BINFO.
31020
31021 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31022
31023         * ipa-devirt.c (set_type_binfo): New function.
31024         (add_type_duplicate): Use it.
31025         (get_odr_type): Sanity check that binfos points to main variants.
31026         (get_class_context): Be sure the context's outer_type is main variant.
31027         (contains_type_p): Walk main variant.
31028         (get_polymorphic_call_info_for_decl): Set outer_type to be
31029         main variant.
31030         (get_polymorphic_call_info): Likewise.
31031         (possible_polymorphic_call_targets): Sanity check that we operate
31032         on main variant.
31033
31034 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31035
31036         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31037
31038 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31039
31040         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
31041         accidental change due to wide-int branch merge.
31042
31043 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31044
31045         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
31046         compressed debug support.
31047         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
31048         * configure: Regenerate.
31049         * config.in: Regenerate.
31050         * common.opt (compressed_debug_sections): New enum.
31051         (gz, gz=): New options.
31052         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
31053         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
31054         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
31055         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
31056         LINK_COMPRESS_DEBUG_SPEC.
31057         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
31058         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
31059         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
31060         (Debugging Options): Document -gz[=type].
31061
31062 2014-06-27  Martin Jambor  <mjambor@suse.cz>
31063
31064         PR ipa/61160
31065         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
31066         args_to_skip, use those from node instead.  Copy args_to_skip and
31067         combined_args_to_skip from node to the new thunk.
31068         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
31069         (cgraph_create_virtual_clone): Moved computation of
31070         combined_args_to_skip...
31071         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
31072
31073 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
31074
31075         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
31076         redundant diagnostic machinary.
31077
31078 2014-06-27  Richard Biener  <rguenther@suse.de>
31079
31080         * tree-ssa-math-opts.c (bswap_replace): Fix
31081         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
31082
31083 2014-06-27  Martin Liska  <mliska@suse.cz>
31084
31085         * gimple.h (gimple_location_safe): New function introduced.
31086         * cgraphunit.c (walk_polymorphic_call_targets): Usage
31087         of gimple_location_safe replaces gimple_location.
31088         (gimple_fold_call): Likewise.
31089         * ipa-devirt.c (ipa_devirt): Likewise.
31090         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
31091         * ipa.c (walk_polymorphic_call_targets): Likewise.
31092         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
31093
31094 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
31095
31096         PR tree-optimization/57233
31097         PR tree-optimization/61299
31098         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
31099         functions.
31100         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
31101         would be lowered to scalar shifts, check if corresponding
31102         shifts and vector BIT_IOR_EXPR are supported and don't lower
31103         or lower just to narrower vector type in that case.
31104         * expmed.c (expand_shift_1): Fix up handling of vector
31105         shifts and rotates.
31106
31107 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
31108
31109         PR target/61586
31110         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
31111
31112 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
31113
31114         * doc/invoke.texi (-fsemantic-interposition): Document.
31115         * common.opt (fsemantic-interposition): New flag.
31116         * varasm.c (decl_replaceable_p): Use it.
31117
31118 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31119
31120         PR target/61542
31121         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
31122         extraction other than index 3.
31123
31124 2014-06-26  Teresa Johnson  <tejohnson@google.com>
31125
31126         * doc/invoke.texi: Fix typo.
31127         * dumpfile.c: Add support for documented -fdump-* options
31128         optimized/missed/note/optall.
31129
31130 2014-06-26  Martin Jambor  <mjambor@suse.cz>
31131
31132         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
31133         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
31134         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
31135         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
31136         * opts.c (default_options_optimization): Set
31137         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
31138         * doc/invoke.texi (allow-load-data-races)
31139         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
31140         (allow-store-data-races): Document the new default.
31141
31142 2014-06-26  Martin Jambor  <mjambor@suse.cz>
31143
31144         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
31145         renamed to ipa_impossible_devirt_target.  Fix typo.
31146         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
31147         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
31148         ipa_impossible_devirt_target.
31149
31150 2014-06-26  Richard Biener  <rguenther@suse.de>
31151
31152         PR tree-optimization/61607
31153         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
31154         explaining why we restrict copies on loop depth.
31155         * tree-ssa-dom.c (cprop_operand): Remove restriction on
31156         on loop depth.
31157         (record_equivalences_from_phis): Instead add it here.
31158
31159 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
31160
31161         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
31162         (LTO_WRAPPER_OBJS): New variable.
31163         (lto-wrapper$(exeext)): Use it.
31164         * collect2.c: Include "collect-utils.h".
31165         (verbose, debug): Remove variables.
31166         (at_file_supplied): No longer static.
31167         (tool_name): New variable.
31168         (do_wait, fork_execute, maybe_unlink): Don't declare.
31169         (tool_cleanup): No longer static.
31170         (notice): Remove function.
31171         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
31172         fork_execute calls.
31173         (collect_wait, do_wait, collect_execute): Remove functions.
31174         (maybe_unlink): No longer static.
31175         * collect2.h (verbose, debug): Don't declare.
31176         (at_file_supplied): Declare.
31177         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
31178         changed.
31179         (collect_execute): Replace with implementation from collect2, plus a
31180         new arg use_atfile.  All callers changed.
31181         (collect_wait): Replace with implementation from collect2.
31182         (maybe_unlink_file): Remove function.
31183         (fork_execute): Replace with implementation from collect2, plus a
31184         new arg use_atfile.  All callers changed.
31185         (do_wait): Add call to utils_cleanup to the error path.
31186         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
31187         (tool_cleanup): Adjust declarations.
31188         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
31189         * tlink.c: Include "collect-utils.h".
31190         (tlink_execute): New arg use_atfile.  All callers changed.
31191         (tlink_init, tlink_execute): Remove declarations.
31192
31193         * collect-utils.c (save_temps): New variable.
31194         (do_wait): Use it instead of debug.  Use fatal_error.
31195         * collect-utils.h (save_temps): Declare.
31196         * collect2.c (verbose): Rename from vflag.  All uses changed.
31197         (tool_cleanup): New function, copied from collect_atexit.
31198         (collect_atexit, handler): Just call it.
31199         * collect2.h (verbose): Declaration renamed from vflag.
31200         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
31201         debug.
31202
31203         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
31204         (lto-wrapper$(exeext)): Link with collect-utils.o.
31205         * collect-utils.c: New file.
31206         * collect-utils.h: New file.
31207         * lto-wrapper.c: Include "collect-utils.h".
31208         (args_name): Delete variable.
31209         (tool_name): New variable.
31210         (tool_cleanup): New function.
31211         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
31212         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
31213         (fork_execute): Remove functions.
31214
31215 2014-06-26  Nick Clifton  <nickc@redhat.com>
31216
31217         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
31218
31219         * doc/extend.texi (Function Attributes): Fix typo in description
31220         of RX vector attribute.
31221
31222 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
31223
31224         * config.gcc (supported_defaults): Error when passing either
31225         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
31226
31227 2014-06-26  Richard Biener  <rguenther@suse.de>
31228
31229         * tree-ssa-dom.c (cprop_operand): Remove restriction on
31230         propagating volatile pointers.
31231
31232 2014-06-26  Richard Biener  <rguenther@suse.de>
31233
31234         PR tree-optimization/61607
31235         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
31236         loop if we redirected its latch edge.
31237         (thread_block_1): Do not cancel loops prematurely.
31238
31239 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
31240
31241         * toplev.c (backend_init_target): Move init_emit_regs and
31242         init_regs to...
31243         (backend_init) ... here; skip ira_init_once and backend_init_target.
31244         (target_reinit) ... and here; clear
31245         this_target_rtl->lang_dependent_initialized.
31246         (lang_dependent_init_target): Clear
31247         this_target_rtl->lang_dependent_initialized;
31248         break out rtl initialization to ...
31249         (initialize_rtl): ... here; call also backend_init_target
31250         and ira_init_once.
31251         * toplev.h (initialize_rtl): New function.
31252         * function.c: Include toplev.h
31253         (init_function_start): Call initialize_rtl.
31254         * rtl.h (target_rtl): Add target_specific_initialized,
31255         lang_dependent_initialized.
31256
31257 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
31258             Jakub Jelinek  <jakub@redhat.com>
31259
31260         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
31261
31262 2014-06-25  Tom de Vries  <tom@codesourcery.com>
31263
31264         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
31265
31266 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31267
31268         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
31269         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
31270         Issue a strict overflow warning if appropriate.
31271
31272 2014-06-25  Martin Liska  <mliska@suse.cz>
31273
31274         IPA REF refactoring
31275         * Makefile.in: Removed header file (ipa-ref-inline.h).
31276         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
31277         called.
31278         (cgraph_speculative_call_info): Likewise.
31279         (cgraph_for_node_thunks_and_aliases): Likewise.
31280         (cgraph_for_node_and_aliases): Likewise.
31281         (verify_cgraph_node): Likewise.
31282         * cgraph.h: Batch of IPA REF functions become member functions of
31283         symtab_node: add_reference, maybe_add_reference, clone_references,
31284         clone_referring, clone_reference, find_reference,
31285         remove_stmt_references, remove_all_references,
31286         remove_all_referring, dump_references, dump_referring,
31287         has_alias_p, iterate_reference, iterate_referring.
31288         * cgraphbuild.c (record_reference): New IPA REF function used.
31289         (record_type_list): Likewise.
31290         (record_eh_tables): Likewise.
31291         (mark_address): Likewise.
31292         (mark_load): Likewise.
31293         (mark_store): Likewise.
31294         (pass_build_cgraph_edges): Likewise.
31295         (rebuild_cgraph_edge): Likewise.
31296         (cgraph_rebuild_references): Likewise.
31297         (pass_remove_cgraph_callee_edges): Likewise.
31298         * cgraphclones.c (cgraph_clone_node): Likewise.
31299         (cgraph_create_virtual_clone): Likewise.
31300         (cgraph_materialize_clone): Likewise.
31301         (cgraph_materialize_all_clones): Likewise.
31302         * cgraphunit.c (cgraph_reset_node): Likewise.
31303         (cgraph_reset_node): Likewise.
31304         (analyze_function): Likewise.
31305         (assemble_thunks_and_aliases): Likewise.
31306         (expand_function): Likewise.
31307         * ipa-comdats.c (propagate_comdat_group): Likewise.
31308         (enqueue_references): Likewise.
31309         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
31310         (create_specialized_node): Likewise.
31311         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
31312         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
31313         * ipa-inline.c (reset_edge_caches): Likewise.
31314         (update_caller_keys): Likewise.
31315         (execute): Likewise.
31316         * ipa-prop.c (remove_described_reference): Likewise.
31317         (propagate_controlled_uses): Likewise.
31318         (ipa_edge_duplication_hook): Likewise.
31319         (ipa_modify_call_arguments): Likewise.
31320         * ipa-pure-const.c (propagate_pure_const): Likewise.
31321         * ipa-ref-inline.h: Header file removed, functions moved
31322         to symtab_node class.
31323         * ipa-ref.c (remove_reference): New class member function.
31324         (cannot_lead_to_return): New class member function.
31325         (referring_ref_list): Likewise.
31326         (referred_ref_list): Likewise.
31327         Rest of functions moved to symtab_node class.
31328         * ipa-ref.h: New member functions remove_reference,
31329         cannot_lead_to_return, referring_ref_list, referred_ref_list added
31330         to ipa_ref class.
31331         ipa_ref_list class has new member functions: first_reference,
31332         first_referring, clear, nreferences.
31333         * ipa-reference.c (analyze_function): New IPA REF function used.
31334         (write_node_summary_p): Likewise.
31335         (ipa_reference_write_optimization_summary): Likewise.
31336         * ipa-split.c (split_function): Likewise.
31337         * ipa-utils.c (ipa_reverse_postorder): Likewise.
31338         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
31339         (function_and_variable_visibility): Likewise.
31340         * ipa.c (has_addr_references_p): Likewise.
31341         (process_references): Argument type changed.
31342         (symtab_remove_unreachable_nodes): New IPA REF function used.
31343         (process_references): Likewise.
31344         (set_writeonly_bit): Likewise.
31345         * lto-cgraph.c: Implementation of new symtab_node member functions
31346         that uses new IPA REF functions.
31347         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
31348         function used.
31349         * lto-streamer-out.c (output_symbol_p): Likewise.
31350         * lto-streamer.h (referenced_from_this_partition_p): Argument type
31351         changed.
31352         * symtab.c: Implementation of new IPA REF API.
31353         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
31354         (ipa_tm_create_version): Likewise.
31355         (ipa_tm_execute): Likewise.
31356         * tree-emutls.c (gen_emutls_addr): Likewise.
31357         * tree-inline.c (copy_bb): Likewise.
31358         (delete_unreachable_blocks_update_callgraph): Likewise.
31359         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
31360         (varpool_for_node_and_aliases): Likewise.
31361
31362 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
31363
31364         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
31365
31366 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
31367
31368         PR bootstrap/61598
31369         * fold-const.c (fold_checksum_tree): Use a hash_table of const
31370         tree_node * instead of tree_node *.
31371         (fold): Adjust.
31372         (print_fold_checksum): Likewise.
31373         (fold_check_failed): Likewise.
31374         (debug_fold_checksum): Likewise.
31375         (fold_build1_stat_loc): Likewise.
31376         (fold_build2_stat_loc): Likewise.
31377         (fold_build3_stat_loc): Likewise.
31378         (fold_build_call_array_loc): Likewise.
31379
31380 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
31381
31382         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
31383         implementation with call to...
31384         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
31385         function.
31386         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
31387         Declare.
31388
31389 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
31390
31391         PR tree-optimization/57742
31392         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
31393         after replacing the statement.
31394
31395 2014-06-25  Nick Clifton  <nickc@redhat.com>
31396
31397         * config/v850/v850.c (GHS_default_section_names): Change to const
31398         char * type.
31399         (GHS_current_section_names): Likewise.
31400         (v850_insert_attributes): Do not build strings, just assign the
31401         names directly.  Change the type of 'chosen_section' to const
31402         char*.
31403         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
31404         directly to the array entry.
31405         * config/v850/v850.h (GHS_default_section_names): Change to const
31406         char * type.
31407         (GHS_current_section_names): Likewise.
31408
31409 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
31410
31411         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
31412         (LANG_HOOKS_DECLS): Add it.
31413         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
31414         has correct type.
31415         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
31416         * langhooks.h (struct lang_hooks_for_decls): Add
31417         omp_clause_linear_ctor hook.
31418         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
31419         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
31420         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
31421         combined simd loop use omp_clause_linear_ctor hook.
31422
31423 2014-06-24  Cong Hou  <congh@google.com>
31424
31425         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
31426         pattern recognition.
31427         (type_conversion_p): PROMOTION is true if it's a type promotion
31428         conversion, and false otherwise.  Return true if the given expression
31429         is a type conversion one.
31430         * tree-vectorizer.h: Adjust the number of patterns.
31431         * tree.def: Add SAD_EXPR.
31432         * optabs.def: Add sad_optab.
31433         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
31434         * expr.c (expand_expr_real_2): Likewise.
31435         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
31436         * gimple.c (get_gimple_rhs_num_ops): Likewise.
31437         * optabs.c (optab_for_tree_code): Likewise.
31438         * tree-cfg.c (estimate_operator_cost): Likewise.
31439         * tree-ssa-operands.c (get_expr_operands): Likewise.
31440         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
31441         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
31442         * doc/generic.texi: Add document for SAD_EXPR.
31443         * doc/md.texi: Add document for ssad and usad.
31444
31445 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
31446
31447         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
31448         qualification in cast.
31449
31450 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
31451
31452         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
31453         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
31454         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
31455         (tree_function_decl): ... here.
31456         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
31457         streaming of vindex to ...
31458         (write_ts_function_decl_tree_pointers): ... here.
31459         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
31460         Do not stream DECL_VINDEX.
31461         (lto_input_ts_function_decl_tree_pointers): Stream it here.
31462
31463 2014-06-24  Catherine Moore  <clm@codesourcery.com>
31464             Sandra Loosemore  <sandra@codesourcery.com>
31465
31466         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
31467         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
31468         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
31469
31470 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
31471
31472         * doc/invoke.texi (Warning Options): Remove duplicated
31473         -Wmaybe-uninitialized.
31474
31475 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
31476
31477         PR tree-optimization/57742
31478         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
31479         (handle_builtin_malloc, handle_builtin_memset): New functions.
31480         (strlen_optimize_stmt): Call them.
31481         * passes.def: Move strlen after loop+dom but before vrp.
31482
31483 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
31484
31485         PR target/61570
31486         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
31487         model family 6 CPU with has_longmode never use a CPU without
31488         64-bit support.
31489
31490 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
31491
31492         PR target/61570
31493         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
31494         the last change.
31495
31496 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
31497
31498         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
31499         * dominance.c (iterate_fix_dominators): Use hash_map instead of
31500         pointer_map.
31501         * hash-map.h: New file.
31502         * ipa-comdats.c: Use hash_map instead of pointer_map.
31503         * ipa.c: Likewise.
31504         * lto-section-out.c: Adjust.
31505         * lto-streamer.h: Replace pointer_map with hash_map.
31506         * symtab.c (verify_symtab): Likewise.
31507         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
31508         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
31509         * tree-streamer.h: Likewise.
31510         * tree-streamer.c: Adjust.
31511         * pointer-set.h: Remove pointer_map.
31512
31513 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
31514
31515         * hash-table.h: Add a template arg to choose between storing values
31516         and storing pointers to values, and then provide partial
31517         specializations for both.
31518         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
31519         should store, not the type values should point to.
31520         * tree-into-ssa.c (var_info_hasher): Likewise.
31521         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
31522         * tree-complex.c: Adjust.
31523         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
31524         table instead of int_tree_map *.
31525         * tree-parloops.c: Adjust.
31526         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
31527         type is being stored.
31528         * tree-vectorizer.c: Adjust.
31529
31530 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
31531
31532         * hash-table.h: Remove a layer of indirection from hash_table so that
31533         it contains the hash table's data instead of a pointer to the data.
31534         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
31535         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
31536         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
31537         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
31538         fold-const.c, gcse.c, ggc-common.c,
31539         gimple-ssa-strength-reduction.c, gimplify.c,
31540         graphite-clast-to-gimple.c, graphite-dependences.c,
31541         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
31542         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
31543         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
31544         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
31545         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
31546         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
31547         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
31548         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
31549         tree-ssa-live.c, tree-ssa-loop-im.c,
31550         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
31551         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
31552         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
31553         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
31554         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
31555         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
31556         vtable-verify.c, vtable-verify.h: Adjust.
31557
31558 2014-06-24  Richard Biener  <rguenther@suse.de>
31559
31560         PR tree-optimization/61572
31561         * tree-ssa-sink.c (statement_sink_location): Do not sink
31562         loads from hard registers.
31563
31564 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
31565
31566         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
31567         not mentioned in clauses use private clause if the iterator is
31568         declared in #pragma omp for simd, and when adding lastprivate
31569         instead, add it to the outer #pragma omp for too.  Diagnose
31570         if the variable is private in outer context.  For simd collapse > 1
31571         loops, replace all iterators with temporaries.
31572         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
31573         same even in collapse > 1 loops.
31574
31575         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
31576         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
31577         non-NULL.
31578         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
31579         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
31580         non-NULL.
31581         (gimplify_adjust_omp_clauses): Likewise.
31582         * omp-low.c (lower_rec_simd_input_clauses,
31583         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
31584         safelen the same as safelen(1).
31585         * tree-nested.c (convert_nonlocal_omp_clauses,
31586         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
31587         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
31588         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
31589         Fixup handling of GIMPLE_OMP_TARGET.
31590         (convert_tramp_reference_stmt, convert_gimple_call): Handle
31591         GIMPLE_OMP_TARGET.
31592
31593 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
31594
31595         PR tree-optimization/61554
31596         * tree-ssa-propagate.c: Include "bitmap.h".
31597         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
31598         properly update constructor/destructor.
31599         (substitute_and_fold_dom_walker::before_dom_children):
31600         Remove call to gimple_purge_dead_eh_edges, add bb->index to
31601         need_eh_cleaup instead.
31602         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
31603         need_eh_cleanup.
31604
31605 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
31606
31607         * varpool.c (dump_varpool_node): Dump used_by_single_function.
31608         * tree-pass.h (make_pass_ipa_single_use): New pass.
31609         * cgraph.h (used_by_single_function): New flag.
31610         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
31611         Stream it.
31612         * passes.def (pass_ipa_single_use): Scedule.
31613         * ipa.c (BOTTOM): New macro.
31614         (meet): New function
31615         (propagate_single_user): New function.
31616         (ipa_single_use): New function.
31617         (pass_data_ipa_single_use): New pass.
31618         (pass_ipa_single_use): New pass.
31619         (pass_ipa_single_use::gate): New gate.
31620         (make_pass_ipa_single_use): New function.
31621
31622 2014-06-23  Kai Tietz  <ktietz@redhat.com>
31623
31624         PR target/39284
31625         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
31626         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
31627
31628 2014-06-23  Richard Biener  <rguenther@suse.de>
31629
31630         * tree-ssa-loop.c (gate_loop): New function.
31631         (pass_tree_loop::gate): Call it.
31632         (pass_data_tree_no_loop, pass_tree_no_loop,
31633         make_pass_tree_no_loop): New.
31634         * tree-vectorizer.c: Include tree-scalar-evolution.c
31635         (pass_slp_vectorize::execute): Initialize loops and SCEV if
31636         required.
31637         (pass_slp_vectorize::clone): New method.
31638         * timevar.def (TV_TREE_NOLOOP): New.
31639         * tree-pass.h (make_pass_tree_no_loop): Declare.
31640         * passes.def (pass_tree_no_loop): New pass group with
31641         SLP vectorizer.
31642
31643 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
31644
31645         PR target/61570
31646         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
31647         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
31648
31649 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
31650
31651         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
31652         "yes" where needed.
31653
31654 2014-06-23  Alan Modra  <amodra@gmail.com>
31655
31656         PR bootstrap/61583
31657         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
31658         to zero on debug statements.
31659
31660 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
31661
31662         PR target/60825
31663         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
31664         Ignore third operand if present by marking qualifier_internal.
31665
31666         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
31667
31668         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
31669         vector extension.
31670         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
31671         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
31672         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
31673         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
31674         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
31675         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
31676         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
31677         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
31678         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
31679         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
31680         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
31681         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
31682         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
31683         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
31684         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
31685         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
31686         logic in GCC vector extensions
31687
31688         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
31689         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
31690         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
31691         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
31692         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
31693         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
31694         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
31695         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
31696         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
31697         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
31698
31699         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
31700
31701         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
31702         extensions.
31703
31704         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
31705         (vget_low_s64): Use __GET_LOW macro.
31706         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
31707         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
31708         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
31709         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
31710         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
31711
31712         (vcombine_s64): Use GCC vector extensions; remove cast.
31713         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
31714         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
31715         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
31716         Fix type signature; remove cast.
31717
31718 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
31719
31720         PR target/60825
31721         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
31722         V1DFmode.
31723         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
31724         add V1DFmode
31725         (BUILTIN_VD1): New.
31726         (BUILTIN_VD_RE): Remove.
31727         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
31728         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
31729         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
31730         variant but not df.
31731         (vreinterpretv1df*, vreinterpret*v1df): New.
31732         (vreinterpretdf*, vreinterpret*df): Remove.
31733         * config/aarch64/aarch64-simd.md (aarch64_create,
31734         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
31735         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
31736         (VD1): New.
31737         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
31738         (vcreate_f64): Remove cast, use v1df builtin.
31739         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
31740         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
31741         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
31742         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
31743         vmov_n_f64, vst1_f64): Use gcc vector extensions.
31744         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
31745         add range check using __builtin_aarch64_im_lane_boundsi.
31746         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
31747         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
31748         type signature, use gcc vector extensions.
31749         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
31750         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
31751         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
31752         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
31753         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
31754         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
31755         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
31756         vreinterpret_u64_f64): Use v1df builtin not df.
31757
31758 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
31759
31760         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
31761         vector registers.
31762
31763 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
31764
31765         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
31766         priority directly.
31767
31768 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31769
31770         * loop-invariant.c (pre_check_invariant_p): New function.
31771         (find_invariant_insn): Call pre_check_invariant_p.
31772
31773 2014-06-22  Richard Henderson  <rth@redhat.com>
31774
31775         PR target/61565
31776         * compare-elim.c (struct comparison): Add eh_note.
31777         (find_comparison_dom_walker::before_dom_children): Don't eliminate
31778         a redundant comparison in a different EH region.  Purge EH edges if
31779         necessary.
31780
31781 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
31782
31783         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
31784         (var_shift): Use it.
31785         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
31786         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
31787         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
31788         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
31789         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
31790         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
31791         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
31792         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
31793         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
31794         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
31795         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
31796         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
31797         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
31798         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
31799         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
31800         *rotldi3_internal15be): Use the new attribute.  Merge register and
31801         integer alternatives.
31802
31803 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
31804
31805         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
31806         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
31807         split, *ashrdi3_internal3 and split): Delete, merge into...
31808         (ashr<mode>3): New expander.
31809         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
31810         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
31811
31812 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
31813
31814         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
31815         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
31816         *rotldi3_internal3 and split): Delete, merge into...
31817         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
31818         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
31819         Use "rotlw" extended mnemonic.
31820
31821 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
31822
31823         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
31824         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
31825         and split, *ashldi3_internal3 and split): Delete, merge into...
31826         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
31827         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
31828
31829 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
31830
31831         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
31832         (lshrsi3, two anonymous define_insns and define_splits,
31833         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
31834         *lshrdi3_internal3 and split): Delete, merge into...
31835         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
31836         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
31837
31838 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
31839
31840         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
31841         Remove "O" alternative.
31842
31843 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
31844
31845         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
31846         (mips_move_from_gpr_cost): Likewise.
31847         (mips_register_move_cost): Update accordingly.
31848         (mips_secondary_reload_class): Remove name of in_p.
31849
31850 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
31851
31852         PR target/61503
31853         * config/i386/i386.md (x86_64_shrd, x86_shrd,
31854         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
31855
31856 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31857
31858         * config/nios2/nios2.c: Include "builtins.h".
31859
31860 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
31861
31862         * cgraph.h (tls_model_names): New variable.
31863         * print-tree.c (print_node): Simplify.
31864         * varpool.c (tls_model_names): New variable.
31865         (dump_varpool_node): Output tls model.
31866
31867 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
31868
31869         * ipa-visibility.c (function_and_variable_visibility): Disable
31870         temporarily local aliases for some targets.
31871
31872 2014-06-20  Marek Polacek  <polacek@redhat.com>
31873
31874         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
31875         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
31876         into SANITIZE_UNDEFINED.
31877         * doc/invoke.texi: Describe -fsanitize=bounds.
31878         * gimplify.c (gimplify_call_expr): Add gimplification of internal
31879         functions created in the FEs.
31880         * internal-fn.c: Move "internal-fn.h" after "tree.h".
31881         (expand_UBSAN_BOUNDS): New function.
31882         * internal-fn.def (UBSAN_BOUNDS): New internal function.
31883         * internal-fn.h: Don't define internal functions here.
31884         * opts.c (common_handle_option): Add -fsanitize=bounds.
31885         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
31886         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
31887         * tree-core.h: Define internal functions here.
31888         (struct tree_base): Add ifn field.
31889         * tree-pretty-print.c: Include "internal-fn.h".
31890         (dump_generic_node): Handle functions without CALL_EXPR_FN.
31891         * tree.c (get_callee_fndecl): Likewise.
31892         (build_call_expr_internal_loc): New function.
31893         * tree.def (CALL_EXPR): Update description.
31894         * tree.h (CALL_EXPR_IFN): Define.
31895         (build_call_expr_internal_loc): Declare.
31896         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
31897         types.
31898         (ubsan_type_descriptor): Change bool parameter to enum
31899         ubsan_print_style.  Adjust the code.  Add handling of
31900         UBSAN_PRINT_ARRAY.
31901         (ubsan_expand_bounds_ifn): New function.
31902         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
31903         (ubsan_build_overflow_builtin): Likewise.
31904         (instrument_bool_enum_load): Likewise.
31905         (ubsan_instrument_float_cast): Likewise.
31906         * ubsan.h (enum ubsan_print_style): New enum.
31907         (ubsan_expand_bounds_ifn): Declare.
31908         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
31909
31910 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
31911
31912         * config/rs6000/rs6000.md: Append `DONE' to preparation
31913         statements of `bswap' pattern splitters.
31914
31915 2014-06-20  Tom de Vries  <tom@codesourcery.com>
31916
31917         * target.def (call_fusage_contains_non_callee_clobbers): Update
31918         definition.
31919         * doc/tm.texi: Regenerate.
31920
31921 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
31922             Max Ostapenko  <m.ostapenko@partner.samsung.com>
31923
31924         PR sanitizer/61547
31925         * asan.c (instrument_strlen_call): Fixed instrumentation of
31926         trailing byte.
31927
31928 2014-06-20  Martin Jambor  <mjambor@suse.cz>
31929
31930         PR ipa/61540
31931         * ipa-prop.c (impossible_devirt_target): New function.
31932         (try_make_edge_direct_virtual_call): Use it, also instead of
31933         asserting.
31934
31935 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
31936             Max Ostapenko  <m.ostapenko@partner.samsung.com>
31937
31938         PR sanitizer/61530
31939         * asan.c (build_check_stmt): Add condition.
31940
31941 2014-06-20  Martin Jambor  <mjambor@suse.cz>
31942
31943         PR ipa/61211
31944         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
31945         expanded clones.
31946
31947 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31948
31949         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
31950         Update comments.
31951         (VCONQ): Make comment more helpful.
31952         (VCON): Delete.
31953         * config/aarch64/aarch64-simd.md
31954         (aarch64_sqdmulh_lane<mode>):
31955         Use VCOND for operands 2.  Update lane checking and flipping logic.
31956         (aarch64_sqrdmulh_lane<mode>): Likewise.
31957         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
31958         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
31959         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
31960         attribute of operand 3 to VCOND.
31961         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
31962         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
31963         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
31964         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
31965         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
31966         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
31967         define_insn.
31968         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
31969         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
31970         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
31971         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
31972         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
31973         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
31974         operand to VCOND.  Update lane flipping and bounds checking logic.
31975         (aarch64_sqdmlal2_lane<mode>): Likewise.
31976         (aarch64_sqdmlsl_lane<mode>): Likewise.
31977         (aarch64_sqdmull_lane<mode>): Likewise.
31978         (aarch64_sqdmull2_lane<mode>): Likewise.
31979         (aarch64_sqdmlal_laneq<mode>):
31980         Replace VCON usage with VCONQ.
31981         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
31982         (aarch64_sqdmlal2_laneq<mode>): Emit
31983         aarch64_sqdmlal2_laneq<mode>_internal insn.
31984         Replace VCON with VCONQ.
31985         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
31986         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
31987         (aarch64_sqdmull_laneq<mode>): Emit
31988         aarch64_sqdmull_laneq<mode>_internal insn.
31989         Replace VCON with VCONQ.
31990         (aarch64_sqdmull2_laneq<mode>): Emit
31991         aarch64_sqdmull2_laneq<mode>_internal insn.
31992         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
31993         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
31994         of 3rd argument to int16x4_t.
31995         (vqdmlalh_lane_s16): Likewise.
31996         (vqdmlslh_lane_s16): Likewise.
31997         (vqdmull_high_lane_s16): Likewise.
31998         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
31999         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
32000         (vqdmlsl_lane_s16): Likewise.
32001         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
32002         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
32003         (vqdmlals_lane_s32): Likewise.
32004         (vqdmlsls_lane_s32): Likewise.
32005         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
32006         (vqdmulls_lane_s32): Likewise.
32007         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
32008         (vqdmlsl_lane_s32): Likewise.
32009         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
32010         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
32011         (vqrdmulhh_lane_s16): Likewise.
32012         (vqdmlsl_high_lane_s16): Likewise.
32013         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
32014         (vqdmlsl_high_lane_s32): Likewise.
32015         (vqrdmulhs_lane_s32): Likewise.
32016
32017 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32018
32019         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
32020         get_call_reg_set_usage.
32021
32022 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32023
32024         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
32025         it contains all call_used_regs.
32026
32027 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32028
32029         * final.c (collect_fn_hard_reg_usage): Add and use variable
32030         function_used_regs.
32031
32032 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32033
32034         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
32035         (set_init_priority, get_init_priority, set_fini_priority,
32036         get_fini_priority): New methods.
32037         * tree.c (init_priority_for_decl): Remove.
32038         (init_ttree): Do not initialize init priority.
32039         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
32040         (decl_priority_info): Remove.
32041         (decl_init_priority_insert): Rewrite.
32042         (decl_fini_priority_insert): Rewrite.
32043         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
32044         tree_priority_map_marked_p): Remove.
32045         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
32046         * lto-streamer-out.c (hash_tree): Do not hash priorities.
32047         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
32048         not output priorities.
32049         (pack_ts_function_decl_value_fields): Likewise.
32050         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
32051         not input priorities.
32052         (unpack_ts_function_decl_value_fields): Likewise.
32053         * symtab.c (symbol_priority_map): Declare.
32054         (init_priority_hash): Declare.
32055         (symtab_unregister_node): Unregister from priority hash, too.
32056         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
32057         New methods.
32058         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
32059         (symbol_priority_info): New function.
32060         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
32061         New methods.
32062         * tree-core.h (tree_priority_map): Remove.
32063
32064 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
32065
32066         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
32067         0xff to uint64_t before shifting it up.
32068
32069 2014-06-20  Julian Brown  <julian@codesourcery.com>
32070             Chung-Lin Tang  <cltang@codesourcery.com>
32071
32072         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
32073         TARGET_THUMB1_ONLY. Add comments.
32074
32075 2014-06-19  Tom de Vries  <tom@codesourcery.com>
32076
32077         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
32078         return type to void.
32079         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
32080
32081 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32082
32083         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
32084         as "move", from depends_on.
32085
32086 2014-06-19  Terry Guo  <terry.guo@arm.com>
32087
32088         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
32089         stage.
32090
32091 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
32092
32093         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
32094         Remove cr5.
32095         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
32096
32097 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
32098
32099         PR target/61550
32100         * config/sh/sh.c (prepare_move_operands): Don't process TLS
32101         addresses here if reload in progress or completed.
32102
32103 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
32104
32105         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
32106         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
32107         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
32108         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
32109         (mips_register_priority): New function that implements the target
32110         hook TARGET_REGISTER_PRIORITY.
32111         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
32112         (mips_lra_p): Likewise for TARGET_LRA_P.
32113         (TARGET_REGISTER_PRIORITY): Define macro.
32114         (TARGET_SPILL_CLASS): Likewise.
32115         (TARGET_LRA_P): Likewise.
32116         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
32117         classes.
32118         (REG_CLASS_NAMES): Likewise.
32119         (REG_CLASS_CONTENTS): Likewise.
32120         (BASE_REG_CLASS): Use M16_SP_REGS.
32121         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
32122         New set attribute to enable alternatives depending on the register
32123         allocator used.
32124         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
32125         (*lea64): Disable pattern for MIPS16.
32126         * config/mips/mips.opt (mlra): New option.
32127
32128 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
32129
32130         * lra-constraints.c (base_to_reg): New function.
32131         (process_address): Use new function.
32132
32133 2014-06-18  Tom de Vries  <tom@codesourcery.com>
32134
32135         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
32136         * config/aarch64/aarch64.c
32137         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
32138         (aarch64_emit_call_insn): New function.
32139         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
32140         of emit_call_insn.
32141         * config/aarch64/aarch64.md (define_expand "call_internal")
32142         (define_expand "call_value_internal", define_expand "sibcall_internal")
32143         (define_expand "sibcall_value_internal"): New.
32144         (define_expand "call", define_expand "call_value")
32145         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
32146         expand variant and aarch64_emit_call_insn.
32147
32148 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
32149             Tom de Vries  <tom@codesourcery.com>
32150
32151         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
32152         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
32153         Redefine to true.
32154         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
32155         clobbers to CALL_INSN_FUNCTION_USAGE.
32156         (define_expand "sibcall_internal")
32157         (define_expand "sibcall_value_internal"): New.
32158         (define_expand "call", define_expand "call_value"): Add argument to
32159         arm_emit_call_insn.
32160         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
32161         (define_expand "sibcall_value"): Use sibcall_value_internal and
32162         arm_emit_call_insn.
32163
32164 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32165
32166         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
32167
32168 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32169
32170         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
32171         __udivmoddi4.
32172
32173 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32174
32175         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
32176         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
32177         annotations. Fix DWARF information.
32178
32179 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32180
32181         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
32182         __udivmoddi4, and fixups for negative operands.
32183
32184 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32185
32186         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
32187
32188 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32189
32190         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
32191         to __udivmoddi4.
32192
32193 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32194
32195         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
32196         manipulation.
32197
32198 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32199
32200         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
32201         describing register usage on function entry and exit.
32202
32203 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32204
32205         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
32206         (__aeabi_ldivmod): Fix whitespace.
32207
32208 2014-06-18  Andreas Schwab  <schwab@suse.de>
32209
32210         * doc/md.texi (Standard Names): Use @itemx for grouped items.
32211         Remove blank line after @item.
32212
32213 2014-06-18  Richard Henderson  <rth@redhat.com>
32214
32215         PR target/61545
32216         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
32217
32218 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32219
32220         * config/arm/arm.c (neon_vector_mem_operand): Allow register
32221         POST_MODIFY for neon loads and stores.
32222         (arm_print_operand): Output post-index register for neon loads and
32223         stores.
32224
32225 2014-06-18  Richard Biener  <rguenther@suse.de>
32226
32227         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
32228
32229 2014-06-18  Richard Biener  <rguenther@suse.de>
32230
32231         * tree-pass.h (make_pass_dce_loop): Remove.
32232         * passes.def: Replace pass_dce_loop with pass_dce.
32233         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
32234         changed free niter estimates and reset the scev cache.
32235         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
32236         make_pass_dce_loop): Remove.
32237         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
32238         (fini_copy_prop): Return whether something changed.  Always
32239         let substitute_and_fold perform DCE and free niter estimates
32240         and reset the scev cache if so.
32241         (execute_copy_prop): If sth changed schedule cleanup-cfg.
32242         (pass_data_copy_prop): Do not unconditionally schedule
32243         cleanup-cfg or update-ssa.
32244
32245 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
32246
32247         PR tree-optimization/61518
32248         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
32249         reduction var is used in reduction stmt or phi-function only.
32250
32251 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32252
32253         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
32254
32255 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32256
32257         PR tree-optimization/61517
32258         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
32259         whose rhs's first tree is the source expression instead of the
32260         expression itself.
32261         (find_bswap_or_nop): Likewise.
32262         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
32263         gimple stmt whose rhs's first tree is the source. In the memory source
32264         case, move the stmt to be replaced close to one of the original load to
32265         avoid the problem of a store between the load and the stmt's original
32266         location.
32267         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
32268         signature.
32269
32270 2014-06-18  Andreas Schwab  <schwab@suse.de>
32271
32272         PR rtl-optimization/54555
32273         * postreload.c (move2add_use_add2_insn): Substitute
32274         STRICT_LOW_PART only if it is cheaper.
32275
32276 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
32277
32278         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
32279         Do not use unspec as call operand.  Use memory_operand instead of
32280         memory_nox32_operand and add "m" operand constraint.  Disable
32281         pattern for TARGET_X32.
32282         (*sibcall_pop_memory): Ditto.
32283         (*sibcall_value_memory): Ditto.
32284         (*sibcall_value_pop_memory): Ditto.
32285         (sibcall peepholes): Merge SImode and DImode patterns using
32286         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
32287         Disable pattern for TARGET_X32.  Check if eliminated register is
32288         really dead after call insn.  Generate call RTX without unspec operand.
32289         (sibcall_value peepholes): Ditto.
32290         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
32291         instead of memory_nox32_operand.  Check if eliminated register is
32292         really dead after call insn. Generate call RTX without unspec operand.
32293         (sibcall_value_pop peepholes): Ditto.
32294         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
32295
32296 2014-06-18  Terry Guo  <terry.guo@arm.com>
32297
32298         PR target/61544
32299         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
32300         reach the head.
32301
32302 2014-06-18  Olivier Hainque  <hainque@adacore.com>
32303
32304         * tree-core.h (tree_block): Add an "end_locus" field, allowing
32305         memorization of the end of block source location.
32306         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
32307         * gimplify.c (gimplify_bind_expr): Propagate the block start and
32308         end source location info we have on the block entry/exit code we
32309         generate.
32310
32311 2014-06-18  Richard Biener  <rguenther@suse.de>
32312
32313         * common.opt (fssa-phiopt): New option.
32314         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
32315         but not with -Og.
32316         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
32317         * doc/invoke.texi (-fssa-phiopt): Document.
32318
32319 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32320
32321         * genattrtab.c (n_bypassed): New variable.
32322         (process_bypasses): Initialise n_bypassed.
32323         Count number of bypassed reservations.
32324         (make_automaton_attrs): Allocate space for bypassed reservations
32325         rather than number of bypasses.
32326
32327 2014-06-18  Richard Biener  <rguenther@suse.de>
32328
32329         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
32330         we propagated anything.
32331         (substitute_and_fold_dom_walker::before_dom_children): Something
32332         changed if we propagated into PHI arguments.
32333         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
32334         we removed a stmt.
32335
32336 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
32337
32338         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
32339         vector case.
32340         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
32341         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
32342         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
32343         Introduces alternative way of loads group permutaions.
32344         (vect_transform_grouped_load): Try alternative way of permutations.
32345
32346 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
32347
32348         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
32349         changed in ORT_TARGET region, don't jump to do_outer.
32350         (struct gimplify_adjust_omp_clauses_data): New type.
32351         (gimplify_adjust_omp_clauses_1): Adjust for data being
32352         a struct gimplify_adjust_omp_clauses_data pointer instead
32353         of tree *.  Pass pre_p as a new argument to
32354         lang_hooks.decls.omp_finish_clause hook.
32355         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
32356         splay_tree_foreach to pass both list_p and pre_p.
32357         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
32358         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
32359         gimplify_adjust_omp_clauses callers.
32360         * langhooks.c (lhd_omp_finish_clause): New function.
32361         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
32362         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
32363         * langhooks.h (struct lang_hooks_for_decls): Add a new
32364         gimple_seq * argument to omp_finish_clause hook.
32365         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
32366         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
32367         (scan_omp_parallel, lower_omp_for): When adding
32368         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
32369         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
32370         * tree-nested.c (convert_nonlocal_omp_clauses,
32371         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
32372         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
32373
32374 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
32375
32376         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
32377         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
32378
32379 2014-06-17  Xinliang David Li  <davidxl@google.com>
32380
32381         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
32382         * passes.c (pass_init_dump_file): Do not set initialize
32383         flag to false unconditionally.
32384
32385 2014-06-17  Richard Biener  <rguenther@suse.de>
32386
32387         * genopinit.c (main): Use vec<>::qsort method.
32388         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
32389         Likewise.
32390         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
32391
32392 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
32393
32394         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
32395         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
32396         (mips_move_to_gpr_cost): Remove ST_REGS case.
32397         (mips_move_from_gpr_cost): Likewise.
32398         (mips_register_move_cost): Likewise.
32399         (mips_secondary_reload_class): Likewise.
32400
32401 2014-06-17  Richard Biener  <rguenther@suse.de>
32402
32403         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
32404         (pass_all_optimizations): Move 3rd copy-prop pass from after
32405         fre to before ifcombine/phiopt.
32406
32407 2014-06-17  Richard Biener  <rguenther@suse.de>
32408
32409         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
32410         and allow all blocks to be forwarders.
32411
32412 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
32413
32414         PR target/61483
32415         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
32416         variable 'size'; calculate 'size' right in the front; use
32417         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
32418         pcum->aapcs_stack_words.
32419
32420 2014-06-17  Nick Clifton  <nickc@redhat.com>
32421
32422         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
32423         (umulhi3, mulsidi3, umulsidi3): Likewise.
32424
32425 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
32426
32427         PR middle-end/61508
32428         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
32429         check for section name.
32430
32431 2014-06-17  Richard Biener  <rguenther@suse.de>
32432
32433         * tree-ssa-propagate.c: Include domwalk.h.
32434         (substitute_and_fold): Outline main worker into a domwalker ...
32435         (substitute_and_fold_dom_walker::before_dom_children): ... here.
32436         Schedule stmts we can fully propagate for removal.  Remove
32437         poor-mans DCE.
32438         (substitute_and_fold): Apply a dominator walk to perform
32439         substitution.  Process stmts scheduled for removal here.
32440
32441 2014-06-17  Richard Biener  <rguenther@suse.de>
32442
32443         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
32444         of PHI node moving.
32445
32446 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
32447
32448         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
32449         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
32450         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
32451         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
32452         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
32453         TARGET_HARD_FLOAT.
32454         (get_fpscr) : Likewise.
32455
32456 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
32457
32458         PR rtl-optimization/61325
32459         * lra-constraints.c (valid_address_p): Add forward declaration.
32460         (simplify_operand_subreg): Check address validity before and after
32461         alter_reg of memory subreg.
32462
32463 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
32464
32465         * config/i386/i386.c (decide_alg): Correctly handle
32466         maximum size of stringop algorithm.
32467
32468 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
32469
32470         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
32471
32472 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
32473
32474         PR rtl-optimization/61522
32475         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
32476
32477 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
32478
32479         Revert:
32480         * symtab.c (symtab_node::reset_section): New method.
32481         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
32482         for localization.
32483         * cgraph.h (reset_section): Declare.
32484         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
32485         do not consider comdat locals.
32486         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
32487         for new symbol.
32488         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
32489         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
32490         reset sections of symbols dragged out of the comdats.
32491         (function_and_variable_visibility): Reset sections of
32492         localized symbols.
32493
32494 2014-06-16  Richard Biener  <rguenther@suse.de>
32495
32496         PR tree-optimization/61482
32497         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
32498         [-INF(OVF), +INF(OVF)] range.
32499
32500 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
32501
32502         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
32503         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
32504         handling 32-bit multiplication.
32505
32506 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
32507
32508         PR middle-end/61430
32509         * lra-lives.c (process_bb_lives): Skip creating copy during
32510         insn scan when src/dest has constrained to same regno.
32511
32512 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
32513
32514         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
32515         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
32516
32517 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
32518
32519         * asan.c (check_func): New function.
32520         (maybe_create_ssa_name): Likewise.
32521         (build_check_stmt_with_calls): Likewise.
32522         (use_calls_p): Likewise.
32523         (report_error_func): Change interface.
32524         (build_check_stmt): Allow non-integer lengths; add support
32525         for new parameter.
32526         (asan_instrument): Likewise.
32527         (instrument_mem_region_access): Moved code to build_check_stmt.
32528         (instrument_derefs): Likewise.
32529         (instrument_strlen_call): Likewise.
32530         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
32531         * doc/invoke.texi: Describe new parameter.
32532         * params.def: Define new parameter.
32533         * params.h: Likewise.
32534         * sanitizer.def: Describe new builtins.
32535
32536 2014-06-16  Richard Biener  <rguenther@suse.de>
32537
32538         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
32539         Make all defs available at the end.
32540         (eliminate): If we remove a PHI node schedule cfg-cleanup.
32541
32542 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
32543
32544         PR plugins/45078
32545         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
32546
32547 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
32548
32549         PR bootstrap/61516
32550         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
32551         initialization.  Replace remaining use of uid.
32552
32553 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
32554
32555         * c-family/c-common.c (handle_tls_model_attribute): Use
32556         set_decl_tls_model.
32557         * c-family/c-common.c (handle_tls_model_attribute): Use
32558         set_decl_tls_model.
32559         * cgraph.h (struct varpool_node): Add tls_model.
32560         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
32561         * tree.h (DECL_TLS_MODEL): Update.
32562         (DECL_THREAD_LOCAL_P): Check that variable is static.
32563         (decl_tls_model): Declare.
32564         (set_decl_tls_model): Declare.
32565         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
32566         set symbol prorperties.
32567         (get_emutls_init_templ_addr): Cleanup.
32568         (new_emutls_decl): Update.
32569         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
32570         (lto_input_varpool_node): Likewise.
32571         * lto-streamer-out.c (hash_tree): Likewise.
32572         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
32573         not stream DECL_TLS_MODEL.
32574         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
32575         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
32576
32577 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32578
32579         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
32580
32581 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32582
32583         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
32584         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
32585         lists.
32586         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
32587         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
32588         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
32589         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
32590         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
32591         (df_get_artificial_defs, df_get_artificial_uses)
32592         (df_single_def, df_single_use): Update accordingly.
32593         (df_refs_chain_dump): Take the first element in a linked list as
32594         parameter, rather than a pointer to an array of pointers.
32595         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
32596         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
32597         (df_chain_create_bb_process_use): Likewise.
32598         (df_md_bb_local_compute_process_def): Likewise.
32599         * fwprop.c (process_defs, process_uses): Likewise.
32600         (register_active_defs, update_uses): Likewise.
32601         (forward_propagate_asm): Update for new df_ref linking.
32602         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
32603         (df_null_ref_rec, df_null_mw_rec): Likewise.
32604         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
32605         explicitly.
32606         (df_scan_free_bb_info): Remove check for null artificial_defs.
32607         (df_install_ref_incremental): Adjust for new df_ref linking.
32608         Use a single-element insertion rather than a full sort.
32609         (df_ref_chain_delete_du_chain): Take the first element
32610         in a linked list as parameter, rather than a pointer to an array of
32611         pointers.
32612         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
32613         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
32614         (df_insn_info_delete): Remove check for null defs and call to
32615         df_scan_free_mws_vec.
32616         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
32617         null rather than df_null_*_rec.
32618         (df_insn_rescan_debug_internal): Likewise, and update null
32619         checks in the same way.  Remove check for null defs.
32620         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
32621         Move a single element rather doing a full sort.
32622         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
32623         linking.
32624         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
32625         Initialize df_ref and df_mw_hardreg lists to null rather than
32626         df_null_*_rec.
32627         (df_ref_compare): Take df_refs as parameter, transferring the
32628         old interface to...
32629         (df_ref_ptr_compare): ...this new function.
32630         (df_sort_and_compress_refs): Update accordingly.
32631         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
32632         old interface to...
32633         (df_mw_ptr_compare): ...this new function.
32634         (df_sort_and_compress_mws): Update accordingly.
32635         (df_install_refs, df_install_mws): Return a linked list rather than
32636         an array of pointers.
32637         (df_refs_add_to_chains): Assert that old lists are empty rather
32638         than freeing them.
32639         (df_insn_refs_verify): Don't handle null defs speciailly.
32640         * web.c (union_match_dups): Update for new df_ref linking.
32641
32642 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32643
32644         * df.h (df_ref_create, df_ref_remove): Delete.
32645         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
32646         (df_ref_remove): Likewise.
32647
32648 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32649
32650         * df.h (df_single_def, df_single_use): New functions.
32651         * ira.c (find_moveable_pseudos): Use them.
32652
32653 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32654
32655         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
32656         * df-problems.c (df_note_bb_compute): Use it.
32657         * regstat.c (regstat_bb_compute_ri): Likewise.
32658
32659 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32660
32661         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
32662         * cse.c (cse_extended_basic_block): Use them.
32663         * dce.c (mark_artificial_use): Likewise.
32664         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
32665         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
32666         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
32667         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
32668         (df_simulate_initialize_backwards): Likewise.
32669         (df_simulate_finalize_backwards): Likewise.
32670         (df_simulate_initialize_forwards): Likewise.
32671         (df_md_simulate_artificial_defs_at_top): Likewise.
32672         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
32673         * regrename.c (init_rename_info): Likewise.
32674         * regstat.c (regstat_bb_compute_ri): Likewise.
32675         (regstat_bb_compute_calls_crossed): Likewise.
32676
32677 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
32678
32679         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
32680         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
32681         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
32682         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
32683         * combine.c (create_log_links): Likewise.
32684         * compare-elim.c (find_flags_uses_in_insn): Likewise.
32685         (try_eliminate_compare): Likewise.
32686         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
32687         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
32688         (remove_reg_equal_equiv_notes_for_defs): Likewise.
32689         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
32690         (word_dce_process_block, dce_process_block): Likewise.
32691         * ddg.c (def_has_ccmode_p): Likewise.
32692         * df-core.c (df_bb_regno_first_def_find): Likewise.
32693         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
32694         * df-problems.c (df_rd_simulate_one_insn): Likewise.
32695         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
32696         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
32697         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
32698         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
32699         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
32700         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
32701         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
32702         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
32703         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
32704         * fwprop.c (local_ref_killed_between_p): Likewise.
32705         (all_uses_available_at, free_load_extend): Likewise.
32706         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
32707         * hw-doloop.c (scan_loop): Likewise.
32708         * ifcvt.c (dead_or_predicable): Likewise.
32709         * init-regs.c (initialize_uninitialized_regs): Likewise.
32710         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
32711         (process_bb_node_lives): Likewise.
32712         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
32713         (find_moveable_pseudos): Likewise.
32714         * loop-invariant.c (check_dependencies, record_uses): Likewise.
32715         * recog.c (peep2_find_free_register): Likewise.
32716         * ree.c (get_defs): Likewise.
32717         * regstat.c (regstat_bb_compute_ri): Likewise.
32718         (regstat_bb_compute_calls_crossed): Likewise.
32719         * sched-deps.c (find_inc, find_mem): Likewise.
32720         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
32721         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
32722         * shrink-wrap.c (requires_stack_frame_p): Likewise.
32723         (prepare_shrink_wrap): Likewise.
32724         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
32725         * web.c (union_defs, pass_web::execute): Likewise.
32726         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
32727         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
32728
32729 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
32730
32731         * lra-assign.c (assign_by_spills): Add code to assign vector regs
32732         to inheritance pseudos.
32733         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
32734
32735 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
32736
32737         PR target/61415
32738         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
32739         (BU_MISC_2): Rename to ...
32740         (BU_LDBL128_2): ... this.
32741         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
32742         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
32743         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
32744         RS6000_BTM_LDBL128.
32745         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
32746         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
32747         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
32748         (unpacktf_1): Likewise.
32749         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
32750         (__builtin_longdouble_dw1): Likewise.
32751         * doc/sourcebuild.texi (longdouble128): Document.
32752
32753 2014-06-13  Jeff Law  <law@redhat.com>
32754
32755         PR rtl-optimization/61094
32756         PR rtl-optimization/61446
32757         * ree.c (combine_reaching_defs): Get the mode for the copy from
32758         the extension insn rather than the defining insn.
32759
32760 2014-06-13  Dehao Chen  <dehao@google.com>
32761
32762         * dwarf2out.c (add_linkage_name): Emit more linkage name.
32763
32764 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
32765
32766         * doc/install.texi (--enable-linker-plugin-configure-flags)
32767         (--enable-linker-plugin-flags): Document new flags.
32768
32769 2014-06-13  Martin Jambor  <mjambor@suse.cz>
32770
32771         PR ipa/61186
32772         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
32773         cache_token if returning early.
32774
32775 2014-06-13  Nick Clifton  <nickc@redhat.com>
32776
32777         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
32778         requested alignment is active.
32779         (LABEL_ALIGN): Likewise.
32780         (LOOP_ALIGN): Likewise.
32781
32782 2014-06-13  Richard Biener  <rguenther@suse.de>
32783
32784         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
32785         Rewrite to propagate the VN result into all uses where
32786         possible and to remove stmts becoming dead because of that.
32787         (eliminate): Generalize stmt removal handling, remove in
32788         reverse dominator order to support proper debug stmt
32789         generation.  Update stmts before removing stmts.
32790         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
32791
32792 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32793
32794         PR tree-optimization/61375
32795         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
32796         symbolic number cannot be represented in an uint64_t.
32797         (find_bswap_or_nop_1): Likewise.
32798
32799 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
32800
32801         * symtab.c (symtab_node::reset_section): New method.
32802         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
32803         for localization.
32804         * cgraph.h (reset_section): Declare.
32805         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
32806         do not consider comdat locals.
32807         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
32808         for new symbol.
32809         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
32810         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
32811         reset sections of symbols dragged out of the comdats.
32812         (function_and_variable_visibility): Reset sections of
32813         localized symbols.
32814
32815 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
32816
32817         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
32818         to use symtab and decl_binds_to_current_def_p
32819         * tree-vectorizer.c (increase_alignment): Increase alignment
32820         of alias target, too.
32821
32822 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
32823
32824         PR middle-end/61486
32825         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
32826         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
32827         if outer combined construct is distribute.
32828         (gimplify_omp_for): For OMP_DISTRIBUTE set
32829         gimplify_omp_ctxp->distribute.
32830         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
32831         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
32832         mapping into decl map.
32833
32834 2014-06-12  Jason Merrill  <jason@redhat.com>
32835
32836         * common.opt (fabi-version): Change default to 0.
32837
32838 2014-06-12  Jason Merrill  <jason@redhat.com>
32839
32840         * toplev.c (process_options): Reject -fabi-version=1.
32841
32842 2014-06-12  Jeff Law  <law@redhat.com>
32843
32844         PR tree-optimization/61009
32845         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
32846         value when we stop processing a block due to problematic PHIs.
32847
32848 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
32849
32850         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
32851         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
32852         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
32853         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
32854         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
32855         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
32856         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
32857         are not in the spec.
32858
32859 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
32860
32861         PR target/59843
32862         * config/aarch64/aarch64-modes.def: Add V1DFmode.
32863         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
32864         Support V1DFmode.
32865
32866 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
32867
32868         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
32869
32870 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
32871
32872         PR target/61443
32873         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
32874         loading from address spaces.
32875
32876 2014-06-12  Martin Liska  <mliska@suse.cz>
32877
32878         PR ipa/61462
32879         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
32880         statement is reachable.
32881
32882 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
32883
32884         * symtab.c (section_hash): New hash.
32885         (symtab_unregister_node): Clear section before freeing.
32886         (hash_section_hash_entry): New haser.
32887         (eq_sections): New function.
32888         (symtab_node::set_section_for_node): New method.
32889         (set_section_1): Update.
32890         (symtab_node::set_section): Take string instead of tree as parameter.
32891         (symtab_resolve_alias): Update.
32892         * cgraph.h (section_hash_entry_d): New structure.
32893         (section_hash_entry): New typedef.
32894         (cgraph_node): Change comdat_group_ to x_comdat_group,
32895         change section_ to x_section and turn into section_hash_entry;
32896         update accestors; put set_section_for_node offline.
32897         * tree.c (decl_section_name): Turn into string.
32898         (set_decl_section_name): Change parameter to be string.
32899         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
32900         * sdbout.c (sdbout_one_type): Update.
32901         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
32902         * varasm.c (IN_NAMED_SECTION, get_named_section,
32903         resolve_unique_section, hot_function_section, get_named_text_section,
32904         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
32905         make_decl_rtl, default_unique_section): Update.
32906         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
32907         (c6x_elf_unique_section): Update.
32908         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
32909         * config/pa/pa.c (pa_function_section): Update.
32910         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
32911         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
32912         * config/arc/arc.c (arc_in_small_data_p): Update.
32913         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
32914         * config/mcore/mcore.c (mcore_unique_section): Update.
32915         * config/mips/mips.c (mips16_build_function_stub): Update.
32916         (mips16_build_call_stub): Update.
32917         (mips_function_rodata_section): Update.
32918         (mips_in_small_data_p): Update.
32919         * config/score/score.c (score_in_small_data_p): Update.
32920         * config/rx/rx.c (rx_in_small_data): Update.
32921         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
32922         (rs6000_xcoff_asm_named_section): Update.
32923         (rs6000_xcoff_unique_section): Update.
32924         * config/frv/frv.c (frv_string_begins_with): Update.
32925         (frv_in_small_data_p): Update.
32926         * config/v850/v850.c (v850_encode_data_area): Update.
32927         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
32928         (bfin_handle_l1_data_attribute): Update.
32929         (bfin_handle_l2_attribute): Update.
32930         * config/mep/mep.c (mep_unique_section): Update.
32931         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
32932         Update.
32933         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
32934         (h8300_handle_tiny_data_attribute): Update.
32935         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
32936         (m32r_in_small_data_p): Update.
32937         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
32938         * config/i386/i386.c (ix86_in_large_data_p): Update.
32939         * config/i386/winnt.c (i386_pe_unique_section): Update.
32940         * config/darwin.c (darwin_function_section): Update.
32941         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
32942         * tree-emutls.c (get_emutls_init_templ_addr): Update.
32943         (new_emutls_decl): Update.
32944         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
32945         input_varpool_node): Update.
32946         (ead_string_cst): Turn to ...
32947         (read_string): ... this one.
32948         * dwarf2out.c (secname_for_decl): Update.
32949         * asan.c (asan_protect_global): Update.
32950
32951 2014-06-11  DJ Delorie  <dj@redhat.com>
32952
32953         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
32954         cache lines.
32955         * config/rx/rx.c (rx_option_override): Likewise.
32956         (rx_align_for_label): Likewise.
32957
32958         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
32959
32960 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
32961
32962         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
32963         prototype.
32964
32965 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32966
32967         * common.md: New file.
32968         * doc/md.texi: Update description of generic, machine-independent
32969         constraints.
32970         * config/s390/constraints.md (e): Delete.
32971         * Makefile.in (md_file): Include common.md.
32972         * config/m32c/t-m32c (md_file): Likewise.
32973         * genpreds.c (general_mem): New array.
32974         (generic_constraint_letters): Remove constraints now defined by
32975         common.md.
32976         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
32977         Allow the first character to be '<' or '>' as well.
32978         * genoutput.c (general_mem): New array.
32979         (indep_constraints): Remove constraints now defined by common.md.
32980         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
32981         Remove special handling of 'm'.
32982         * ira-costs.c (record_reg_classes): Remove special handling of
32983         constraints now defined by common.md.
32984         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
32985         * ira-lives.c (single_reg_class): Likewise.
32986         (ira_implicitly_set_insn_hard_regs): Likewise.
32987         * lra-constraints.c (reg_class_from_constraints): Likewise.
32988         (process_alt_operands, process_address, curr_insn_transform): Likewise.
32989         * postreload.c (reload_cse_simplify_operands): Likewise.
32990         * reload.c (push_secondary_reload, scratch_reload_class)
32991         (find_reloads, alternative_allows_const_pool_ref): Likewise.
32992         * reload1.c (maybe_fix_stack_asms): Likewise.
32993         * targhooks.c (default_secondary_reload): Likewise.
32994         * stmt.c (parse_output_constraint): Likewise.
32995         * recog.c (preprocess_constraints): Likewise.
32996         (constrain_operands, peep2_find_free_register): Likewise.
32997         (asm_operand_ok): Likewise, but add a comment saying why 'o'
32998         must be handled specially.
32999
33000 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33001
33002         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
33003         * genpreds.c (have_const_dbl_constraints): Delete.
33004         (add_constraint): Don't set it.
33005         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
33006         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
33007         constraints using the lookup_constraint logic.
33008         * ira-lives.c (single_reg_class): Likewise.
33009         * ira.c (ira_setup_alts): Likewise.
33010         * lra-constraints.c (process_alt_operands): Likewise.
33011         * recog.c (asm_operand_ok, constrain_operands): Likewise.
33012         * reload.c (find_reloads): Likewise.
33013
33014 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33015
33016         * genpreds.c (const_int_start, const_int_end): New variables.
33017         (choose_enum_order): Output CONST_INT constraints before memory
33018         constraints.
33019         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
33020         Add CT_CONST_INT.
33021         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
33022         * ira.c (ira_setup_alts): Likewise.
33023         * lra-constraints.c (process_alt_operands): Likewise.
33024         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33025         * reload.c (find_reloads): Likewise.
33026
33027 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33028
33029         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
33030         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
33031         * recog.c (preprocess_constraints): Update accordingly.
33032
33033 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33034
33035         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
33036         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
33037         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
33038         * genpreds.c (print_type_tree): New function.
33039         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
33040         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
33041         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
33042         Write out enum constraint_type and get_constraint_type.
33043         * lra-constraints.c (satisfies_memory_constraint_p): Take a
33044         constraint_num rather than a constraint string.
33045         (satisfies_address_constraint_p): Likewise.
33046         (reg_class_from_constraints): Avoid old constraint macros.
33047         (process_alt_operands, process_address_1): Likewise.
33048         (curr_insn_transform): Likewise.
33049         * ira-costs.c (record_reg_classes): Likewise.
33050         (record_operand_costs): Likewise.
33051         * ira-lives.c (single_reg_class): Likewise.
33052         (ira_implicitly_set_insn_hard_regs): Likewise.
33053         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33054         * postreload.c (reload_cse_simplify_operands): Likewise.
33055         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33056         (constrain_operands, peep2_find_free_register): Likewise.
33057         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
33058         (find_reloads, alternative_allows_const_pool_ref): Likewise.
33059         * reload1.c (maybe_fix_stack_asms): Likewise.
33060         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
33061         * targhooks.c (default_secondary_reload): Likewise.
33062         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
33063         to EXTRA_CONSTRAINT_STR.
33064         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
33065
33066 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33067
33068         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
33069         (write_constraint_satisfied_p_array): ...this new function.
33070         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
33071         an array.
33072         (write_insn_preds_c): Update accordingly.
33073
33074 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33075
33076         * genpreds.c (write_lookup_constraint): Rename to...
33077         (write_lookup_constraint_1): ...this.
33078         (write_lookup_constraint_array): New function.
33079         (write_tm_preds_h): Define lookup_constraint as an inline function
33080         that uses write_lookup_constraint_array where possible.
33081         (write_insn_preds_c): Update for the changes above.
33082
33083 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33084
33085         * doc/md.texi (regclass_for_constraint): Rename to...
33086         (reg_class_for_constraint): ...this.
33087         * genpreds.c (num_constraints, enum_order, register_start)
33088         (register_end, satisfied_start, memory_start, memory_end)
33089         (address_start, address_end): New variables.
33090         (add_constraint): Count the number of constraints.
33091         (choose_enum_order): New function.
33092         (write_enum_constraint_num): Iterate over enum_order.
33093         (write_regclass_for_constraint): Rename to...
33094         (write_reg_class_for_constraint_1): ...this and update output
33095         accordingly.
33096         (write_constraint_satisfied_p): Rename to...
33097         (write_constraint_satisfied_p_1): ...this and update output
33098         accordingly.  Do nothing if all extra constraints are register
33099         constraints.
33100         (write_insn_extra_memory_constraint): Delete.
33101         (write_insn_extra_address_constraint): Delete.
33102         (write_range_function): New function.
33103         (write_tm_preds_h): Define constraint_satisfied_p and
33104         reg_class_for_constraint as inline functions that do a range check
33105         before calling the out-of-line function.  Use write_range_function
33106         to implement insn_extra_{register,memory,address}_constraint,
33107         the first of which is new.
33108         (write_insn_preds_c): Update after above changes to write_* functions.
33109         (main): Call choose_enum_order.
33110
33111 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33112
33113         PR tree-optimization/61306
33114         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
33115         expression instead of its size.
33116         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
33117         false to prevent optimization when the result is unpredictable due to
33118         arithmetic right shift of signed type with highest byte is set.
33119         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
33120         (init_symbolic_number): Likewise.
33121         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
33122         when the result is unpredictable due to sign extension.
33123
33124 2014-06-11  Terry Guo  <terry.guo@arm.com>
33125
33126         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
33127         (*thumb1_addsi3): Ditto.
33128         (*thumb_subdi3): Ditto.
33129         (thumb1_subsi3_insn): Ditto.
33130         (*thumb_mulsi3): Ditto.
33131         (*thumb_mulsi3_v6): Ditto.
33132         (*thumb1_andsi3_insn): Ditto.
33133         (thumb1_bicsi3): Ditto.
33134         (*thumb1_iorsi3_insn): Ditto.
33135         (*thumb1_xorsi3_insn): Ditto.
33136         (*thumb1_ashlsi3): Ditto.
33137         (*thumb1_ashrsi3): Ditto.
33138         (*thumb1_lshrsi3): Ditto.
33139         (*thumb1_rotrsi3): Ditto.
33140         (*thumb1_negdi2): Ditto.
33141         (*thumb1_negsi2): Ditto.
33142         (*thumb1_abssi2): Ditto.
33143         (*thumb1_neg_abssi2): Ditto.
33144         (*thumb1_one_cmplsi2): Ditto.
33145         (*thumb1_zero_extendhisi2): Ditto.
33146         (*thumb1_zero_extendqisi2): Ditto.
33147         (*thumb1_zero_extendqisi2_v6): Ditto.
33148         (thumb1_extendhisi2): Ditto.
33149         (thumb1_extendqisi2): Ditto.
33150         (*thumb1_movdi_insn): Ditto.
33151         (*thumb1_movsi_insn): Ditto.
33152         (*thumb1_movhi_insn): Ditto.
33153         (thumb_movhi_clobber): Ditto.
33154         (*thumb1_movqi_insn): Ditto.
33155         (*thumb1_movhf): Ditto.
33156         (*thumb1_movsf_insn): Ditto.
33157         (*thumb_movdf_insn): Ditto.
33158         (movmem12b): Ditto.
33159         (movmem8b): Ditto.
33160         (cbranchqi4): Ditto.
33161         (cbranchsi4_insn): Ditto.
33162         (cbranchsi4_scratch): Ditto.
33163         (*negated_cbranchsi4): Ditto.
33164         (*tbit_cbranch): Ditto.
33165         (*tlobits_cbranch): Ditto.
33166         (*tstsi3_cbranch): Ditto.
33167         (*cbranchne_decr1): Ditto.
33168         (*addsi3_cbranch): Ditto.
33169         (*addsi3_cbranch_scratch): Ditto.
33170         (*thumb_cmpdi_zero): Ditto.
33171         (cstoresi_eq0_thumb1): Ditto.
33172         (cstoresi_ne0_thumb1): Ditto.
33173         (*cstoresi_eq0_thumb1_insn): Ditto.
33174         (*cstoresi_ne0_thumb1_insn): Ditto.
33175         (cstoresi_nltu_thumb1): Ditto.
33176         (cstoresi_ltu_thumb1): Ditto.
33177         (thumb1_addsi3_addgeu): Ditto.
33178         (*thumb_jump): Ditto.
33179         (*call_reg_thumb1_v5): Ditto.
33180         (*call_reg_thumb1): Ditto.
33181         (*call_value_reg_thumb1_v5): Ditto.
33182         (*call_value_reg_thumb1): Ditto.
33183         (*call_insn): Ditto.
33184         (*call_value_insn): Ditto.
33185         (thumb1_casesi_internal_pic): Ditto.
33186         (thumb1_casesi_dispatch): Ditto.
33187         (*thumb1_indirect_jump): Ditto.
33188         (prologue_thumb1_interwork): Ditto.
33189         (*epilogue_insns): Ditto.
33190         (consttable_1): Ditto.
33191         (consttable_2): Ditto.
33192         (tablejump): Ditto.
33193         (*thumb1_tablejump): Ditto.
33194         (thumb_eh_return): Ditto.
33195         (define_peephole2): Two of them are thumb1 only and got moved into
33196         new file thumb1.md.
33197         (define_split): Six of them are thumb1 only and got moved into new
33198         file thumb1.md.
33199         * config/arm/thumb1.md: New file comprised of above thumb1 only
33200         patterns.
33201
33202 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33203
33204         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
33205         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
33206         dependencies.
33207         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
33208         (aarch64_crc_builtin_datum): New struct.
33209         (aarch64_crc_builtin_data): New.
33210         (aarch64_init_crc32_builtins): New function.
33211         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
33212         (aarch64_crc32_expand_builtin): New.
33213         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
33214         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
33215         __ARM_FEATURE_CRC32 when appropriate.
33216         (TARGET_CRC32): Define.
33217         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
33218         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
33219         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
33220         (aarch64_<crc_variant>): New pattern.
33221         * config/aarch64/arm_acle.h: New file.
33222         * config/aarch64/iterators.md (CRC): New int iterator.
33223         (crc_variant, crc_mode): New int attributes.
33224         * doc/aarch64-acle-intrinsics.texi: New file.
33225         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
33226         Include aarch64-acle-intrinsics.texi.
33227
33228 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
33229
33230         * tree-vect-data-refs.c (vect_grouped_store_supported): New
33231         check for stores group of length 3.
33232         (vect_permute_store_chain): New permutations for stores group of
33233         length 3.
33234         * tree-vect-stmts.c (vect_model_store_cost): Change cost
33235         of vec_perm_shuffle for the new permutations.
33236
33237 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
33238
33239         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
33240         table rewriting temporarily on targets not supporting ONE_ONLY.
33241
33242 2014-06-11  Richard Biener  <rguenther@suse.de>
33243
33244         PR middle-end/61437
33245         Revert
33246         2014-06-04  Richard Biener  <rguenther@suse.de>
33247
33248         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
33249         TREE_PUBLIC and DECL_EXTERNAL decls.
33250
33251 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
33252
33253         * varasm.c (set_implicit_section): New function.
33254         (resolve_unique_section): Use it to set implicit section
33255         for aliases, too.
33256         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
33257         (default_function_section): Likewise.
33258         (decl_binds_to_current_def_p): Constify argument.
33259         * varasm.h (decl_binds_to_current_def_p): Update prototype.
33260         * asan.c (asan_protect_global): Use
33261         symtab_get_node (decl)->implicit_section.
33262         * symtab.c (dump_symtab_base): Dump implicit sections.
33263         (verify_symtab_base): Verify sanity of sectoins and comdats.
33264         (symtab_resolve_alias): Alias share the section of its target.
33265         (set_section_1): New function.
33266         (symtab_node::set_section): Move here, recurse to aliases.
33267         (verify_symtab): Check for duplicated symtab lists.
33268         * tree-core.h (implicit_section_name_p): Remove.
33269         * tree-vect-data-refs.c: Include varasm.h.
33270         (vect_can_force_dr_alignment_p): Fix conditional on when
33271         decl bints to current definition; use
33272         symtab_get_node (decl)->implicit_section.
33273         * cgraph.c (cgraph_make_node_local_1): Fix section set.
33274         * cgraph.h (struct symtab_node): Add implicit_section.
33275         (set_section): Rename to ...
33276         (set_section_for_node): ... this one.
33277         (set_section): Declare.
33278         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
33279         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
33280         input_overwrite_node, input_varpool_node): Stream implicit_section.
33281         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
33282         removal; it will fail in LTO.
33283
33284 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33285
33286         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
33287         Change second alternative type to f_mcr.
33288         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
33289         and 12th alternatives' types to f_mcr and f_mrc.
33290         (*movdi_aarch64): Same for 12th and 13th alternatives.
33291         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
33292         (aarch64_movtilow_tilow): Change type to fmov.
33293
33294 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
33295
33296         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
33297         (aarch64_save_or_restore_callee_save_registers): Fix layout.
33298
33299 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33300
33301         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
33302         New expander.
33303         (aarch64_sqrdmulh_lane<mode>): Likewise.
33304         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
33305         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
33306         (aarch64_sqdmulh_laneq<mode>): New expander.
33307         (aarch64_sqrdmulh_laneq<mode>): Likewise.
33308         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
33309         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
33310         (aarch64_sqdmulh_lane<mode>): New expander.
33311         (aarch64_sqrdmulh_lane<mode>): Likewise.
33312         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
33313         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
33314         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
33315         (aarch64_sqdmlal_laneq<mode>): Likewise.
33316         (aarch64_sqdmlsl_lane<mode>): Likewise.
33317         (aarch64_sqdmlsl_laneq<mode>): Likewise.
33318         (aarch64_sqdmlal2_lane<mode>): Likewise.
33319         (aarch64_sqdmlal2_laneq<mode>): Likewise.
33320         (aarch64_sqdmlsl2_lane<mode>): Likewise.
33321         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
33322         (aarch64_sqdmull_lane<mode>): Likewise.
33323         (aarch64_sqdmull_laneq<mode>): Likewise.
33324         (aarch64_sqdmull2_lane<mode>): Likewise.
33325         (aarch64_sqdmull2_laneq<mode>): Likewise.
33326
33327 2014-06-10  Richard Biener  <rguenther@suse.de>
33328
33329         PR tree-optimization/61438
33330         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
33331         (eliminate_dom_walker::before_dom_children): Only try to inhibit
33332         insertion of IVs if running PRE.
33333         (eliminate): Adjust.
33334         (pass_pre::execute): Likewise.
33335         (pass_fre::execute): Likewise.
33336
33337 2014-06-10  Richard Biener  <rguenther@suse.de>
33338
33339         PR middle-end/61456
33340         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
33341         Do not use the main variant for the type comparison.
33342         (ncr_compar): Likewise.
33343         (nonoverlapping_component_refs_p): Likewise.
33344
33345 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33346
33347         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
33348         REG_CFA_RESTORE mode.
33349
33350 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
33351
33352         * config/i386/i386.c (expand_vec_perm_pblendv): New.
33353         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
33354         expand_vec_perm_pblendv.
33355
33356 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33357
33358         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
33359         available.
33360         Simplify description of __crc32d and __crc32cd intrinsics.
33361         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
33362         availability.
33363
33364 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
33365
33366         PR lto/61334
33367         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
33368         * config.in: Regenerate.
33369         * configure: Likewise.
33370
33371 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
33372
33373         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
33374         and public vars.
33375         (intersect_static_var_sets): Remove.
33376         (propagate): Do not prune local statics.
33377
33378 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
33379
33380         PR fortran/60928
33381         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
33382         Set lastprivate_firstprivate even if omp_private_outer_ref
33383         langhook returns true.
33384         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
33385         langhook, call unshare_expr on new_var and call
33386         build_outer_var_ref to get the last argument.
33387
33388 2014-06-10  Marek Polacek  <polacek@redhat.com>
33389
33390         PR c/60988
33391         * doc/extend.texi: Add cindex for transparent_union.
33392
33393 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33394
33395         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
33396         init_symbolic_number ().
33397
33398 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
33399
33400         PR middle-end/61141
33401         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
33402         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
33403         (verify_rtl_sharing): Likewise.
33404
33405 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
33406
33407         PR c++/54442
33408         * tree.c (build_qualified_type): Use a canonical type for
33409         TYPE_CANONICAL.
33410
33411 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33412
33413         * config/arm/arm-modes.def: Remove XFmode.
33414
33415 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
33416
33417         PR target/61062
33418         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
33419         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
33420         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
33421         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
33422         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
33423         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
33424         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
33425         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
33426         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
33427
33428 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
33429
33430         * tree-core.h (tree_decl_with_vis): Remove section_name.
33431
33432 2014-06-09  Kito Cheng  <kito@0xlab.org>
33433
33434         * ira.c (ira): Don't call init_caller_save if LRA enabled
33435         since LRA use its own infrastructure to handle that.
33436
33437 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
33438
33439         * symtab.c (dump_symtab_base): Update dumping.
33440         (symtab_make_decl_local): Clear only DECL_COMDAT.
33441         * tree-vect-data-refs.c (Check that variable is static before
33442         tampering with sections.
33443         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
33444         (cgraph_create_virtual_clone): Likewise.
33445         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
33446         (decl_section_name, set_decl_section_name): New accessors.
33447         (find_decls_types_r): Do not walk section name
33448         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
33449         (decl_comdat_group, decl_comdat_group_id): Constify.
33450         (decl_section_name, set_decl_section_name): Update.
33451         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
33452         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
33453         (cgraph_make_node_local_1): Clear section and comdat group.
33454         * cgraph.h (set_comdat_group): Sanity check.
33455         (get_section, set_section): New.
33456         * ipa-comdats.c (ipa_comdats): Use get_section.
33457         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
33458         * lto-streamer-out.c: Do not follow section names.
33459         * c-family/c-common.c (handle_section_attribute): Update.
33460         * lto-cgraph.c (lto_output_node): Output section.
33461         (lto_output_varpool_node): Likewise.
33462         (read_comdat_group): Rename to ...
33463         (read_identifier): ... this one.
33464         (read_string_cst): New function.
33465         (input_node, input_varpool_node): Input section names.
33466         * tree-emutls.c (get_emutls_init_templ_addr): Update.
33467         (new_emutls_decl): Update.
33468         (secname_for_decl): Check section names only of static vars.
33469         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
33470         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
33471         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
33472         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
33473         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
33474         * config/mcore/mcore.c (mcore_unique_section): Likewise.
33475         * config/mips/mips.c (mips16_build_function_stub): Likewise.
33476         * config/v850/v850.c (v850_insert_attributes): Likewise.
33477         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
33478         Likewise.
33479         (h8300_handle_tiny_data_attribute): Likewise.
33480         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
33481         (bfin_handle_l2_attribute): Likewise.
33482
33483 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
33484
33485         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
33486         remove static initializer.
33487
33488 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
33489
33490         * varasm.c (use_blocks_for_decl_p): Check symbol table
33491         instead of alias attribute.
33492         (place_block_symbol): Recurse on aliases.
33493
33494 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
33495
33496         * ipa-visibility.c: Include varasm.h
33497         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
33498
33499 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
33500
33501         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
33502         outputting aliases.
33503
33504 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
33505
33506         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
33507         from test_insn into GGC space escape via SET_SRC.
33508
33509 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
33510
33511         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
33512         call statement, if any.
33513         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
33514         statements, if any.  Tidy up.
33515
33516 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33517
33518         PR target/61431
33519         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
33520         iterators, VSX_D that handles 64-bit types, and VSX_LE that
33521         handles swapping the two 64-bit double words on little endian
33522         systems.  Include V1TImode and optionally TImode in VSX_LE so that
33523         these types are properly swapped.  Change all of the insns and
33524         splits that do the 64-bit swaps to use VSX_LE.
33525         (vsx_le_perm_load_<mode>): Likewise.
33526         (vsx_le_perm_store_<mode>): Likewise.
33527         (splitters for little endian memory operations): Likewise.
33528         (vsx_xxpermdi2_le_<mode>): Likewise.
33529         (vsx_lxvd2x2_le_<mode>): Likewise.
33530         (vsx_stxvd2x2_le_<mode>): Likewise.
33531
33532 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
33533
33534         PR target/61423
33535         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
33536         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
33537         and corresponding splitters.  Zero extend general register
33538         or memory input operand to XMM temporary.  Enable for
33539         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
33540         (floatunssi<mode>2): Update expander predicate.
33541
33542 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
33543
33544         PR rtl-optimization/61325
33545         * lra-constraints.c (process_address_1): Check scale equal to one
33546         to prevent transformation: base + scale * index => base + new_reg.
33547
33548 2014-06-06  Richard Biener  <rguenther@suse.de>
33549
33550         PR tree-optimization/59299
33551         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
33552         a def operand.
33553         (nearest_common_dominator_of_uses): Likewise.
33554         (statement_sink_location): Adjust.  Support sinking loads.
33555
33556 2014-06-06  Martin Jambor  <mjambor@suse.cz>
33557
33558         * ipa-prop.c (get_place_in_agg_contents_list): New function.
33559         (build_agg_jump_func_from_list): Likewise.
33560         (determine_known_aggregate_parts): Renamed to
33561         determine_locally_known_aggregate_parts.  Moved some functionality
33562         to the two functions above, removed bound checks.
33563
33564 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
33565
33566         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
33567         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
33568         (aarch64_progress_pointer): Likewise.
33569         (aarch64_copy_one_part_and_move_pointers): Likewise.
33570         (aarch64_expand_movmen): Likewise.
33571         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
33572         * config/aarch64/aarch64.md (movmem<mode>): New.
33573
33574 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
33575
33576         * targhooks.c (default_add_stmt_cost): Call target specific
33577         hook instead of default one.
33578
33579 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33580
33581         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
33582         endianness instead of host endianness.
33583         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
33584         comments.
33585
33586 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
33587
33588         PR debug/53927
33589         * function.c (instantiate_decls): Process the saved static chain.
33590         (expand_function_start): If not optimizing, save the static chain
33591         onto the stack.
33592         * tree-nested.c (convert_all_function_calls): Always create the static
33593         chain for nested functions if not optimizing.
33594
33595 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
33596
33597         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
33598
33599 2014-06-06  Richard Biener  <rguenther@suse.de>
33600
33601         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
33602         (construct_init_block): Likewise.
33603         (construct_exit_block): Likewise.
33604         (pass_expand::execute): Likewise.
33605         * graphite.c (graphite_transforms): Replace check for current_loops
33606         with a check for > 1 loops.
33607         (pass_graphite_transforms::execute): Adjust.
33608         * ipa-split.c (split_function): Remove check for current_loops.
33609         * omp-low.c (expand_parallel_call): Likewise.
33610         (expand_omp_for_init_counts): Likewise.
33611         (extract_omp_for_update_vars): Likewise.
33612         (expand_omp_for_generic): Likewise.
33613         (expand_omp_sections): Likewise.
33614         (expand_omp_target): Likewise.
33615         * tracer.c (tail_duplicate): Likewise.
33616         (pass_tracer::execute): Likewise.
33617         * trans-mem.c (expand_transaction): Likewise.
33618         * tree-complex.c (expand_complex_div_wide): Likewise.
33619         * tree-eh.c (lower_resx): Likewise.
33620         (cleanup_empty_eh_merge_phis): Likewise.
33621         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
33622         current_loops with a check for > 1 loops.
33623         (pass_predcom::execute): Adjust.
33624         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
33625         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
33626         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
33627         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
33628         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
33629         * tree-switch-conversion.c (process_switch): Likewise.
33630         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
33631         * tree-vrp.c (vrp_visit_phi_node): Likewise.
33632         (execute_vrp): Likewise.
33633         * ubsan.c (ubsan_expand_null_ifn): Likewise.
33634
33635 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
33636
33637         * rtl.h (insn_location): Declare.
33638         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
33639         with UNKNOWN_LOCATION.
33640         * emit-rtl.c (insn_location): New function.
33641         * final.c (notice_source_line): Check that the instruction has a
33642         location before retrieving it and use insn_location.
33643         * modulo-sched.c (loop_single_full_bb_p): Likewise.
33644         * print-rtl.c (print_rtx): Likewise.
33645
33646 2014-06-06  Richard Biener  <rguenther@suse.de>
33647
33648         * passes.def: Move 2nd VRP pass before phi-only-cprop.
33649
33650 2014-06-06  Christian Bruel  <christian.bruel@st.com>
33651
33652         PR tree-optimization/43934
33653         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
33654         cost.
33655
33656 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
33657
33658         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
33659         return NO_REGS for extra address and memory constraints.  Handle
33660         operands that match (or are equivalent to something that matches)
33661         extra constant constraints.  Ignore other non-register operands.
33662
33663 2014-06-06  Alan Modra  <amodra@gmail.com>
33664
33665         PR target/61300
33666         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
33667         * doc/tm.texi: Regenerate.
33668         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
33669         Use throughout in place of REG_PARM_STACK_SPACE.
33670         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
33671         "incoming" param.  Pass to rs6000_function_parms_need_stack.
33672         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
33673         prototype_p when incoming.  Use function decl when incoming
33674         to handle K&R style functions.
33675         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
33676         (INCOMING_REG_PARM_STACK_SPACE): Define.
33677
33678 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
33679
33680         PR target/52472
33681         * cfgexpand.c (expand_debug_expr): Use address space of nested
33682         TREE_TYPE for ADDR_EXPR and MEM_REF.
33683
33684 2014-06-05  Jeff Law  <law@redhat.com>
33685
33686         PR tree-optimization/61289
33687         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
33688         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
33689         looking for those which match LHS.  All callers changed.
33690         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
33691         parameters and code which manipulated them.  All callers changed.
33692         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
33693         and DST_MAP parameters.  Simplify invalidation code by just calling
33694         invalidate_equivalences.  All callers changed.
33695         (thread_across_edge): Simplify now that we don't need to maintain
33696         the map of equivalences to invalidate.
33697
33698 2014-06-05  Kai Tietz  <ktietz@redhat.com>
33699             Richard Henderson  <rth@redhat.com>
33700
33701         PR target/46219
33702         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
33703         checking for !TARGET_X32.
33704         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
33705         (sibcall_intern): New define_insn, plus required peepholes.
33706         (sibcall_pop_intern): Likewise.
33707         (sibcall_value_intern): Likewise.
33708         (sibcall_value_pop_intern): Likewise.
33709
33710 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
33711
33712         * tree-inline.c (tree_function_versioning): Check DF info existence
33713         before accessing it.
33714
33715 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33716
33717         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
33718         frame_size.
33719         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
33720         aarch64_frame hard_fp_offset and frame_size.
33721         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
33722         frame_size; remove original_frame_size.
33723         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
33724         (aarch64_initial_elimination_offset): Remove frame_size and
33725         offset.  Use aarch64_frame frame_size.
33726
33727 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33728             Jiong Wang  <jiong.wang@arm.com>
33729             Renlin  <renlin.li@arm.com>
33730
33731         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
33732         initialization of R30 offset.  Update offset.  Iterate core
33733         regisers upto X30.  Remove X29, X30 specific code.
33734
33735 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33736             Jiong Wang  <jiong.wang@arm.com>
33737
33738         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
33739         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
33740         (aarch64_register_saved_on_entry): Adjust test.
33741
33742 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33743
33744         * config/aarch64/aarch64.h (machine_function): Move
33745         saved_varargs_size from here...
33746         (aarch64_frame): ... to here.
33747
33748         * config/aarch64/aarch64.c (aarch64_expand_prologue)
33749         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
33750         (aarch64_initial_elimination_offset)
33751         (aarch64_setup_incoming_varargs): Adjust location of
33752         saved_varargs_size.
33753
33754 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33755
33756         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
33757         layout comment.
33758
33759 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
33760             Prachi Godbole  <Prachi.Godbole@imgtec.com>
33761
33762         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
33763         mips32r5 entry to use PROCESSOR_P5600.
33764         * config/mips/mips-tables.opt: Regenerate.
33765         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
33766         * config/mips/mips.c (mips_fmadd_bypass): New function.
33767         (mips_rtx_cost_data): Add costs for p5600.
33768         (mips_issue_rate): Add support for p5600.
33769         (mips_multipass_dfa_lookahead): Likewise.
33770         * config/mips/mips.h (TUNE_P5600): New define.
33771         (TUNE_MACC_CHAINS): Add TUNE_P5600.
33772         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
33773         * config/mips/mips.md: Include p5600.md.
33774         (processor): Add p5600.
33775         * config/mips/p5600.md: New file.
33776
33777 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
33778
33779         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
33780         * config/i386/predicates.md (palignr_operand): New.
33781         Indicates if permutation is suitable for palignr instruction.
33782
33783 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
33784
33785         PR tree-optimization/61319
33786         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33787         stmt belongs to loop.
33788
33789 2014-06-05  Richard Biener  <rguenther@suse.de>
33790
33791         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
33792         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
33793         (lookup_tmp_var): Adjust.
33794         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
33795
33796 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33797
33798         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
33799
33800 2014-06-05  Marek Polacek  <polacek@redhat.com>
33801
33802         PR c/49706
33803         * doc/invoke.texi: Document -Wlogical-not-parentheses.
33804
33805 2014-06-04  Tom de Vries  <tom@codesourcery.com>
33806
33807         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
33808         CONST_INT.
33809
33810 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
33811
33812         PR tree-optimization/61385
33813         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
33814
33815 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
33816
33817         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
33818         changed to use fatal_error.
33819         (main): Ensure lto_wrapper_cleanup is run atexit.
33820
33821 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
33822
33823         * lra-constraints.c (valid_address_p): Move earlier in file.
33824         (address_eliminator): New structure.
33825         (satisfies_memory_constraint_p): New function.
33826         (satisfies_address_constraint_p): Likewise.
33827         (process_alt_operands, process_address, curr_insn_transform): Use them.
33828
33829 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
33830
33831         * lra-int.h (lra_static_insn_data): Make operand_alternative a
33832         const pointer.
33833         (target_lra_int, default_target_lra_int, this_target_lra_int)
33834         (op_alt_data): Delete.
33835         * lra.h (lra_init): Delete.
33836         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
33837         (init_insn_code_data_once): Remove op_alt_data handling.
33838         (finish_insn_code_data_once): Likewise.
33839         (init_op_alt_data): Delete.
33840         (get_static_insn_data): Initialize operand_alternative to null.
33841         (free_insn_recog_data): Cast operand_alternative before freeing it.
33842         (setup_operand_alternative): Take the operand_alternative as
33843         parameter and assume it isn't already cached in the static
33844         insn data.
33845         (lra_set_insn_recog_data): Update accordingly.
33846         (lra_init): Delete.
33847         * ira.c (ira_init): Don't call lra_init.
33848         * target-globals.h (this_target_lra_int): Declare.
33849         (target_globals): Remove lra_int.
33850         (restore_target_globals): Update accordingly.
33851         * target-globals.c: Don't include lra-int.h.
33852         (default_target_globals, save_target_globals): Remove lra_int.
33853
33854 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
33855
33856         * recog.h (operand_alternative): Convert reg_class, reject,
33857         matched and matches into bitfields.
33858         (preprocess_constraints): New overload.
33859         (preprocess_insn_constraints): New function.
33860         (preprocess_constraints): Take the insn as parameter.
33861         (recog_op_alt): Change into a pointer.
33862         (target_recog): Add x_op_alt.
33863         * recog.c (asm_op_alt): New variable.
33864         (recog_op_alt): Change into a pointer.
33865         (preprocess_constraints): New overload, replacing the old function
33866         definition with one that doesn't use global state.
33867         (preprocess_insn_constraints): New function.
33868         (preprocess_constraints): Use them.  Take the insn as parameter.
33869         Use asm_op_alt for asms.
33870         (recog_init): Free existing x_op_alt entries.
33871         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
33872         pointer const.
33873         (make_early_clobber_and_input_conflicts): Likewise.
33874         (process_bb_node_lives): Pass the insn to process_constraints.
33875         * reg-stack.c (check_asm_stack_operands): Likewise.
33876         (subst_asm_stack_regs): Likewise.
33877         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
33878         * regrename.c (build_def_use): Likewise.
33879         * sched-deps.c (sched_analyze_insn): Likewise.
33880         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
33881         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
33882         (note_invalid_constants): Likewise.
33883         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
33884         (ix86_legitimate_combined_insn): Make operand_alternative pointer
33885         const.
33886
33887 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
33888
33889         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
33890         * ira-lives.c (check_and_make_def_conflict): Check for disabled
33891         alternatives.
33892         (make_early_clobber_and_input_conflicts): Likewise.
33893         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
33894
33895 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
33896
33897         * recog.h (alternative_class): New function.
33898         (which_op_alt): Return a const recog_op_alt.
33899         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
33900         (subst_asm_stack_regs): Likewise.
33901         * config/arm/arm.c (note_invalid_constants): Likewise.
33902         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
33903         the operand_alternative; use alternative class instead.
33904         * sel-sched.c (get_reg_class): Likewise.
33905         * regrename.c (build_def_use): Likewise.
33906         (hide_operands, restore_operands, record_out_operands): Update type
33907         accordingly.
33908
33909 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
33910
33911         * recog.h (recog_op_alt): Convert to a flat array.
33912         (which_op_alt): New function.
33913         * recog.c (recog_op_alt): Convert to a flat array.
33914         (preprocess_constraints): Update accordingly, grouping all
33915         operands of the same alternative together, rather than the
33916         other way around.
33917         * ira-lives.c (check_and_make_def_conflict): Likewise.
33918         (make_early_clobber_and_input_conflicts): Likewise.
33919         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
33920         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
33921         (subst_asm_stack_regs): Likewise.
33922         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
33923         * regrename.c (hide_operands, record_out_operands): Likewise.
33924         (build_def_use): Likewise.
33925         * sel-sched.c (get_reg_class): Likewise.
33926         * config/arm/arm.c (note_invalid_constants): Likewise.
33927
33928 2014-06-04  Jason Merrill  <jason@redhat.com>
33929
33930         PR c++/51253
33931         PR c++/61382
33932         * gimplify.c (gimplify_arg): Non-static.
33933         * gimplify.h: Declare it.
33934
33935 2014-06-04  Richard Biener  <rguenther@suse.de>
33936
33937         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
33938         TREE_PUBLIC and DECL_EXTERNAL decls.
33939
33940 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
33941
33942         * regcprop.c (copyprop_hardreg_forward_1): Account for
33943         HARD_REGNO_CALL_PART_CLOBBERED.
33944
33945 2014-06-04  Richard Biener  <rguenther@suse.de>
33946
33947         * configure.ac: Check whether the underlying type of int64_t
33948         is long or long long.
33949         * configure: Regenerate.
33950         * config.in: Likewise.
33951         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
33952         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
33953
33954 2014-06-04  Richard Biener  <rguenther@suse.de>
33955
33956         PR tree-optimization/60098
33957         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
33958         we hit a kill.
33959         (dse_optimize_stmt): Simplify, now that we found a kill
33960         earlier.
33961
33962 2014-06-04  Richard Biener  <rguenther@suse.de>
33963
33964         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
33965         of accesses with non-invariant address.
33966
33967 2014-06-04  Martin Liska  <mliska@suse.cz>
33968
33969         * cgraph.h (cgraph_make_wrapper): New function introduced.
33970         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
33971         * ipa-inline.h (inline_analyze_function): The function is global.
33972         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
33973
33974 2014-06-04  Martin Liska  <mliska@suse.cz>
33975
33976         * tree.h (private_lookup_attribute_starting): New function.
33977         (lookup_attribute_starting): Likewise.
33978         * tree.c (private_lookup_attribute_starting): Likewise.
33979
33980 2014-06-04  Martin Liska  <mliska@suse.cz>
33981
33982         * cgraph.h (expand_thunk): New argument added.
33983         (address_taken_from_non_vtable_p): New global function.
33984         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
33985         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
33986         * cgraphunit.c (analyze_function): Likewise.
33987         (assemble_thunks_and_aliases): Argument added to call.
33988         (expand_thunk): New argument forces to produce GIMPLE thunk.
33989
33990 2014-06-04  Martin Liska  <mliska@suse.cz>
33991
33992         * coverage.h (coverage_compute_cfg_checksum): Argument added.
33993         * coverage.c (coverage_compute_cfg_checksum): Likewise.
33994         * profile.c (branch_prob): Likewise.
33995
33996 2014-06-04  Martin Jambor  <mjambor@suse.cz>
33997
33998         PR ipa/61340
33999         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
34000         handler for switch on an ipa_ref_use enum.
34001         * ipa-reference.c (analyze_function): Likewise.
34002
34003 2014-06-04  Kai Tietz  <ktietz@redhat.com>
34004
34005         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
34006         from old call-instruction.
34007
34008 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
34009
34010         * config/aarch64/aarch64.c (aarch64_classify_address)
34011         (aarch64_legitimize_reload_address): Support full addressing modes
34012         for vector modes.
34013         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
34014         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
34015
34016 2014-06-03  Andrew Pinski  <apinski@cavium.com>
34017
34018         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
34019         for OP0.
34020
34021 2014-06-03  Andrew Pinski  <apinski@cavium.com>
34022
34023         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
34024         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
34025
34026 2014-06-03  Kai Tietz  <ktietz@redhat.com>
34027
34028         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
34029         for 64-bit ms-abi.
34030
34031 2014-06-03  Dehao Chen  <dehao@google.com>
34032
34033         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
34034         the same loop.
34035
34036 2014-06-03  Marek Polacek  <polacek@redhat.com>
34037
34038         PR c/60439
34039         * doc/invoke.texi: Document -Wswitch-bool.
34040         * function.c (stack_protect_epilogue): Cast controlling expression of
34041         the switch to int.
34042         * gengtype.c (walk_type): Generate switch expression with its
34043         controlling expression cast to int.
34044
34045 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
34046
34047         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
34048         and attiny841.
34049         * config/avr/avr-tables.opt: Regenerate.
34050         * config/avr/t-multilib: Regenerate.
34051         * doc/avr-mmcu.texi: Regenerate.
34052
34053 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
34054             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
34055
34056         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
34057         (ata6617c, ata664251): Add new avr35 devices.
34058         (ata6612c): Add new avr4 device.
34059         (ata6613c, ata6614q): Add new avr5 devices.
34060         * config/avr/avr-tables.opt: Regenerate.
34061         * config/avr/t-multilib: Regenerate.
34062         * doc/avr-mmcu.texi: Regenerate.
34063
34064 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34065
34066         * gcc/config/aarch64/aarch64-builtins.c
34067         (aarch64_types_binop_ssu_qualifiers): New static data.
34068         (TYPES_BINOP_SSU): Define.
34069         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
34070         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
34071         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
34072         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
34073         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
34074         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
34075         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
34076         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
34077         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
34078         suffix to builtin function name, remove cast.
34079         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
34080         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
34081         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
34082
34083 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34084
34085         * gcc/config/aarch64/aarch64-builtins.c
34086         (aarch64_types_binop_uus_qualifiers,
34087         aarch64_types_shift_to_unsigned_qualifiers,
34088         aarch64_types_unsigned_shiftacc_qualifiers): Define.
34089         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
34090         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
34091         sqshlu_n, uqshl_n): Update qualifiers.
34092         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
34093         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
34094         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
34095         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
34096         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
34097         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
34098         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
34099         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
34100         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
34101         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
34102         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
34103         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
34104         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
34105         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
34106         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
34107         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
34108         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
34109         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
34110         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
34111         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
34112         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
34113         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
34114         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
34115         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
34116         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
34117         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
34118         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
34119
34120 2014-06-03  Teresa Johnson  <tejohnson@google.com>
34121
34122         * tree-sra.c (modify_function): Record caller nodes after rebuild.
34123
34124 2014-06-02  Jason Merrill  <jason@redhat.com>
34125
34126         PR c++/61020
34127         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
34128
34129 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34130
34131         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
34132         location == 0.
34133
34134 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34135
34136         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
34137         New pattern.
34138         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
34139         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
34140         * config/aarch64/iterators.md (REVERSE): New iterator.
34141         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
34142         (rev_op): New int_attribute.
34143         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
34144         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
34145         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
34146         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
34147         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
34148         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
34149         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
34150         Replace temporary __asm__ with __builtin_shuffle.
34151
34152 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
34153
34154         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
34155         mips64r5.
34156         * config/mips/mips-tables.opt: Regenerate.
34157         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
34158         to use mips_isa_rev rather than ISA_MIPS32R2.
34159         * config/mips/mips.h (ISA_MIPS32R3): New define.
34160         (ISA_MIPS32R5): New define.
34161         (ISA_MIPS64R3): New define.
34162         (ISA_MIPS64R5): New define.
34163         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
34164         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
34165         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
34166         and mips64r5.
34167         (MIPS_ISA_SYNCI_SPEC): Likewise.
34168         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
34169         (LINK_SPEC): Added mips32r3 and mips32r5.
34170         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
34171         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
34172         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
34173         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
34174         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
34175         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
34176         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
34177
34178 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
34179
34180         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
34181         options.
34182         * config/mips/mips.opt (mxpa): New option.
34183         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
34184         assembler.
34185
34186 2014-06-03  Martin Jambor  <mjambor@suse.cz>
34187
34188         PR ipa/61160
34189         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
34190         thunks.
34191
34192 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34193
34194         PR tree-optimization/61328
34195         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
34196         initialization from find_bswap_or_nop_1.
34197         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
34198         in source_expr2 before using the size value the function sets. Also
34199         make use of init_symbolic_number () in both the old place and
34200         find_bswap_or_nop_load () to avoid reading uninitialized memory when
34201         doing recursion in the GIMPLE_BINARY_RHS case.
34202
34203 2014-06-03  Richard Biener  <rguenther@suse.de>
34204
34205         PR tree-optimization/61383
34206         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
34207         stmts can't trap.
34208
34209 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
34210
34211         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
34212         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
34213         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
34214         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
34215         in this file.
34216         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
34217         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
34218         * system.h: ...here and make it unconditional.
34219         * target.def (conditional_register_usage): Mention
34220         define_register_constraint instead of old-style constraint macros.
34221         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
34222         * doc/tm.texi: Regenerate.
34223         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
34224         protected by !USE_MD_CONSTRAINTS.
34225         * config/frv/frv.md: Remove quote from old version of documentation.
34226         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
34227         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
34228         CONST_DOUBLE_OK_FOR_LETTER.
34229         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
34230
34231 2014-06-02  Andrew Pinski  <apinski@cavium.com>
34232
34233         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
34234         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
34235         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
34236         file whose name depends on -mabi= and -mbig-endian.
34237         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
34238         Handle LP64 better and handle ilp32 too.
34239         (MULTILIB_OPTIONS): Delete.
34240         (MULTILIB_DIRNAMES): Delete.
34241
34242 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
34243
34244         * expr.h: Remove prototypes of functions defined in builtins.c.
34245         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
34246         Remove prototypes of functions defined in builtins.c.
34247         * builtins.h: Update prototype list to include all exported functions.
34248         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
34249         no_c99_libc_has_function): Move to targhooks.c
34250         (build_string_literal, build_call_expr_loc_array,
34251         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
34252         to tree.c.
34253         (expand_builtin_object_size, fold_builtin_object_size): Make static.
34254         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
34255         no_c99_libc_has_function): Relocate from builtins.c.
34256         * tree.c: Include builtins.h.
34257         (build_call_expr_loc_array, build_call_expr_loc_vec,
34258         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
34259         from builtins.c.
34260         * fold-const.h (fold_fma): Move prototype to builtins.h.
34261         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
34262         * asan.c: Include builtins.h.
34263         * cfgexpand.c: Likewise.
34264         * convert.c: Likewise.
34265         * emit-rtl.c: Likewise.
34266         * except.c: Likewise.
34267         * expr.c: Likewise.
34268         * fold-const.c: Likewise.
34269         * gimple-fold.c: Likewise.
34270         * gimple-ssa-strength-reduction.c: Likewise.
34271         * gimplify.c: Likewise.
34272         * ipa-inline.c: Likewise.
34273         * ipa-prop.c: Likewise.
34274         * lto-streamer-out.c: Likewise.
34275         * stmt.c: Likewise.
34276         * tree-inline.c: Likewise.
34277         * tree-object-size.c: Likewise.
34278         * tree-sra.c: Likewise.
34279         * tree-ssa-ccp.c: Likewise.
34280         * tree-ssa-forwprop.c: Likewise.
34281         * tree-ssa-loop-ivcanon.c: Likewise.
34282         * tree-ssa-loop-ivopts.c: Likewise.
34283         * tree-ssa-math-opts.c: Likewise.
34284         * tree-ssa-reassoc.c: Likewise.
34285         * tree-ssa-threadedge.c: Likewise.
34286         * tree-streamer-in.c: Likewise.
34287         * tree-vect-data-refs.c: Likewise.
34288         * tree-vect-patterns.c: Likewise.
34289         * tree-vect-stmts.c: Likewise.
34290         * config/aarch64/aarch64.c: Likewise.
34291         * config/alpha/alpha.c: Likewise.
34292         * config/arc/arc.c: Likewise.
34293         * config/arm/arm.c: Likewise.
34294         * config/avr/avr.c: Likewise.
34295         * config/bfin/bfin.c: Likewise.
34296         * config/c6x/c6x.c: Likewise.
34297         * config/cr16/cr16.c: Likewise.
34298         * config/cris/cris.c: Likewise.
34299         * config/epiphany/epiphany.c: Likewise.
34300         * config/fr30/fr30.c: Likewise.
34301         * config/frv/frv.c: Likewise.
34302         * config/h8300/h8300.c: Likewise.
34303         * config/i386/i386.c: Likewise.
34304         * config/i386/winnt.c: Likewise.
34305         * config/ia64/ia64.c: Likewise.
34306         * config/iq2000/iq2000.c: Likewise.
34307         * config/lm32/lm32.c: Likewise.
34308         * config/m32c/m32c.c: Likewise.
34309         * config/m32r/m32r.c: Likewise.
34310         * config/m68k/m68k.c: Likewise.
34311         * config/mcore/mcore.c: Likewise.
34312         * config/mep/mep.c: Likewise.
34313         * config/microblaze/microblaze.c: Likewise.
34314         * config/mips/mips.c: Likewise.
34315         * config/mmix/mmix.c: Likewise.
34316         * config/mn10300/mn10300.c: Likewise.
34317         * config/moxie/moxie.c: Likewise.
34318         * config/msp430/msp430.c: Likewise.
34319         * config/nds32/nds32.c: Likewise.
34320         * config/pa/pa.c: Likewise.
34321         * config/pdp11/pdp11.c: Likewise.
34322         * config/picochip/picochip.c: Likewise.
34323         * config/rl78/rl78.c: Likewise.
34324         * config/rs6000/rs6000.c: Likewise.
34325         * config/rx/rx.c: Likewise.
34326         * config/s390/s390.c: Likewise.
34327         * config/score/score.c: Likewise.
34328         * config/sh/sh.c: Likewise.
34329         * config/sparc/sparc.c: Likewise.
34330         * config/spu/spu.c: Likewise.
34331         * config/stormy16/stormy16.c: Likewise.
34332         * config/tilegx/tilegx.c: Likewise.
34333         * config/tilepro/tilepro.c: Likewise.
34334         * config/v850/v850.c: Likewise.
34335         * config/vax/vax.c: Likewise.
34336         * config/xtensa/xtensa.c: Likewise.
34337
34338 2014-06-02  Jeff Law  <law@redhat.com>
34339
34340         PR rtl-optimization/61094
34341         * ree.c (combine_reaching_defs): Do not reextend an insn if it
34342         was marked as do_no_reextend.  If a copy is needed to eliminate
34343         an extension, then mark it as do_not_reextend.
34344
34345 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34346
34347         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
34348
34349 2014-06-02  Richard Henderson  <rth@redhat.com>
34350
34351         PR target/61336
34352         * config/alpha/alpha.c (print_operand_address): Allow symbolic
34353         addresses inside asms.  Use output_operand_lossage instead of
34354         gcc_unreachable.
34355
34356 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
34357
34358         PR target/61239
34359         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
34360         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
34361
34362 2014-06-02  Tom de Vries  <tom@codesourcery.com>
34363
34364         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
34365         case that x has VOIDmode.
34366
34367 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
34368
34369         * varasm.c (copy_constant): Delete function.
34370         (build_constant_desc): Don't call it.
34371
34372 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34373
34374         PR target/61154
34375         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
34376         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
34377         with immediate_operand.
34378
34379 2014-06-02  Andreas Schwab  <schwab@suse.de>
34380
34381         * config/ia64/ia64.c
34382         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
34383         pending_data_specs first.
34384
34385 2014-06-02  Richard Biener  <rguenther@suse.de>
34386
34387         PR tree-optimization/61378
34388         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
34389         valueized_anything.
34390
34391 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
34392
34393         * config/i386/constraints.md (Bw): Rename from 'w'.
34394         (Bz): Rename from 'z'.
34395         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
34396
34397 2014-06-01  Kai Tietz  <ktietz@redhat.com>
34398
34399         PR target/61377
34400         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
34401         * config/i386/i386.md (sibcall_insn_operand): Use Bs
34402         instead of m constraint.
34403
34404 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
34405
34406         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
34407         a separate alternative where the scratch operand 2 is marked as
34408         early clobber.
34409
34410 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
34411
34412         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
34413         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
34414         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
34415         and __builtins_arm_get_fpscr.
34416         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
34417         __builtins_arm_get_fpscr.
34418         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
34419         __builtins_arm_ldfpscr.
34420         (arm_atomic_assign_expand_fenv): New function.
34421         * config/arm/vfp.md (set_fpscr): New pattern.
34422         (get_fpscr) : Likewise.
34423         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
34424         VUNSPEC_SET_FPSCR.
34425         * doc/extend.texi (AARCH64 Built-in Functions) : Document
34426         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
34427
34428 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
34429
34430         * asan.c (report_error_func): Add SLOW_P argument, use
34431         BUILT_IN_ASAN_*_N if set.
34432         (build_check_stmt): Likewise.
34433         (instrument_derefs): If T has insufficient alignment,
34434         force same handling as for odd sizes.
34435
34436         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
34437         BUILT_IN_ASAN_REPORT_STORE_N): New.
34438         * asan.c (struct asan_mem_ref): Change access_size type to
34439         HOST_WIDE_INT.
34440         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
34441         update_mem_ref_hash_table): Likewise.
34442         (asan_mem_ref_hasher::hash): Hash in a HWI.
34443         (report_error_func): Change size_in_bytes argument to HWI.
34444         Use *_N builtins if size_in_bytes is larger than 16 or not power of
34445         two.
34446         (build_shadow_mem_access): New function.
34447         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
34448         Handle size_in_bytes not power of two or larger than 16.
34449         (instrument_derefs): Don't give up if size_in_bytes is not
34450         power of two or is larger than 16.
34451
34452 2014-05-30  Kai Tietz  <ktietz@redhat.com>
34453
34454         PR target/60104
34455         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
34456         for sibling-tail-calls.
34457         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
34458         to its use.
34459         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
34460         (sibcall_insn_operand): Add check for sibcall_memory_operand.
34461
34462 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
34463
34464         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
34465         * config/avr/avr-tables.opt: Regenerate.
34466         * config/avr/t-multilib: Regenerate.
34467         * doc/avr-mmcu.texi: Regenerate.
34468
34469 2014-05-30  Ian Lance Taylor  <iant@google.com>
34470
34471         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
34472         target("sse").
34473
34474 2014-05-30  Tom de Vries  <tom@codesourcery.com>
34475
34476         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
34477         Redefine as true.
34478
34479 2014-05-30  Tom de Vries  <tom@codesourcery.com>
34480
34481         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
34482         * lra.c (initialize_lra_reg_info_element): Add init of
34483         actual_call_used_reg_set field.
34484         (lra): Call lra_create_live_ranges before lra_inheritance for
34485         -fuse-caller-save.
34486         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
34487         -fuse-caller-save.
34488         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
34489         instead of call_used_reg_set for -fuse-caller-save.
34490         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
34491
34492 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34493
34494         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
34495         to mov_imm.
34496         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
34497
34498 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
34499
34500         * ira.c (ira_get_dup_out_num): Check for output operands at
34501         the start of the loop.  Handle cases where an included alternative
34502         follows an excluded one.
34503
34504 2014-05-29  Mike Stump  <mikestump@comcast.net>
34505
34506         PR debug/61352
34507         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
34508         post ld passes when lto is used.
34509
34510 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
34511
34512         PR rtl-optimization/61325
34513         * lra-constraints.c (process_address): Rename to process_address_1.
34514         (process_address): New function.
34515
34516 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
34517
34518         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
34519         TYPES_BINOPV): New static data.
34520         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
34521         New builtin.
34522         * config/aarch64/aarch64-simd.md (aarch64_ext,
34523         aarch64_im_lane_boundsi): New patterns.
34524         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
34525         patterns for EXT.
34526         (aarch64_evpc_ext): New function.
34527
34528         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
34529
34530         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
34531         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
34532         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
34533         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
34534         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
34535
34536 2014-05-29  Tom de Vries  <tom@codesourcery.com>
34537
34538         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
34539
34540 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
34541             Richard Sandiford  <rdsandiford@googlemail.com>
34542
34543         * arm/iterators.md (shiftable_ops): New code iterator.
34544         (t2_binop0, arith_shift_insn): New code attributes.
34545         * arm/predicates.md (shift_nomul_operator): New predicate.
34546         * arm/arm.md (insn_enabled): Delete.
34547         (enabled): Remove insn_enabled test.
34548         (*arith_shiftsi): Delete.  Replace with ...
34549         (*<arith_shift_insn>_multsi): ... new pattern.
34550         (*<arith_shift_insn>_shiftsi): ... new pattern.
34551         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
34552
34553 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
34554             Tom de Vries  <tom@codesourcery.com>
34555
34556         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
34557         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
34558         clobber.
34559         (mips_split_call): Use POST_CALL_TMP_REG.
34560         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
34561
34562 2014-05-29  Tom de Vries  <tom@codesourcery.com>
34563
34564         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
34565         with #ifdef STACK_REGS.
34566
34567 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
34568
34569         * varasm.c (get_variable_section): Walk aliases.
34570         (place_block_symbol): Walk aliases.
34571
34572 2014-05-28  Tom de Vries  <tom@codesourcery.com>
34573
34574         Revert:
34575         2014-05-28  Tom de Vries  <tom@codesourcery.com>
34576
34577         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
34578         * lra.c (initialize_lra_reg_info_element): Add init of
34579         actual_call_used_reg_set field.
34580         (lra): Call lra_create_live_ranges before lra_inheritance for
34581         -fuse-caller-save.
34582         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
34583         -fuse-caller-save.
34584         * lra-constraints.c (need_for_call_save_p): Use
34585         actual_call_used_reg_set instead of call_used_reg_set for
34586         -fuse-caller-save.
34587         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
34588
34589 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
34590
34591         * doc/md.texi: Document that the % constraint character must
34592         be at the beginning of the string.
34593         * genoutput.c (validate_insn_alternatives): Check that '=',
34594         '+' and '%' only appear at the beginning of a constraint.
34595         * ira.c (commutative_constraint_p): Delete.
34596         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
34597         at the start of the string.
34598         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
34599         duplicate '='s.
34600         * config/arm/neon.md (bicdi3_neon): Likewise.
34601         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
34602         (slt_si, sltu_si): Likewise.
34603         * config/vax/vax.md (sbcdi3): Likewise.
34604         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
34605         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
34606         (mul64): Move '%' to beginning of constraint.
34607         * config/arm/arm.md (*xordi3_insn): Likewise.
34608         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
34609         (xorsi3): Likewise.
34610
34611 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
34612
34613         * doc/md.texi: Document the restrictions on the "enabled" attribute.
34614
34615 2014-05-28  Jason Merrill  <jason@redhat.com>
34616
34617         PR c++/47202
34618         * cgraph.h (symtab_node::get_comdat_group_id): New.
34619         * cgraphunit.c (analyze_functions): Call it.
34620         * symtab.c (dump_symtab_node): Likewise.
34621         * tree.c (decl_comdat_group_id): New.
34622         * tree.h: Declare it.
34623         * lto-streamer-out.c (write_symbol): Use it.
34624         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
34625
34626 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34627
34628         PR bootstrap/PR61146
34629         * wide-int.cc: Do not include longlong.h when compiling with clang.
34630
34631 2014-05-28  Richard Biener  <rguenther@suse.de>
34632
34633         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
34634         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
34635         (vrp_visit_assignment_or_call): Print less vertical space.
34636         (vrp_visit_stmt): Likewise.
34637         (vrp_visit_phi_node): Likewise.  For a PHI argument with
34638         VR_VARYING range consider recording it as copy.
34639
34640 2014-05-28  Richard Biener  <rguenther@suse.de>
34641
34642         Revert
34643         2014-05-28  Richard Biener  <rguenther@suse.de>
34644
34645         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34646
34647 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34648
34649         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
34650         sufficiently aligned and an offset is used at the same time.
34651         (expand_expr_real_1): Likewise.
34652
34653 2014-05-28  Richard Biener  <rguenther@suse.de>
34654
34655         PR middle-end/61045
34656         * fold-const.c (fold_comparison): When folding
34657         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
34658         the sign of the remaining constant operand stays the same.
34659
34660 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
34661
34662         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
34663         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
34664         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
34665         to the assembler.
34666         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
34667         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
34668         (m32bit-doubles) Likewise.
34669         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
34670         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
34671         option for RL78.
34672
34673 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34674
34675         * configure.ac ($gcc_cv_ld_clearcap): New test.
34676         * configure: Regenerate.
34677         * config.in: Regenerate.
34678         * config/sol2.opt (mclear-hwcap): New option.
34679         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
34680         * config/sol2-clearcap.map: Moved here from
34681         testsuite/gcc.target/i386/clearcap.map.
34682         * config/sol2-clearcapv2.map: Move here from
34683         gcc.target/i386/clearcapv2.map.
34684         * config/t-sol2 (install): Depend on install-clearcap-map.
34685         (install-clearcap-map): New target.
34686         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
34687         -mclear-hwcap.
34688
34689 2014-05-28  Richard Biener  <rguenther@suse.de>
34690
34691         * hwint.h (*_HALF_WIDE_INT*): Move to ...
34692         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
34693         ... here and remove the rest.
34694         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34695
34696 2014-05-28  Richard Biener  <rguenther@suse.de>
34697
34698         PR tree-optimization/61335
34699         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
34700         new range fails, drop to varying.
34701
34702 2014-05-28  Olivier Hainque  <hainque@adacore.com>
34703
34704         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
34705         (CPP_SPEC): Add entry for -mcpu=8548.
34706         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
34707         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
34708
34709 2014-05-28  Tom de Vries  <tom@codesourcery.com>
34710
34711         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
34712         * lra.c (initialize_lra_reg_info_element): Add init of
34713         actual_call_used_reg_set field.
34714         (lra): Call lra_create_live_ranges before lra_inheritance for
34715         -fuse-caller-save.
34716         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
34717         -fuse-caller-save.
34718         * lra-constraints.c (need_for_call_save_p): Use
34719         actual_call_used_reg_set instead of call_used_reg_set for
34720         -fuse-caller-save.
34721         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
34722
34723 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
34724             Tom de Vries  <tom@codesourcery.com>
34725
34726         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
34727         to gccoptlist.
34728         (@item -fuse-caller-save): New item.
34729
34730 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
34731             Tom de Vries  <tom@codesourcery.com>
34732
34733         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
34734         OPT_fuse_caller_save.
34735
34736 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
34737             Tom de Vries  <tom@codesourcery.com>
34738
34739         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
34740         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
34741         get_call_reg_set_usage.
34742         * resource.c (mark_set_resources, mark_target_live_regs): Use
34743         get_call_reg_set_usage.
34744         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
34745         field.
34746         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
34747         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
34748         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
34749         * ira-build.c (ira_create_allocno): Init
34750         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
34751         (create_cap_allocno, propagate_allocno_info)
34752         (propagate_some_info_from_allocno)
34753         (copy_info_to_removed_store_destinations): Handle
34754         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
34755         * ira-costs.c (ira_tune_allocno_costs): Use
34756         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
34757
34758 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
34759             Tom de Vries  <tom@codesourcery.com>
34760
34761         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
34762         and function_used_regs_valid fields.
34763         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
34764         find_all_hard_reg_sets.
34765         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
34766         (get_call_reg_set_usage): New function.
34767         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
34768         * regs.h (get_call_reg_set_usage): Declare.
34769
34770 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
34771
34772         PR libgcc/61152
34773         * config/dbx.h (License): Add Runtime Library Exception.
34774         * config/newlib-stdint.h (License): Same.
34775         * config/rtems.h (License): Same
34776         * config/initfini-array.h (License): Same
34777         * config/v850/v850.h (License): Same.
34778         * config/v850/v850-opts.h (License): Same
34779         * config/v850/rtems.h (License): Same.
34780
34781 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
34782
34783         PR target/61044
34784         * doc/extend.texi (Local Labels): Note that label differences are
34785         not supported for AVR.
34786
34787 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
34788             Olivier Hainque  <hainque@adacore.com>
34789
34790         * rtl.h (set_for_reg_notes): Declare.
34791         * emit-rtl.c (set_for_reg_notes): New function.
34792         (set_unique_reg_note): Use it.
34793         * optabs.c (add_equal_note): Likewise
34794
34795 2014-05-27  Andrew Pinski  <apinski@cavium.com>
34796
34797         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
34798         Use <w> for the register in assembly template.
34799         (stack_protect_test): Use the mode of operands[0] for the result.
34800         (stack_protect_test_<mode>): Use <w> for the register
34801         in assembly template.
34802
34803 2014-05-27  DJ Delorie  <dj@redhat.com>
34804
34805         * config/rx/rx.c (add_vector_labels): New.
34806         (rx_output_function_prologue): Call it.
34807         (rx_handle_func_attribute): Don't require empty arguments.
34808         (rx_handle_vector_attribute): New.
34809         (rx_attribute_table): Add "vector" attribute.
34810         * doc/extend.texi (interrupt, vector): Document new/changed
34811         RX-specific attributes.
34812
34813         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
34814
34815 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
34816
34817         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
34818         predicate to detect a negative quotient.
34819
34820 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
34821
34822         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
34823         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
34824         Add X - Y CMP 0 to X CMP Y transformation.
34825         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
34826
34827 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
34828
34829         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
34830         before printing.
34831
34832 2014-05-27  Steve Ellcey  <sellcey@mips.com>
34833
34834         * config/mips/mips.c: Add include of cgraph.h.
34835
34836 2014-05-27  Richard Biener  <rguenther@suse.de>
34837
34838         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
34839
34840 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
34841
34842         PR libgcc/61152
34843         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
34844         * config/arm/arm-cores.def (License): Same.
34845         * config/arm/arm-opts.h (License): Same.
34846         * config/arm/aout.h (License): Same.
34847         * config/arm/bpabi.h (License): Same.
34848         * config/arm/elf.h (License): Same.
34849         * config/arm/linux-elf.h (License): Same.
34850         * config/arm/linux-gas.h (License): Same.
34851         * config/arm/netbsd-elf.h (License): Same.
34852         * config/arm/uclinux-eabi.h (License): Same.
34853         * config/arm/uclinux-elf.h (License): Same.
34854         * config/arm/vxworks.h (License): Same.
34855
34856 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34857
34858         * config/arm/neon.md (neon_bswap<mode>): New pattern.
34859         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
34860         (arm_init_neon_builtins): Handle NEON_BSWAP.
34861         Define required type nodes.
34862         (arm_expand_neon_builtin): Handle NEON_BSWAP.
34863         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
34864         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
34865         * config/arm/iterators.md (VDQHSD): New mode iterator.
34866
34867 2014-05-27  Richard Biener  <rguenther@suse.de>
34868
34869         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
34870         Try using literal operands when comparing value-ranges failed.
34871
34872 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
34873
34874         * ira.c (commutative_operand): Adjust for change to recog_data.
34875         [Missing from previous commit.]
34876
34877 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
34878
34879         * system.h (TEST_BIT): New macro.
34880         * recog.h (alternative_mask): New type.
34881         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
34882         (recog_data_d): Replace alternative_enabled_p array with
34883         enabled_alternatives.
34884         (target_recog): New structure.
34885         (default_target_recog, this_target_recog): Declare.
34886         (get_enabled_alternatives, recog_init): Likewise.
34887         * recog.c (default_target_recog, this_target_recog): New variables.
34888         (get_enabled_alternatives): New function.
34889         (extract_insn): Use it.
34890         (recog_init): New function.
34891         (preprocess_constraints, constrain_operands): Adjust for change to
34892         recog_data.
34893         * postreload.c (reload_cse_simplify_operands): Likewise.
34894         * reload.c (find_reloads): Likewise.
34895         * ira-costs.c (record_reg_classes): Likewise.
34896         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
34897         all alternatives after a disabled one would be skipped.
34898         (ira_implicitly_set_insn_hard_regs): Likewise.
34899         * ira.c (ira_setup_alts): Adjust for change to recog_data.
34900         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
34901         with enabled_alternatives.
34902         * lra.c (free_insn_recog_data): Update accordingly.
34903         (lra_update_insn_recog_data): Likewise.
34904         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
34905         * lra-constraints.c (process_alt_operands): Likewise.  Handle
34906         only_alternative as part of the enabled mask.
34907         * target-globals.h (this_target_recog): Declare.
34908         (target_globals): Add a recog field.
34909         (restore_target_globals): Restore this_target_recog.
34910         * target-globals.c: Include recog.h.
34911         (default_target_globals): Initialize recog field.
34912         (save_target_globals): Likewise.
34913         * reginfo.c (reinit_regs): Call recog_init.
34914         * toplev.c (backend_init_target): Likewise.
34915
34916 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
34917
34918         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
34919         rather than any named insn's code.
34920
34921 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
34922
34923         PR libgcc/61152
34924         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
34925         * config/arm/arm-cores.def (License): Same.
34926
34927 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
34928
34929         * tree.h (decl_comdat_group): Declare.
34930         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
34931         * tree.c (decl_comdat_group): Here.
34932
34933 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
34934
34935         PR rtl-optimization/61222
34936         * combine.c (simplify_shift_const_1): When moving a PLUS outside
34937         the shift, truncate the PLUS operand to the result mode.
34938
34939 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
34940
34941         PR target/61271
34942         * config/i386/i386.c (ix86_rtx_costs)
34943         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
34944         Fix condition.
34945
34946 2014-05-26  Martin Jambor  <mjambor@suse.cz>
34947
34948         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
34949         subreg uses.
34950
34951 2014-05-26  Richard Biener  <rguenther@suse.de>
34952
34953         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
34954         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
34955         Provide specializations.
34956         (wi::int_traits <HOST_WIDE_INT>,
34957         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
34958
34959 2014-05-26  Alan Modra  <amodra@gmail.com>
34960
34961         PR target/61098
34962         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
34963         params and return a bool.  Remove dead code.  Update comment.
34964         Assert we have a const_int source.  Remove bogus code from
34965         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
34966         handling of constants > 2G and reg_equal note, from..
34967         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
34968         return value.  Update comment.  If we can, use a new pseudo
34969         for intermediate calculations.
34970         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
34971         prototype.
34972         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
34973         call to rs6000_emit_set_const in splitter.
34974         (movdi_internal64+2, +3): Likewise.
34975
34976 2014-05-26  Richard Biener  <rguenther@suse.de>
34977
34978         * system.h: Define __STDC_FORMAT_MACROS before
34979         including inttypes.h.
34980         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
34981         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
34982         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
34983         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
34984         HOST_WIDEST_INT_C): Remove.
34985         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
34986         if C99 inttypes.h is not available.
34987         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
34988         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
34989         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
34990         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
34991         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
34992         (struct output_info): Likewise.
34993         (print_statistics): Adjust.
34994         (dump_bitmap_statistics): Likewise.
34995         * bt-load.c (migrate_btr_defs): Print with PRId64.
34996         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
34997         (MAX_SAFE_MULTIPLIER): Adjust.
34998         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
34999         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
35000         dump_cgraph_node): Likewise.
35001         * final.c (dump_basic_block_info): Likewise.
35002         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
35003         * gcov.c (format_gcov): Likewise.
35004         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
35005         for calculation.
35006         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
35007         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
35008         (inline_small_functions, dump_overall_stats, dump_inline_stats):
35009         Use PRId64 for dumping.
35010         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
35011         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
35012         (add_allocno_hard_regs): Adjust.
35013         * loop-doloop.c (doloop_modify): Print using PRId64.
35014         * loop-iv.c (inverse): Compute in uint64_t.
35015         (determine_max_iter, iv_number_of_iterations): Likewise.
35016         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
35017         Print using PRId64.
35018         * lto-streamer-out.c (write_symbol): Use uint64_t.
35019         * mcf.c (CAP_INFINITY): Use int64_t maximum.
35020         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
35021         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
35022         * modulo-sched.c (const_iteration_count): Use int64_t.
35023         (sms_schedule): Dump using PRId64.
35024         * predict.c (dump_prediction): Likewise.
35025         * pretty-print.h (pp_widest_integer): Remove.
35026         * profile.c (get_working_sets, is_edge_inconsistent,
35027         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
35028         * tree-pretty-print.c (pp_double_int): Remove case handling
35029         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
35030         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
35031         and adjust users.
35032         (pass_optimize_bswap::execute): Remove restriction on hosts.
35033         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
35034         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
35035         * tree.c (widest_int_cst_value): Remove.
35036         * tree.h (widest_int_cst_value): Likewise.
35037         * value-prof.c (dump_histogram_value): Print using PRId64.
35038         * gengtype.c (main): Also inject int64_t.
35039         * ggc-page.c (struct max_alignment): Use int64_t.
35040         * alloc-pool.c (struct allocation_object_def): Likewise.
35041         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
35042         for computation.
35043         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
35044         * doc/tm.texi: Regenerated.
35045         * gengtype-lex.l (IWORD): Handle [u]int64_t.
35046         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
35047         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
35048         mmix_output_register_setting): Use [u]int64_t in prototypes.
35049         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
35050         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
35051         mmix_output_octa, mmix_output_shifted_value): Adjust.
35052         (mmix_intval): Adjust.  Remove unreachable case.
35053         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
35054
35055 2014-05-26  Richard Biener  <rguenther@suse.de>
35056
35057         * configure.ac: Drop __int64 type check.  Insist that we
35058         found uint64_t and int64_t.
35059         * hwint.h (HOST_BITS_PER___INT64): Remove.
35060         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
35061         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
35062         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
35063         (HOST_WIDEST_FAST_INT): Remove __int64 case.
35064         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
35065         for dst_q_src_df_rms_cdt.
35066         * configure: Regenerate.
35067         * config.in: Likewise.
35068
35069 2014-05-26  Michael Tautschnig  <mt@debian.org>
35070
35071         PR target/61249
35072         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
35073         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
35074
35075 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
35076
35077         PR rtl-optimization/61278
35078         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
35079
35080 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
35081
35082         PR rtl-optimization/61220
35083         Part of PR rtl-optimization/61225
35084         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
35085         insn; skip split_edge for a block with only one successor.
35086
35087 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35088
35089         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
35090         for variables.
35091
35092 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35093
35094         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
35095         (update_vtable_references): New function.
35096         (function_and_variable_visibility): Rewrite also vtable initializers.
35097         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
35098
35099 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35100
35101         * ggc.h (ggc_grow): New function.
35102         * ggc-none.c (ggc_grow): New function.
35103         * ggc-page.c (ggc_grow): Likewise.
35104
35105 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35106
35107         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
35108         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
35109         comdat_can_be_unshared_p, cgraph_externally_visible_p,
35110         varpool_externally_visible_p, can_replace_by_local_alias,
35111         update_visibility_by_resolution_info, function_and_variable_visibility,
35112         pass_data_ipa_function_and_variable_visibility,
35113         make_pass_ipa_function_and_variable_visibility,
35114         whole_program_function_and_variable_visibility,
35115         pass_data_ipa_whole_program_visibility,
35116         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
35117         * cgraph.h (cgraph_local_node_p): Declare.
35118         * ipa-visibility.c: New file.
35119         * Makefile.in (OBJS): Add ipa-visiblity.o
35120
35121 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35122
35123         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
35124         that var decl is available.
35125
35126 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35127
35128         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
35129         symtab_node pointer.
35130         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
35131         (find_decls_types_r): Do not walk COMDAT_GROUP.
35132         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
35133         * varasm.c (make_decl_one_only): Use set_comdat_group;
35134         create node if needed.
35135         * ipa-inline-transform.c (save_inline_function_body): Update
35136         way we decl->symtab mapping.
35137         * symtab.c (symtab_hash, hash_node, eq_node
35138         symtab_insert_node_to_hashtable): Remove.
35139         (symtab_register_node): Update.
35140         (symtab_unregister_node): Update.
35141         (symtab_get_node): Reimplement as inline function.
35142         (symtab_add_to_same_comdat_group): Update.
35143         (symtab_dissolve_same_comdat_group_list): Update.
35144         (dump_symtab_base): Update.
35145         (verify_symtab_base): Update.
35146         (symtab_make_decl_local): Update.
35147         (fixup_same_cpp_alias_visibility): Update.
35148         (symtab_nonoverwritable_alias): Update.
35149         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
35150         * ipa.c (update_visibility_by_resolution_info): UPdate.
35151         * bb-reorder.c: Include cgraph.h
35152         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
35153         with comdat groups.
35154         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
35155         * cgraph.c (cgraph_get_create_node): Update.
35156         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
35157         and comdat_group_.
35158         (symtab_get_node): Make inline.
35159         (symtab_insert_node_to_hashtable): Remove.
35160         (symtab_can_be_discarded): Update.
35161         (decl_comdat_group): New function.
35162         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
35163         Update.
35164         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
35165         comdat group name.
35166         (read_comdat_group): New function.
35167         (input_node, input_varpool_node): Use it.
35168         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
35169         comdat groups.
35170         * mips.c (mips_start_unique_function): Likewise.
35171         (ix86_code_end): Likewise.
35172         (rs6000_code_end): Likweise.
35173         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
35174
35175 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35176
35177         * gengtype-state.c (fatal_reading_state): Bring offline.
35178         * optabs.c (widening_optab_handler): Bring offline.
35179         * optabs.h (widening_optab_handler): Likewise.
35180         * final.c (get_attr_length_1): Likewise.
35181
35182 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35183
35184         * sched-int.h (sd_iterator_cond): Manually tail recurse.
35185
35186 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35187
35188         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
35189         (ppc440-compare): Include shift with dot.
35190         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
35191         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
35192         without dot.
35193         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
35194         without dot.
35195         (e6500_sfx2): Include it.
35196         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
35197         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
35198         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
35199         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
35200         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
35201         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
35202         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
35203         *lshiftrt_internal1le, *lshiftrt_internal1be,
35204         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
35205         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
35206         *rotldi3_internal10le, *rotldi3_internal10be,
35207         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
35208         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
35209         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
35210         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
35211         define_insns): Use type "shift" in the appropriate alternatives.
35212
35213 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35214
35215         * config/rs6000/rs6000.md (type): Add "logical".  Delete
35216         "fast_compare".
35217         (dot): Adjust comment.
35218         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
35219         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
35220         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
35221         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
35222         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
35223         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
35224         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
35225         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
35226
35227         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
35228         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
35229         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
35230         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
35231         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
35232         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
35233         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
35234         * config/rs6000/8540.md (ppc8540_su): Adjust.
35235         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
35236         cell-cmp-microcoded): Adjust.
35237         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
35238         * config/rs6000/e500mc.md (e500mc_su): Adjust.
35239         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
35240         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
35241         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
35242         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
35243         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
35244         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
35245         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
35246         Adjust.
35247         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
35248         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
35249         Adjust.  Adjust comment.
35250         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
35251         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
35252
35253 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35254
35255         * config/rs6000/rs6000.md (type): Add "add".
35256         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
35257         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
35258         define_insns): Use it.
35259         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
35260
35261         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
35262         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
35263         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
35264         * config/rs6000/601.md (ppc601-integer): Adjust.
35265         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
35266         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
35267         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
35268         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
35269         * config/rs6000/8540.md (ppc8540_su): Adjust.
35270         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
35271         cell-cmp-microcoded): Adjust.
35272         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
35273         * config/rs6000/e500mc.md (e500mc_su): Adjust.
35274         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
35275         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
35276         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
35277         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
35278         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
35279         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
35280         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
35281         Adjust.
35282         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
35283         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
35284         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
35285         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
35286
35287 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35288
35289         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
35290         "delayed_compare", "var_delayed_compare".
35291         (var_shift): New attribute.
35292         (cell_micro): Adjust.
35293         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
35294         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
35295         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
35296         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
35297         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
35298         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
35299         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
35300         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
35301         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
35302         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
35303         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
35304         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
35305         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
35306         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
35307         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
35308         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
35309         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
35310         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
35311         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
35312         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
35313         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
35314         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
35315         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
35316         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
35317         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
35318
35319         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
35320         * config/rs6000/440.md (ppc440-integer): Adjust.
35321         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
35322         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
35323         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
35324         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
35325         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
35326         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
35327         * config/rs6000/8540.md (ppc8540_su): Adjust.
35328         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
35329         cell-cmp-microcoded): Adjust.
35330         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
35331         * config/rs6000/e500mc.md (e500mc_su): Adjust.
35332         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
35333         e500mc64_delayed): Adjust.
35334         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
35335         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
35336         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
35337         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
35338         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
35339         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
35340         power6-delayed-compare, power6-var-delayed-compare): Adjust.
35341         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
35342         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
35343         Adjust comment.
35344         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
35345         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
35346
35347 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35348
35349         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
35350         (bits): New mode_attr.
35351         (idiv_ldiv): Delete mode_attr.
35352         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
35353         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
35354         rs6000_adjust_priority, is_nonpipeline_insn,
35355         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
35356
35357         * config/rs6000/40x.md (ppc403-idiv): Adjust.
35358         * config/rs6000/440.md (ppc440-idiv): Adjust.
35359         * config/rs6000/476.md (ppc476-idiv): Adjust.
35360         * config/rs6000/601.md (ppc601-idiv): Adjust.
35361         * config/rs6000/603.md (ppc603-idiv): Adjust.
35362         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
35363         ppc620-ldiv): Adjust.
35364         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
35365         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
35366         * config/rs6000/8540.md (ppc8540_divide): Adjust.
35367         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
35368         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
35369         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
35370         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
35371         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
35372         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
35373         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
35374         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
35375         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
35376         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
35377         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
35378         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
35379         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
35380         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
35381         * config/rs6000/titan.md (titan_fxu_div): Adjust.
35382
35383 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35384
35385         * config/rs6000/rs6000.md (type): Delete "insert_word",
35386         "insert_dword".  Add "insert".
35387         (size): Update comment.
35388         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
35389         insn_must_be_first_in_group): Adjust.
35390         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
35391         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
35392         *insvsi_internal6, insvdi_internal): Adjust.
35393
35394         * config/rs6000/40x.md (ppc403-integer): Adjust.
35395         * config/rs6000/440.md (ppc440-integer): Adjust.
35396         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
35397         * config/rs6000/601.md (ppc601-integer): Adjust.
35398         * config/rs6000/603.md (ppc603-integer): Adjust.
35399         * config/rs6000/6xx.md (ppc604-integer): Adjust.
35400         * config/rs6000/7450.md (ppc7450-integer): Adjust.
35401         * config/rs6000/7xx.md (ppc750-integer): Adjust.
35402         * config/rs6000/8540.md (ppc8540_su): Adjust.
35403         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
35404         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
35405         * config/rs6000/e500mc.md (e500mc_su): Adjust.
35406         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
35407         * config/rs6000/e5500.md (e5500_sfx): Adjust.
35408         * config/rs6000/e6500.md (e6500_sfx): Adjust.
35409         * config/rs6000/mpc.md (mpccore-integer): Adjust.
35410         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
35411         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
35412         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
35413         * config/rs6000/power7.md (power7-integer): Adjust.
35414         * config/rs6000/power8.md (power8-1cyc): Adjust.
35415         * config/rs6000/rs64.md (rs64a-integer): Adjust.
35416         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
35417
35418 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35419
35420         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
35421         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
35422         (size): New attribute.
35423         (dot): New attribute.
35424         (cell_micro): Adjust.
35425         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
35426         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
35427         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
35428         umuldi3_highpart): Adjust.
35429         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
35430         rs6000_adjust_priority, is_nonpipeline_insn,
35431         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
35432
35433         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
35434         ppc405-imul3): Adjust.
35435         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
35436         * config/rs6000/476.md (ppc476-imul): Adjust.
35437         * config/rs6000/601.md (ppc601-imul): Adjust.
35438         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
35439         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
35440         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
35441         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
35442         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
35443         Adjust.
35444         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
35445         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
35446         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
35447         cell-imul): Adjust.
35448         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
35449         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
35450         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
35451         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
35452         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
35453         * config/rs6000/mpc.md (mpccore-imul): Adjust.
35454         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
35455         power4-lmul, power4-imul, power4-imul3): Adjust.
35456         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
35457         power5-lmul, power5-imul, power5-imul3): Adjust.
35458         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
35459         power6-lmul, power6-imul, power6-imul3): Adjust.
35460         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
35461         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
35462
35463         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
35464         rs64a-lmul): Adjust.
35465         * config/rs6000/titan.md (titan_imul): Adjust.
35466
35467 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35468
35469         * config/rs6000/rs6000.md (type): Add new value "halfmul".
35470         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
35471         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
35472         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
35473         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
35474         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
35475         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
35476         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
35477         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
35478         * config/rs6000/titan.md: Delete nonsensical comment.
35479         (titan_imul): Add type imul3.
35480         (titan_mulhw): Remove type imul3; add type halfmul.
35481
35482 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
35483
35484         * config/rs6000/rs6000.md (type): Reorder, reformat.
35485
35486 2014-05-23  Martin Jambor  <mjambor@suse.cz>
35487
35488         PR tree-optimization/53787
35489         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
35490         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
35491         analysis_done, update all uses.
35492         * ipa-prop.c: Include domwalk.h
35493         (param_analysis_info): Removed.
35494         (param_aa_status): New type.
35495         (ipa_bb_info): Likewise.
35496         (func_body_info): Likewise.
35497         (ipa_get_bb_info): New function.
35498         (aa_overwalked): Likewise.
35499         (find_dominating_aa_status): Likewise.
35500         (parm_bb_aa_status_for_bb): Likewise.
35501         (parm_preserved_before_stmt_p): Changed to use new param AA info.
35502         (load_from_unmodified_param): Accept func_body_info as a parameter
35503         instead of parms_ainfo.
35504         (parm_ref_data_preserved_p): Changed to use new param AA info.
35505         (parm_ref_data_pass_through_p): Likewise.
35506         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
35507         (compute_complex_assign_jump_func): Changed to use new param AA info.
35508         (compute_complex_ancestor_jump_func): Likewise.
35509         (ipa_compute_jump_functions_for_edge): Likewise.
35510         (ipa_compute_jump_functions): Removed.
35511         (ipa_compute_jump_functions_for_bb): New function.
35512         (ipa_analyze_indirect_call_uses): Likewise, moved variable
35513         declarations down.
35514         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
35515         and info, moved variable declarations down.
35516         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
35517         node and info.
35518         (ipa_analyze_stmt_uses): Likewise.
35519         (ipa_analyze_params_uses): Removed.
35520         (ipa_analyze_params_uses_in_bb): New function.
35521         (ipa_analyze_controlled_uses): Likewise.
35522         (free_ipa_bb_info): Likewise.
35523         (analysis_dom_walker): New class.
35524         (ipa_analyze_node): Handle node-specific forbidden analysis,
35525         initialize and free func_body_info, use dominator walker.
35526         (ipcp_modif_dom_walker): New class.
35527         (ipcp_transform_function): Create and free func_body_info, use
35528         ipcp_modif_dom_walker, moved a lot of functionality there.
35529
35530 2014-05-23  Marek Polacek  <polacek@redhat.com>
35531             Jakub Jelinek  <jakub@redhat.com>
35532
35533         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
35534         * gcc.c (sanitize_spec_function): Likewise.
35535         * convert.c (convert_to_integer): Include "ubsan.h".  Add
35536         floating-point to integer instrumentation.
35537         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
35538         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
35539         SANITIZE_NONDEFAULT.
35540         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
35541         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
35542         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
35543         * ubsan.c: Include "realmpfr.h" and "dfp.h".
35544         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
35545         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
35546         float/double/long double.
35547         (ubsan_instrument_float_cast): New function.
35548         * ubsan.h (ubsan_instrument_float_cast): Declare.
35549
35550 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
35551
35552         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
35553         predicate.
35554         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
35555         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
35556         Adjust for tailcalling through registers.
35557         * config/aarch64/aarch64.h (enum reg_class): New caller save
35558         register class.
35559         (REG_CLASS_NAMES): Likewise.
35560         (REG_CLASS_CONTENTS): Likewise.
35561         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
35562         Allow tailcalling without decls.
35563
35564 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
35565
35566         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
35567         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
35568
35569         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
35570         gsi, and variables v_* to v*.
35571
35572 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
35573
35574         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
35575
35576 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
35577
35578         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
35579         * omp-low.c: Update accordingly.
35580
35581         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
35582         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
35583         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
35584         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
35585         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
35586         GF_OMP_TARGET_KIND_UPDATE.
35587
35588         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
35589         Explicitly enumerate the expected region types.
35590
35591 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
35592
35593         PR other/56955
35594         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
35595         documentation; the old documentation didn't clearly state the
35596         constraints on the contents of the pointed-to storage.
35597
35598 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35599
35600         Fix bootstrap error on ia64
35601         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
35602         Return default value.
35603
35604 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35605
35606         PR tree-optimization/54733
35607         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
35608         (CMPNOP): Define.
35609         (find_bswap_or_nop_load): New.
35610         (find_bswap_1): Renamed to ...
35611         (find_bswap_or_nop_1): This. Also add support for memory source.
35612         (find_bswap): Renamed to ...
35613         (find_bswap_or_nop): This. Also add support for memory source and
35614         detection of bitwise operations equivalent to load in target
35615         endianness.
35616         (execute_optimize_bswap): Likewise. Also move its leading comment back
35617         in place and split statement transformation into ...
35618         (bswap_replace): This.
35619
35620 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
35621
35622         PR rtl-optimization/61215
35623         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
35624         simplify_gen_subreg until final substitution.
35625
35626 2014-05-23  Alan Modra  <amodra@gmail.com>
35627
35628         PR target/61231
35629         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
35630         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
35631         Use "Y" constraint rather than "m".
35632
35633 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
35634
35635         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
35636         define.
35637         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
35638         New function declaration.
35639         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
35640         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
35641         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
35642         (aarch64_init_builtins) : Initialize builtins
35643         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
35644         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
35645         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
35646         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
35647         and __builtins_aarch64_set_fpsr.
35648         (aarch64_atomic_assign_expand_fenv): New function.
35649         * config/aarch64/aarch64.md (set_fpcr): New pattern.
35650         (get_fpcr) : Likewise.
35651         (set_fpsr) : Likewise.
35652         (get_fpsr) : Likewise.
35653         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
35654         and UNSPECV_SET_FPSR.
35655         * doc/extend.texi (AARCH64 Built-in Functions) : Document
35656         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
35657         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
35658
35659 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
35660
35661         PR rtl-optimization/60969
35662         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
35663         constraints.  Set up mem cost for NO_REGS case.
35664
35665 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
35666
35667         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
35668
35669 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
35670
35671         * config/darwin.c: Include "lto-section-names.h".
35672         (LTO_SEGMENT_NAME): Don't define.
35673         * config/i386/winnt.c: Include "lto-section-names.h".
35674         * lto-streamer.c: Include "lto-section-names.h".
35675         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
35676         * lto-wrapper.c: Include "lto-section-names.h".
35677         (LTO_SECTION_NAME_PREFIX): Don't define.
35678         * lto-section-names.h: New file.
35679         * cgraphunit.c: Include "lto-section-names.h".
35680
35681 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
35682
35683         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
35684
35685 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
35686
35687         PR target/61208
35688         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
35689
35690 2014-05-22  Nick Clifton  <nickc@redhat.com>
35691
35692         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
35693
35694 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
35695
35696         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
35697         -> (T)A transformation to integer types.
35698
35699 2014-05-22  Teresa Johnson  <tejohnson@google.com>
35700
35701         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
35702         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
35703         (gcov_rewrite): Use gcov_nonruntime_assert.
35704         (gcov_open): Ditto.
35705         (gcov_write_words): Ditto.
35706         (gcov_write_length): Ditto.
35707         (gcov_read_words): Use gcov_nonruntime_assert, and remove
35708         gcc_assert from IN_LIBGCOV code.
35709         (gcov_read_summary): Use gcov_error to flag profile corruption.
35710         (gcov_sync): Use gcov_nonruntime_assert.
35711         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
35712         (gcov_histo_index): Use gcov_nonruntime_assert.
35713         (static void gcov_histogram_merge): Ditto.
35714         (compute_working_sets): Ditto.
35715         * gcov-io.h (gcov_nonruntime_assert): Define.
35716         (gcov_error): Define for !IN_LIBGCOV
35717
35718 2014-05-22  Richard Biener  <rguenther@suse.de>
35719
35720         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
35721         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
35722         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
35723         and deallocation site.
35724         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
35725         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
35726         passing through the incoming points-to set.
35727         (handle_lhs_call): Use flags argument instead of recomputing it.
35728         (find_func_aliases_for_call): Call handle_lhs_call with proper
35729         call return flags.
35730
35731 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
35732
35733         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
35734         all padding bits in REAL_VALUE_TYPE are cleared.
35735
35736 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35737
35738         Cleanup and improve multipass_dfa_lookahead_guard
35739         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
35740         (core2i7_first_cycle_multipass_begin,)
35741         (core2i7_first_cycle_multipass_issue,)
35742         (core2i7_first_cycle_multipass_backtrack): Update signature.
35743         * config/ia64/ia64.c
35744         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
35745         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
35746         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
35747         hook definition.
35748         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
35749         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
35750         values.
35751         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
35752         return values.
35753         * doc/tm.texi: Regenerate.
35754         * doc/tm.texi.in
35755         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
35756         * haifa-sched.c (ready_try): Make signed to allow negative values.
35757         (rebug_ready_list_1): Update.
35758         (choose_ready): Simplify.
35759         (sched_extend_ready_list): Update.
35760
35761 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35762
35763         Remove IA64 speculation tweaking flags
35764         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
35765         speculation tuning flags.
35766         (msched-prefer-non-data-spec-insns,)
35767         (msched-prefer-non-control-spec-insns): Obsolete options.
35768         * haifa-sched.c (choose_ready): Remove handling of
35769         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
35770         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
35771         and PREFER_NON_DATA_SPEC.
35772         * sel-sched.c (process_spec_exprs): Remove handling of
35773         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
35774
35775 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35776
35777         Improve scheduling debug output
35778         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
35779         (advance_one_cycle): Update.
35780         (schedule_insn, queue_to_ready): Add debug printouts.
35781         (debug_ready_list_1): New static function.
35782         (debug_ready_list): Update.
35783         (max_issue): Add debug printouts.
35784         (dump_insn_stream): New static function.
35785         (schedule_block): Use it.  Also better indent printouts.
35786
35787 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35788
35789         Fix sched_insn debug counter
35790         * haifa-sched.c (schedule_insn): Update.
35791         (struct haifa_saved_data): Add nonscheduled_insns_begin.
35792         (save_backtrack_point, restore_backtrack_point): Update.
35793         (first_nonscheduled_insn): New static function.
35794         (queue_to_ready, choose_ready): Use it.
35795         (schedule_block): Init nonscheduled_insns_begin.
35796         (sched_emit_insn): Update.
35797
35798
35799 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
35800
35801         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
35802         to GENERAL_REGS.
35803         (aarch64_secondary_reload) : LikeWise.
35804         (aarch64_class_max_nregs) : Remove CORE_REGS.
35805         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
35806         (REG_CLASS_NAMES) : Likewise.
35807         (REG_CLASS_CONTENTS) : LikeWise.
35808         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
35809
35810 2014-05-21  Guozhi Wei  <carrot@google.com>
35811
35812         PR target/61202
35813         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
35814         constraint.
35815         (vqdmulhq_n_s16): Likewise.
35816
35817 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
35818
35819         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
35820
35821 2014-05-21  Marek Polacek  <polacek@redhat.com>
35822
35823         PR sanitizer/61272
35824         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
35825
35826 2014-05-21  Martin Jambor  <mjambor@suse.cz>
35827
35828         * doc/invoke.texi (Optimize Options): Document parameters
35829         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
35830         ipa-cp-array-index-hint-bonus.
35831
35832 2014-05-21  Mark Wielaard  <mjw@redhat.com>
35833
35834         PR debug/16063
35835         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
35836         version >= 3 or not strict DWARF.
35837         * langhooks.h (struct lang_hooks_for_types): Add
35838         enum_underlying_base_type.
35839         * langhooks.c (lhd_enum_underlying_base_type): New function.
35840         * gcc/langhooks.h (struct lang_hooks_for_types): Add
35841         enum_underlying_base_type.
35842         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
35843         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
35844         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
35845
35846 2014-05-21  Richard Biener  <rguenther@suse.de>
35847
35848         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
35849
35850 2014-05-21  John Marino  <gnugcc@marino.st>
35851
35852         * config.gcc (*-*-dragonfly*): New target.
35853         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
35854         * configure: Regenerate.
35855         * config/dragonfly-stdint.h: New.
35856         * config/dragonfly.h: New.
35857         * config/dragonfly.opt: New.
35858         * config/i386/dragonfly.h: New.
35859         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
35860
35861 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35862
35863         * tree.def (VOID_CST): New.
35864         * tree-core.h (TI_VOID): New.
35865         * tree.h (void_node): New.
35866         * tree.c (tree_node_structure_for_code, tree_code_size)
35867         (iterative_hash_expr): Handle VOID_CST.
35868         (build_common_tree_nodes): Initialize void_node.
35869
35870 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
35871
35872         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
35873         functions.
35874         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
35875
35876         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
35877         more places.
35878
35879         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
35880         flag_reorder_blocks_and_partition.
35881         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
35882
35883 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
35884
35885         PR target/54236
35886         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
35887         constraints.
35888         (*addc_r_t): Add new insn_and_split.
35889
35890 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
35891
35892         PR middle-end/61252
35893         * omp-low.c (handle_simd_reference): New function.
35894         (lower_rec_input_clauses): Use it.  Defer adding reference
35895         initialization even for reduction without placeholder if in simd,
35896         handle it properly later on.
35897
35898 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
35899
35900         PR tree-optimization/60899
35901         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
35902         assume all static symbols will have definition wile parsing and
35903         check the do have definition later in compilation; check that
35904         variable referring symbol will be output before concluding that
35905         reference is safe; be conservative for referring local statics;
35906         be more precise about when comdat is output in other partition.
35907
35908 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
35909
35910         PR bootstrap/60984
35911         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
35912         parameter.
35913         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
35914         (ipa_inline): Loop inline_to_all_callers until no more aliases
35915         are removed.
35916
35917 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
35918
35919         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
35920         set writeonly flag only for vars actually written to.
35921
35922 2014-05-20  Dehao Chen  <dehao@google.com>
35923
35924         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
35925         and callee count to get clone count.
35926         * tree-inline.c (expand_call_inline): Use callee count instead of bb
35927         count in copy_body.
35928
35929 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
35930
35931         PR rtl-optimization/61243
35932         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
35933
35934 2014-05-20  Xinliang David Li  <davidxl@google.com>
35935
35936         * cgraphunit.c (walk_polymorphic_call_targets): Add
35937         dbgcnt and fopt-info support.
35938         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
35939         * ipa-devirt.c (ipa_devirt): Ditto.
35940         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
35941         * ipa.c (walk_polymorphic_call_targets): Ditto.
35942         * gimple-fold.c (fold_gimple_assign): Ditto.
35943         (gimple_fold_call): Ditto.
35944         * dbgcnt.def: New counter.
35945
35946 2014-05-20  DJ Delorie  <dj@redhat.com>
35947
35948         * config/msp430/msp430.md (split): Don't allow subregs when
35949         splitting SImode adds.
35950         (andneghi): Fix subtraction logic.
35951         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
35952
35953 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
35954
35955         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
35956         symbols.
35957         * except.c (switch_to_exception_section, resolve_unique_section,
35958         get_named_text_section, default_function_rodata_section,
35959         align_variable, get_block_for_decl, default_section_type_flags):
35960         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
35961         * symtab.c (symtab_add_to_same_comdat_group,
35962         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
35963         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
35964         Likewise.
35965         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
35966         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
35967         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
35968         (c6x_function_in_section_p): Likewise.
35969         * config/darwin.c (machopic_select_section): Likewise.
35970         * config/arm/arm.c (arm_function_in_section_p): Likewise.
35971         * config/mips/mips.c (mips_function_rodata_section): Likewise.
35972         * config/mep/mep.c (mep_select_section): LIkewise.
35973         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
35974
35975 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
35976
35977         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
35978         EH region of calls to pure functions that can throw an exception.
35979         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
35980         (copy_reference_ops_from_call): Also copy the EH region of the call if
35981         it can throw an exception.
35982
35983 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35984
35985         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
35986         nested VEC_SELECTs that are inverses of each other.
35987
35988 2014-05-20  Richard Biener  <rguenther@suse.de>
35989
35990         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
35991         (extract_and_process_scc_for_name): not here.
35992         (cond_dom_walker::before_dom_children): Only process
35993         stmts that end the BB in interesting ways.
35994         (run_scc_vn): Mark param uses as visited.
35995
35996 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35997
35998         * config/arm/arm.md (arith_shiftsi): Do not predicate for
35999         arm_restrict_it.
36000
36001 2014-05-20  Nick Clifton  <nickc@redhat.com>
36002
36003         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
36004         (msp430_gimplify_va_arg_expr): New function.
36005         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
36006
36007         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
36008         operand 0 in order to prevent confusion about the number of
36009         registers involved.
36010
36011 2014-05-20  Richard Biener  <rguenther@suse.de>
36012
36013         PR tree-optimization/61221
36014         * tree-ssa-pre.c (el_to_update): Remove.
36015         (eliminate_dom_walker::before_dom_children): Handle released
36016         VDEFs by value-numbering them to the associated VUSE.  Update
36017         stmt immediately for substituted call address.
36018         (eliminate): Remove delayed stmt updating code.
36019         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
36020         possibly late re-numbered vuses.
36021         (vn_reference_lookup_2): Adjust.
36022         (vn_reference_lookup_pieces): Likewise.
36023         (vn_reference_lookup): Likewise.
36024
36025 2014-05-20  Richard Biener  <rguenther@suse.de>
36026
36027         * config.gcc: Remove need_64bit_hwint.
36028         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
36029         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
36030         it to be true.
36031         * config.in: Regenerate.
36032         * configure: Likewise.
36033
36034 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
36035
36036         * doc/extend.texi: Create Label Attributes section,
36037         move all label attributes into it and reference it.
36038
36039 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
36040
36041         * arm.c (thumb1_reorg): When scanning backwards skip anything
36042         that's not a proper insn.
36043
36044 2014-05-19  Richard Biener  <rguenther@suse.de>
36045
36046         PR tree-optimization/61221
36047         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
36048         Do nothing for unreachable blocks.
36049         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
36050         Improve unreachability detection.
36051
36052 2014-05-19  Richard Biener  <rguenther@suse.de>
36053
36054         PR tree-optimization/61209
36055         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
36056
36057 2014-05-19  Nick Clifton  <nickc@redhat.com>
36058
36059         * except.c (init_eh): Fix computation of builtin setjmp buffer
36060         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
36061
36062 2014-05-19  Richard Biener  <rguenther@suse.de>
36063
36064         PR tree-optimization/61184
36065         * tree-vrp.c (is_negative_overflow_infinity): Use
36066         TREE_OVERFLOW_P and do that check first.
36067         (is_positive_overflow_infinity): Likewise.
36068         (is_overflow_infinity): Likewise.
36069         (vrp_operand_equal_p): Properly treat operands with
36070         differing overflow as not equal.
36071
36072 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
36073
36074         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
36075         shift simplification where it was intended.
36076
36077 2014-05-19  Christian Bruel  <christian.bruel@st.com>
36078
36079         PR target/61195
36080         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
36081
36082 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
36083
36084         PR target/61084
36085         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
36086         than wide_int.
36087
36088 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
36089
36090         * reg-notes.def (CROSSING_JUMP): Likewise.
36091         * rtl.h (rtx_def): Update comment for jump flag.
36092         (CROSSING_JUMP_P): Define.
36093         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
36094         of a REG_CROSSING_JUMP note.
36095         * cfghooks.c (tidy_fallthru_edges): Likewise.
36096         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
36097         * emit-rtl.c (try_split): Likewise.
36098         * haifa-sched.c (sched_create_recovery_edges): Likewise.
36099         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
36100         * jump.c (redirect_jump_2): Likewise.
36101         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
36102         (relax_delay_slots): Likewise.
36103         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
36104         (bbit_di): Likewise.
36105         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
36106         * config/sh/sh.md (jump_compact): Likewise.
36107         * bb-reorder.c (rotate_loop): Likewise.
36108         (pass_duplicate_computed_gotos::execute): Likewise.
36109         (add_reg_crossing_jump_notes): Rename to...
36110         (update_crossing_jump_flags): ...this.
36111         (pass_partition_blocks::execute): Update accordingly.
36112
36113 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
36114
36115         * tree.h: Remove extraneous template <>.
36116
36117 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36118
36119         * ipa.c (symtab_remove_unreachable_nodes): Remove
36120         symbol from comdat group if its body was eliminated.
36121         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
36122         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
36123         (symtab_unregister_node): ... this one.
36124         (verify_symtab_base): More strict checking of comdats.
36125         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
36126
36127 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36128
36129         * tree-pass.h (make_pass_ipa_comdats): New pass.
36130         * timevar.def (TV_IPA_COMDATS): New timevar.
36131         * passes.def (pass_ipa_comdats): Add.
36132         * Makefile.in (OBJS): Add ipa-comdats.o
36133         * ipa-comdats.c: New file.
36134
36135 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36136
36137         * ipa.c (update_visibility_by_resolution_info): New function.
36138         (function_and_variable_visibility): Use it.
36139
36140 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36141
36142         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
36143         New functions.
36144         (FOR_EACH_DEFINED_SYMBOL): New macro.
36145         (varpool_first_static_initializer, varpool_next_static_initializer,
36146         varpool_first_defined_variable, varpool_next_defined_variable):
36147         Fix comments.
36148         (symtab_in_same_comdat_p): Correctly deal with inline functions.
36149
36150 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36151
36152         * ggc-page.c (ggc_handle_finalizers): Add comment.
36153
36154 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36155
36156         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
36157         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
36158         (ggc_internal_cleared_alloc): Likewise.
36159         * ggc-page.c (finalizer): New class.
36160         (vec_finalizer): Likewise.
36161         (globals::finalizers): New member.
36162         (globals::vec_finalizers): Likewise.
36163         (ggc_internal_alloc): Record the finalizer if any for the block being
36164         allocated.
36165         (ggc_handle_finalizers): New function.
36166         (ggc_collect): Call ggc_handle_finalizers.
36167         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
36168         finalizer.
36169         (ggc_internal_cleared_alloc): Likewise.
36170         (finalize): New function.
36171         (need_finalization_p): Likewise.
36172         (ggc_alloc): Install the type's destructor as the finalizer if it
36173         might do something.
36174         (ggc_cleared_alloc): Likewise.
36175         (ggc_vec_alloc): Likewise.
36176         (ggc_cleared_vec_alloc): Likewise.
36177
36178 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36179
36180         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
36181
36182 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36183
36184         * alias.c (record_alias_subset): Adjust.
36185         * bitmap.c (bitmap_element_allocate): Likewise.
36186         (bitmap_gc_alloc_stat): Likewise.
36187         * cfg.c (init_flow): Likewise.
36188         (alloc_block): Likewise.
36189         (unchecked_make_edge): Likewise.
36190         * cfgloop.c (alloc_loop): Likewise.
36191         (flow_loops_find): Likewise.
36192         (rescan_loop_exit): Likewise.
36193         * cfgrtl.c (init_rtl_bb_info): Likewise.
36194         * cgraph.c (insert_new_cgraph_node_version): Likewise.
36195         (cgraph_allocate_node): Likewise.
36196         (cgraph_create_edge_1): Likewise.
36197         (cgraph_allocate_init_indirect_info): Likewise.
36198         * cgraphclones.c (cgraph_clone_edge): Likewise.
36199         * cgraphunit.c (add_asm_node): Likewise.
36200         (init_lowered_empty_function): Likewise.
36201         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
36202         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
36203         (alpha_use_linkage): Likewise.
36204         * config/arc/arc.c (arc_init_machine_status): Likewise.
36205         * config/arm/arm.c (arm_init_machine_status): Likewise.
36206         * config/avr/avr.c (avr_init_machine_status): Likewise.
36207         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
36208         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
36209         * config/cris/cris.c (cris_init_machine_status): Likewise.
36210         * config/darwin.c (machopic_indirection_name): Likewise.
36211         (darwin_build_constant_cfstring): Likewise.
36212         (darwin_enter_string_into_cfstring_table): Likewise.
36213         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
36214         * config/frv/frv.c (frv_init_machine_status): Likewise.
36215         * config/i386/i386.c (get_dllimport_decl): Likewise.
36216         (ix86_init_machine_status): Likewise.
36217         (assign_386_stack_local): Likewise.
36218         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
36219         (i386_pe_maybe_record_exported_symbol): Likewise.
36220         (i386_pe_record_stub): Likewise.
36221         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
36222         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
36223         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
36224         (m32c_note_pragma_address): Likewise.
36225         * config/mep/mep.c (mep_init_machine_status): Likewise.
36226         (mep_note_pragma_flag): Likewise.
36227         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
36228         (mips16_local_alias): Likewise.
36229         (mips_init_machine_status): Likewise.
36230         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
36231         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
36232         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
36233         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
36234         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
36235         * config/pa/pa.c (pa_init_machine_status): Likewise.
36236         (pa_get_deferred_plabel): Likewise.
36237         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
36238         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
36239         (rs6000_init_machine_status): Likewise.
36240         (output_toc): Likewise.
36241         * config/s390/s390.c (s390_init_machine_status): Likewise.
36242         * config/score/score.c (score_output_external): Likewise.
36243         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
36244         * config/spu/spu.c (spu_init_machine_status): Likewise.
36245         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
36246         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
36247         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
36248         * coverage.c (coverage_end_function): Likewise.
36249         * dbxout.c (dbxout_init): Likewise.
36250         * doc/gty.texi: Don't mention variable_size attribute.
36251         * dwarf2cfi.c (new_cfi): Adjust.
36252         (new_cfi_row): Likewise.
36253         (copy_cfi_row): Likewise.
36254         (create_cie_data): Likewise.
36255         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
36256         (new_loc_descr): Likewise.
36257         (find_AT_string_in_table): Likewise.
36258         (add_addr_table_entry): Likewise.
36259         (new_die): Likewise.
36260         (add_var_loc_to_decl): Likewise.
36261         (clone_die): Likewise.
36262         (clone_as_declaration): Likewise.
36263         (break_out_comdat_types): Likewise.
36264         (new_loc_list): Likewise.
36265         (add_loc_descr_to_each): Likewise.
36266         (add_location_or_const_value_attribute): Likewise.
36267         (add_linkage_name): Likewise.
36268         (lookup_filename): Likewise.
36269         (dwarf2out_var_location): Likewise.
36270         (new_line_info_table): Likewise.
36271         (dwarf2out_init): Likewise.
36272         (mem_loc_descriptor): Likewise.
36273         (loc_descriptor): Likewise.
36274         (add_const_value_attribute): Likewise.
36275         (tree_add_const_value_attribute): Likewise.
36276         (comp_dir_string): Likewise.
36277         (dwarf2out_vms_debug_main_pointer): Likewise.
36278         (string_cst_pool_decl): Likewise.
36279         * emit-rtl.c (set_mem_attrs): Likewise.
36280         (get_reg_attrs): Likewise.
36281         (start_sequence): Likewise.
36282         (init_emit): Likewise.
36283         (init_emit_regs): Likewise.
36284         * except.c (init_eh_for_function): Likewise.
36285         (gen_eh_region): Likewise.
36286         (gen_eh_region_catch): Likewise.
36287         (gen_eh_landing_pad): Likewise.
36288         (add_call_site): Likewise.
36289         * function.c (add_frame_space): Likewise.
36290         (insert_temp_slot_address): Likewise.
36291         (assign_stack_temp_for_type): Likewise.
36292         (get_hard_reg_initial_val): Likewise.
36293         (allocate_struct_function): Likewise.
36294         (prepare_function_start): Likewise.
36295         (types_used_by_var_decl_insert): Likewise.
36296         * gengtype.c (variable_size_p): Remove function.
36297         (enum alloc_quantity): Remove enum.
36298         (write_typed_alloc_def): Remove function.
36299         (write_typed_struct_alloc_def): Likewise.
36300         (write_typed_typedef_alloc_def): Likewise.
36301         (write_typed_alloc_defns): Likewise.
36302         (main): Adjust.
36303         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
36304         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
36305         * ggc.h (ggc_alloc): new function.
36306         (ggc_cleared_alloc): Likewise.
36307         (ggc_vec_alloc): Template on type of vector element, and remove
36308         element size argument.
36309         (ggc_cleared_vec_alloc): Likewise.
36310         * gimple.c (gimple_build_omp_for): Adjust.
36311         (gimple_copy): Likewise.
36312         * ipa-cp.c (get_replacement_map): Likewise.
36313         (find_aggregate_values_for_callers_subset): Likewise.
36314         (known_aggs_to_agg_replacement_list): Likewise.
36315         * ipa-devirt.c (get_odr_type): Likewise.
36316         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
36317         (read_agg_replacement_chain): Likewise.
36318         * loop-iv.c (get_simple_loop_desc): Likewise.
36319         * lto-cgraph.c (input_node_opt_summary): Likewise.
36320         * lto-section-in.c (lto_new_in_decl_state): Likewise.
36321         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
36322         (input_eh_region): Likewise.
36323         (input_eh_lp): Likewise.
36324         (input_cfg): Likewise.
36325         * optabs.c (set_optab_libfunc): Likewise.
36326         (init_tree_optimization_optabs): Likewise.
36327         (set_conv_libfunc): Likewise.
36328         * passes.c (do_per_function_toporder): Likewise.
36329         * rtl.h: Don't use variable_size gty attribute.
36330         * sese.c (if_region_set_false_region): Adjust.
36331         * stringpool.c (gt_pch_save_stringpool): Likewise.
36332         * target-globals.c (save_target_globals): Likewise.
36333         * toplev.c (general_init): Likewise.
36334         * trans-mem.c (record_tm_replacement): Likewise.
36335         (split_bb_make_tm_edge): Likewise.
36336         * tree-cfg.c (move_sese_region_to_fn): Likewise.
36337         * tree-data-ref.h (lambda_vector_new): Likewise.
36338         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
36339         * tree-iterator.c (tsi_link_before): Likewise.
36340         (tsi_link_after): Likewise.
36341         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
36342         * tree-ssa-loop-niter.c (record_estimate): Likewise.
36343         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
36344         * tree-ssa-operands.h: Don't use variable_size gty attribute.
36345         * tree-ssa.c (init_tree_ssa): Adjust.
36346         * tree-ssanames.c (set_range_info): Likewise.
36347         (get_ptr_info): Likewise.
36348         (duplicate_ssa_name_ptr_info): Likewise.
36349         (duplicate_ssa_name_range_info): Likewise.
36350         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
36351         (unpack_ts_fixed_cst_value_fields): Likewise.
36352         * tree.c (build_fixed): Likewise.
36353         (build_real): Likewise.
36354         (build_string): Likewise.
36355         (decl_priority_info): Likewise.
36356         (decl_debug_expr_insert): Likewise.
36357         (decl_value_expr_insert): Likewise.
36358         (decl_debug_args_insert): Likewise.
36359         (type_hash_add): Likewise.
36360         (build_omp_clause): Likewise.
36361         * ubsan.c (decl_for_type_insert): Likewise.
36362         * varasm.c (get_unnamed_section): Likewise.
36363         (get_noswitch_section): Likewise.
36364         (get_section): Likewise.
36365         (get_block_for_section): Likewise.
36366         (create_block_symbol): Likewise.
36367         (build_constant_desc): Likewise.
36368         (create_constant_pool): Likewise.
36369         (force_const_mem): Likewise.
36370         (record_tm_clone_pair): Likewise.
36371         * varpool.c (varpool_create_empty_node): Likewise.
36372
36373 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36374
36375         * dwarf2out.c (tree_add_const_value_attribute): Call
36376         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
36377         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
36378         instead of ggc_internal_<x>alloc_stat.
36379         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
36380         (ggc_realloc): Likewise.
36381         * ggc-none.c (ggc_internal_alloc): Likewise.
36382         (ggc_internal_cleared_alloc): Likewise.
36383         * ggc-page.c: Likewise.
36384         * ggc.h (ggc_internal_alloc_stat): Likewise.
36385         (ggc_internal_alloc): Remove macro.
36386         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
36387         (ggc_internal_cleared_alloc): Remove macro.
36388         (GGC_RESIZEVEC): Adjust.
36389         (ggc_resizevar): Remove macro.
36390         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
36391         (ggc_internal_cleared_vec_alloc_stat): Likewise.
36392         (ggc_internal_vec_cleared_alloc): Remove macro.
36393         (ggc_alloc_atomic_stat): Drop _stat suffix.
36394         (ggc_alloc_atomic): Remove macro.
36395         (ggc_alloc_cleared_atomic): Remove macro.
36396         (ggc_alloc_string_stat): Drop _stat suffix.
36397         (ggc_alloc_string): Remove macro.
36398         (ggc_alloc_rtx_def_stat): Adjust.
36399         (ggc_alloc_tree_node_stat): Likewise.
36400         (ggc_alloc_cleared_tree_node_stat): Likewise.
36401         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
36402         (ggc_alloc_cleared_simd_clone_stat): Likewise.
36403         * gimple.c (gimple_build_omp_for): Likewise.
36404         (gimple_copy): Likewise.
36405         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
36406         * toplev.c (realloc_for_line_map): Adjust.
36407         * tree-data-ref.h (lambda_vector_new): Likewise.
36408         * tree-phinodes.c (allocate_phi_node): Likewise.
36409         * tree.c (grow_tree_vec_stat): Likewise.
36410         * vec.h (va_gc::reserve): Adjust.
36411
36412 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
36413
36414         * config/microblaze/microblaze.c (break_handler): New Declaration.
36415         (microblaze_break_function_p,microblaze_is_break_handler): New.
36416         (compute_frame_size): Use microblaze_break_function_p.
36417         Add the test of break_handler.
36418         (microblaze_function_prologue) : Add the test of variable
36419         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
36420         (microblaze_function_epilogue) : Add the test of break_handler.
36421         (microblaze_globalize_label) : Add the test of break_handler.
36422         Check the name by BREAK_HANDLER_NAME.
36423
36424         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
36425
36426         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
36427         microblaze_is_break_handler test.
36428         (call_internal1,call_value_intern): Use microblaze_break_function_p.
36429         Use SYMBOL_REF_DECL.
36430
36431         * config/microblaze/microblaze-protos.h
36432         (microblaze_break_function_p,microblaze_is_break_handler):
36433         New Declaration.
36434
36435         * doc/extend.texi (MicroBlaze break_handler Functions): Document
36436         new MicroBlaze break_handler functions.
36437
36438 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
36439
36440         * doc/extend.texi (Size of an asm): Move node text according
36441         to its @menu entry position.
36442
36443 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
36444
36445         PR tree-optimization/61140
36446         PR tree-optimization/61150
36447         PR tree-optimization/61197
36448         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
36449
36450 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
36451
36452         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
36453
36454 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
36455
36456         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
36457         __SIZEOF_INT128__ is defined.
36458
36459 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
36460
36461         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
36462         (rs6000_delegitimize_address): Use it.
36463
36464 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
36465
36466         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
36467         inplace argument.  Store the new address in the original MEM when true.
36468         * emit-rtl.c (change_address_1): Likewise.
36469         (adjust_address_1, adjust_automodify_address_1, offset_address):
36470         Update accordingly.
36471         * rtl.h (plus_constant): Add an inplace argument.
36472         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
36473         when true.  Avoid generating (plus X (const_int 0)).
36474         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
36475         in-place.  Pass true to plus_constant.
36476         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
36477
36478 2014-05-16  Dehao Chen  <dehao@google.com>
36479
36480         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
36481
36482 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
36483
36484         PR target/54089
36485         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
36486         patterns.
36487         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
36488
36489 2014-05-16  Dehao Chen  <dehao@google.com>
36490
36491         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
36492         optimize_function_for_size_p.
36493         * regs.h (REG_FREQ_FROM_BB): Likewise.
36494
36495 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
36496
36497         PR target/51244
36498         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
36499         negt_reg_operand cases.
36500         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
36501         predicate.
36502         * config/sh/predicates.md (cbranch_treg_value): Simplify.
36503
36504 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
36505
36506         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
36507         target variants.
36508
36509 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
36510
36511         Revert:
36512         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
36513
36514         * tree-cfg.c (dump_function_to_file): Dump the return type of
36515         functions, in a line to itself before the function body, mimicking
36516         the layout of a C function.
36517
36518 2014-05-16  Dehao Chen  <dehao@google.com>
36519
36520         * cfghooks.c (make_forwarder_block): Use direct computation to
36521         get fall-through edge's count and frequency.
36522
36523 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
36524
36525         * config/arc/arc.c (arc_init): Fix typo in error message.
36526         * config/i386/i386.c (ix86_expand_builtin): Likewise.
36527         (split_stack_prologue_scratch_regno): Likewise.
36528         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
36529         word from error message.
36530
36531 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
36532
36533         * ira-costs.c: Fix typo in comment.
36534
36535 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
36536
36537         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
36538
36539 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
36540
36541         * varpool.c (dump_varpool_node): Dump write-only flag.
36542         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
36543         write-only flag.
36544         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
36545         write-only variables.
36546         * ipa.c (process_references): New function.
36547         (set_readonly_bit): New function.
36548         (set_writeonly_bit): New function.
36549         (clear_addressable_bit): New function.
36550         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
36551         fix handling of aliases.
36552         * cgraph.h (struct varpool_node): Add writeonly flag.
36553
36554 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
36555
36556         PR rtl-optimization/60969
36557         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
36558         Calculate costs for this case.
36559
36560 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
36561
36562         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
36563         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
36564
36565 2014-05-16  Richard Biener  <rguenther@suse.de>
36566
36567         PR tree-optimization/61194
36568         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
36569         bool patterns ending in a COND_EXPR.
36570
36571 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36572
36573         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
36574
36575 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36576
36577         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
36578         where we were unable to cost an RTX.
36579
36580 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36581
36582         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
36583         HIGH, LO_SUM.
36584
36585 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36586             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36587
36588         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
36589
36590 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36591             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36592
36593         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
36594         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
36595
36596 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36597             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36598
36599         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
36600         operators.
36601
36602 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36603             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36604
36605         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
36606         DIV/MOD.
36607
36608 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36609             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36610
36611         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
36612         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
36613
36614 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36615             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36616
36617         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
36618         rotates and shifts.
36619
36620 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36621             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36622
36623         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
36624         ZERO_EXTEND and SIGN_EXTEND better.
36625
36626 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36627             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36628
36629         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
36630         logical operations.
36631
36632 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36633             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36634
36635         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
36636         costs when costing loads and stores to memory.
36637
36638 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36639             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
36640
36641         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
36642         for SET RTX.
36643
36644 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36645
36646         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
36647
36648 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36649             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36650
36651         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
36652         to...
36653         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
36654         well formed.
36655         (aarch64_rtx_mult_cost): New.
36656         (aarch64_rtx_costs): Use it, refactor as appropriate.
36657
36658 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36659             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
36660
36661         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
36662         emit instructions, return number of instructions which would
36663         be emitted.
36664         (aarch64_add_constant): Update call to aarch64_build_constant.
36665         (aarch64_output_mi_thunk): Likewise.
36666         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
36667         a CONST_DOUBLE.
36668
36669 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36670
36671         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
36672         (TARGET_RTX_COSTS): Call it.
36673
36674 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36675
36676         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
36677         (cortexa57_vector_cost): Likewise.
36678         (cortexa57_tunings): Use them.
36679
36680 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
36681
36682         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
36683         (cpu_addrcost_table): Use it.
36684         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
36685         (aarch64_address_cost): Rewrite using aarch64_classify_address,
36686         move it.
36687
36688 2014-05-16  Richard Biener  <rguenther@suse.de>
36689
36690         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
36691         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
36692         (visit_phi): Ignore edges marked as not executable.
36693         (class cond_dom_walker): New.
36694         (cond_dom_walker::before_dom_children): Value-number
36695         control statements and mark successor edges as not
36696         executable if possible.
36697         (run_scc_vn): First walk all control statements in
36698         dominator order, marking edges as not executable.
36699         * tree-inline.c (copy_edges_for_bb): Be not confused
36700         about random edge flags.
36701
36702 2014-05-16  Richard Biener  <rguenther@suse.de>
36703
36704         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
36705
36706 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
36707
36708         PR target/61193
36709         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
36710         (__TM_simple_begin): Use it.
36711         (__TM_begin): Likewise.
36712
36713 2014-05-15  Martin Jambor  <mjambor@suse.cz>
36714
36715         PR ipa/61085
36716         * ipa-prop.c (update_indirect_edges_after_inlining): Check
36717         type_preserved flag when the indirect edge is polymorphic.
36718
36719 2014-05-15  Martin Jambor  <mjambor@suse.cz>
36720
36721         PR tree-optimization/61090
36722         * tree-sra.c (sra_modify_expr): Pass the current gsi to
36723         build_ref_for_model.
36724
36725 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36726
36727         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
36728         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
36729
36730 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
36731
36732         PR tree-optimization/61158
36733         * fold-const.c (fold_binary_loc): If X is zero-extended and
36734         shiftc >= prec, make sure zerobits is all ones instead of
36735         invoking undefined behavior.
36736
36737 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36738
36739         * regcprop.h: New file.
36740         * regcprop.c (skip_debug_insn_p): New decl.
36741         (replace_oldest_value_reg): Check skip_debug_insn_p.
36742         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
36743         * shrink-wrap.c: Include regcprop.h.
36744         (prepare_shrink_wrap): Call
36745         copyprop_hardreg_forward_bb_without_debug_insn.
36746
36747 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36748
36749         * shrink-wrap.h: Update comment.
36750         * shrink-wrap.c: Update comment.
36751         (next_block_for_reg): Rename to live_edge_for_reg.
36752         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
36753         (move_insn_for_shrink_wrap): Split live_edge.
36754         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
36755
36756 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
36757
36758         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
36759         Delete.
36760         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
36761         * config/sparc/sparc.md (fptype_ut699): New attribute.
36762         (in_branch_delay): Return false if -mfix-ut699 is specified and
36763         fptype_ut699 is set to single.
36764         (truncdfsf2): Add fptype_ut699 attribute.
36765         (fix_truncdfsi2): Likewise.
36766         (floatsisf2): Change fptype attribute.
36767         (fix_truncsfsi2): Likewise.
36768         (negtf2_notv9): Delete.
36769         (negtf2_v9): Likewise.
36770         (negtf2_hq): New instruction.
36771         (negtf2): New instruction and splitter.
36772         (negdf2_notv9): Rewrite.
36773         (abstf2_notv9): Delete.
36774         (abstf2_hq_v9): Likewise.
36775         (abstf2_v9): Likewise.
36776         (abstf2_hq): New instruction.
36777         (abstf2): New instruction and splitter.
36778         (absdf2_notv9): Rewrite.
36779
36780 2014-05-14  Cary Coutant  <ccoutant@google.com>
36781
36782         PR debug/61013
36783         * opts.c (common_handle_option): Don't special-case "-g".
36784         (set_debug_level): Default to at least level 2 with "-g".
36785
36786 2014-05-14  DJ Delorie  <dj@redhat.com>
36787
36788         * config/msp430/msp430.c (msp430_builtin): Add
36789         MSP430_BUILTIN_DELAY_CYCLES.
36790         (msp430_init_builtins): Register void __delay_cycles(long long).
36791         (msp430_builtin_decl): Add it.
36792         (cg_magic_constant): New.
36793         (msp430_expand_delay_cycles): New.
36794         (msp430_expand_builtin): Call it.
36795         (msp430_print_operand_raw): Change integer printing from "int" to
36796         HOST_WIDE_INT.
36797         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
36798         (delay_cycles_start): New.
36799         (delay_cycles_end): New.
36800         (delay_cycles_32): New.
36801         (delay_cycles_32x): New.
36802         (delay_cycles_16): New.
36803         (delay_cycles_16x): New.
36804         (delay_cycles_2): New.
36805         (delay_cycles_1): New.
36806         * doc/extend.texi: Document __delay_cycles().
36807
36808 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
36809
36810         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
36811         length attribute computation.
36812
36813 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
36814
36815         PR debug/61188
36816         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
36817
36818 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
36819
36820         PR target/61084
36821         * config/sparc/sparc.md: Fix types of low and high in DI constant
36822         splitter.  Use gen_int_mode in some other splitters.
36823
36824 2014-05-14  Martin Jambor  <mjambor@suse.cz>
36825
36826         PR ipa/60897
36827         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
36828
36829 2014-05-14  James Norris  <jnorris@codesourcery.com>
36830
36831         * omp-low.c (expand_parallel_call): Remove shadow variable.
36832         (expand_omp_taskreg): Likewise.
36833
36834 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
36835
36836         * common/config/i386/i386-common.c
36837         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
36838         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
36839         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
36840         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
36841         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
36842         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
36843         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
36844         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
36845         xsavecintrin.h, xsavesintrin.h.
36846         (x86_64-*-*): Ditto.
36847         * config/i386/clflushoptintrin.h: New.
36848         * config/i386/xsavecintrin.h: Ditto.
36849         * config/i386/xsavesintrin.h: Ditto.
36850         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
36851         (bit_XSAVES): Ditto.
36852         (bit_XSAVES): Ditto.
36853         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
36854         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
36855         -mno-clflushopt.
36856         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
36857         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
36858         OPTION_MASK_ISA_XSAVES.
36859         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
36860         -mxsavec, -mxsaves.
36861         (PTA_CLFLUSHOPT) Define.
36862         (PTA_XSAVEC): Ditto.
36863         (PTA_XSAVES): Ditto.
36864         (ix86_option_override_internal): Handle new options.
36865         (ix86_valid_target_attribute_inner_p): Ditto.
36866         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
36867         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
36868         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
36869         (bdesc_special_args): Add __builtin_ia32_xsaves,
36870         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
36871         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
36872         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
36873         (ix86_expand_builtin): Handle new builtins.
36874         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
36875         (TARGET_CLFLUSHOPT_P): Ditto.
36876         (TARGET_XSAVEC): Ditto.
36877         (TARGET_XSAVEC_P): Ditto.
36878         (TARGET_XSAVES): Ditto.
36879         (TARGET_XSAVES_P): Ditto.
36880         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
36881         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
36882         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
36883         (ANY_XRSTOR): New.
36884         (ANY_XRSTOR64): Ditto.
36885         (xrstor): Ditto.
36886         (xrstor): Change into <xrstor>.
36887         (xrstor_rex64): Change into <xrstor>_rex64.
36888         (xrstor64): Change into <xrstor>64
36889         (clflushopt): New.
36890         * config/i386/i386.opt (mclflushopt): New.
36891         (mxsavec): Ditto.
36892         (mxsaves): Ditto.
36893         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
36894         xsavecintrin.h.
36895         * doc/invoke.texi: Document new options.
36896
36897 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
36898
36899         PR rtl-optimization/60866
36900         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
36901         Default it to -1.  Pass it down to init_simplejump_data.
36902         (init_simplejump_data): New parameter old_seqno.  Pass it down
36903         to get_seqno_for_a_jump.
36904         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
36905         initializing new jump seqno as a last resort.  Add comment.
36906         (sel_redirect_edge_and_branch): Save old seqno of the conditional
36907         jump and pass it down to sel_init_new_insn.
36908         (sel_redirect_edge_and_branch_force): Likewise.
36909
36910 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
36911
36912         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
36913         shifted values to avoid build warning.
36914
36915 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
36916
36917         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
36918         * cfgrtl.c (rtl_merge_blocks): Fix comment.
36919         (cfg_layout_merge_blocks): Likewise.
36920         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
36921
36922 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
36923
36924         PR rtl-optimization/60901
36925         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
36926         bb predecessor belongs to the same scheduling region.  Adjust comment.
36927
36928 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
36929
36930         * doc/sourcebuild.texi: (dfp_hw): Document.
36931         (p8vector_hw): Likewise.
36932         (powerpc_eabi_ok): Likewise.
36933         (powerpc_elfv2): Likewise.
36934         (powerpc_htm_ok): Likewise.
36935         (ppc_recip_hw): Likewise.
36936         (vsx_hw): Likewise.
36937
36938 2014-05-13  Cary Coutant  <ccoutant@google.com>
36939
36940         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
36941
36942 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
36943
36944         * gengtype-parse.c (require3): Eliminate in favor of...
36945         (require4): New.
36946         (require_template_declaration): Update to support optional single *
36947         on a type.
36948
36949         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
36950         (create_user_defined_type): Handle a single level of explicit
36951         pointerness within template arguments.
36952         (struct write_types_data): Add field "kind".
36953         (filter_type_name): Handle "*" character.
36954         (write_user_func_for_structure_ptr): Require a write_types_data
36955         rather than just a prefix string, so that we can look up the kind
36956         of the wtd and use it as an index into wrote_user_func_for_ptr,
36957         ensuring that such functions are written at most once.  Support
36958         subclasses by invoking the marking function of the ultimate base class.
36959         (write_user_func_for_structure_body): Require a write_types_data
36960         rather than just a prefix string, so that we can pass this to
36961         write_user_func_for_structure_ptr.
36962         (write_func_for_structure): Likewise.
36963         (ggc_wtd): Add initializer of new "kind" field.
36964         (pch_wtd): Likewise.
36965
36966         * gengtype.h (enum write_types_kinds): New.
36967         (struct type): Add field wrote_user_func_for_ptr to the "s"
36968         union member.
36969
36970 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
36971
36972         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
36973         instead of const_binop.
36974         (fold_binary_loc): Likewise.
36975
36976 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
36977
36978         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
36979         calculation to match get_ref_base_and_extent.
36980
36981 2014-05-13  Catherine Moore  <clm@codesourcery.com>
36982             Sandra Loosemore  <sandra@codesourcery.com>
36983
36984         * configure.ac: Fix assembly for explicit JALR relocation check.
36985         * configure: Regenerate.
36986
36987 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36988
36989         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
36990         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
36991         Remove associated type declarations and initialisations.
36992         (arm_expand_neon_builtin): Likewise.
36993         (neon_emit_pair_result_insn): Delete.
36994         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
36995         * config/arm/neon.md (neon_vtrn<mode>): Delete.
36996         (neon_vzip<mode>): Likewise.
36997         (neon_vuzp<mode>): Likewise.
36998
36999 2014-05-13  Richard Biener  <rguenther@suse.de>
37000
37001         PR ipa/60973
37002         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
37003         it needs revisiting whether the call still may be tail-called.
37004
37005 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37006
37007         * rtl.def (SYMBOL_REF): Remove middle "0" field.
37008         * rtl.h (block_symbol): Reduce number of fields to 2.
37009         (rtx_def): Add u2.symbol_ref_flags.
37010         (SYMBOL_REF_FLAGS): Use it.
37011         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
37012         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
37013         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
37014         Lower index of SYMBOL_REF_DATA.
37015         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
37016         Print SYMBOL_REF_FLAGS at the same time.
37017         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
37018
37019 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37020
37021         * rtl.def (VAR_LOCATION): Remove "i" field.
37022         * rtl.h (rtx_def): Add u2.var_location_status.
37023         (PAT_VAR_LOCATION_STATUS): Use it.
37024         (gen_rtx_VAR_LOCATION): Declare.
37025         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
37026         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
37027         * var-tracking.c (emit_note_insn_var_location): Remove casts.
37028
37029 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37030
37031         * rtl.def (scratch): Fix outdated comment and remove "0" field.
37032         * gengtype.c (adjust_field_rtx_def): Update accordingly.
37033
37034 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37035
37036         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
37037         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
37038         * rtl.h (rtx_def): Add insn_uid to u2 field.
37039         (RTX_FLAG_CHECK8): Delete in favor of...
37040         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
37041         (INSN_DELETED_P): Update accordingly.
37042         (INSN_UID): Use u2.insn_uid.
37043         (INSN_CHAIN_CODE_P): Define.
37044         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
37045         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
37046         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
37047         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
37048         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
37049         indices accordingly.
37050         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
37051         Update indices for insn-chain rtxes.
37052         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
37053         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
37054         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
37055         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
37056         * combine.c (try_combine): Likewise.
37057         * ira.c (setup_prohibited_mode_move_regs): Likewise.
37058
37059 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37060
37061         * rtl.def (REG): Remove middle field.
37062         * rtl.h (rtx_def): Add orignal_regno to u2.
37063         (ORIGINAL_REGNO): Use it instead of field 1.
37064         (REG_ATTRS): Lower field index accordingly.
37065         * gengtype.c (adjust_field_rtx_def): Remove handling of
37066         ORIGINAL_REGNO.  Move REG_ATTRS index down.
37067         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
37068         code that prints the REGNO.
37069
37070 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37071
37072         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
37073         GENERATOR_FILE.
37074
37075 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37076
37077         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
37078
37079 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
37080
37081         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
37082         (alloc_iv): Lower base expressions containing ADDR_EXPR.
37083
37084 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
37085
37086         * config/aarch64/aarch64-protos.h
37087         (aarch64_hard_regno_caller_save_mode): New prototype.
37088         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
37089         New function.
37090         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
37091
37092 2014-05-13  Christian Bruel  <christian.bruel@st.com>
37093
37094         * target.def (mode_switching): New hook vector.
37095         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
37096         (mode_exit, modepriority_to_mode): Likewise.
37097         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
37098         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37099         * target.h: Include tm.h and hard-reg-set.h.
37100         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
37101         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
37102         * doc/tm.texi Regenerate.
37103         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37104         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37105         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
37106         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
37107         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37108         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37109         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
37110         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
37111         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
37112         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
37113         (ix86_emit_mode_set): Hookify.
37114         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
37115         Delete.
37116         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37117         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
37118         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
37119         (epiphany_mode_priority_to_mode): Remove declaration.
37120         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
37121         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
37122         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
37123         Likewise.
37124         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
37125         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
37126         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
37127
37128 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
37129
37130         PR target/61060
37131         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
37132         is const0_rtx, return immediately.  Don't test count == 0 when
37133         it is always true.
37134
37135 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37136
37137         * Makefile.in: add shrink-wrap.o.
37138         * config/i386/i386.c: include "shrink-wrap.h"
37139         * function.c: Likewise.
37140         (requires_stack_frame_p, next_block_for_reg,
37141         move_insn_for_shrink_wrap, prepare_shrink_wrap,
37142         dup_block_and_redirect): Move to shrink-wrap.c
37143         (thread_prologue_and_epilogue_insns): Extract three code segments
37144         as functions in shrink-wrap.c
37145         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
37146         shrink-wrap.h
37147         * shrink-wrap.c: New file.
37148         * shrink-wrap.h: New file.
37149
37150 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
37151
37152         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
37153         reference to Solaris.
37154
37155 2014-05-12  Mike Stump  <mikestump@comcast.net>
37156
37157         PR other/31778
37158         * genattrtab.c (filename): Add.
37159         (convert_set_attr_alternative): Improve error message.
37160         (check_defs): Restore read_md_filename for error messages.
37161         (gen_insn): Save filename.
37162
37163 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
37164
37165         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
37166         -fno-local-ivars and -fivar-visibility.
37167         * c-family/c.opt: Make -Wshadow also implicitly enable
37168         -Wshadow-ivar.
37169
37170 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
37171
37172         * doc/tm.texi: Remove reference to deleted macro.
37173         * doc/tm.texi.in: Likewise.
37174
37175 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
37176
37177         PR target/60991
37178         * config/avr/avr.c (avr_out_store_psi): Use correct constant
37179         to restore Y.
37180
37181 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
37182
37183         PR libgcc/61152
37184         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
37185         * config/arm/aout.h (License): Same.
37186         * config/arm/bpabi.h (License): Same.
37187         * config/arm/elf.h (License): Same.
37188         * config/arm/linux-elf.h (License): Same.
37189         * config/arm/linux-gas.h (License): Same.
37190         * config/arm/netbsd-elf.h (License): Same.
37191         * config/arm/uclinux-eabi.h (License): Same.
37192         * config/arm/uclinux-elf.h (License): Same.
37193         * config/arm/vxworks.h (License): Same.
37194
37195 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
37196
37197         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
37198         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
37199         number of operands to 3.
37200         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
37201         * tree-nested.c (convert_nonlocal_omp_clauses,
37202         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
37203         * gimplify.c (gimplify_scan_omp_clauses): Handle
37204         OMP_CLAUSE_LINEAR_STMT.
37205         * omp-low.c (lower_rec_input_clauses): Fix typo.
37206         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
37207         cast between Fortran boolean_type_node and C _Bool if
37208         needed.
37209
37210 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
37211
37212         PR tree-optimization/61136
37213         * wide-int.h (multiple_of_p): Define a version that doesn't return
37214         the quotient.
37215         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
37216         integer_zerop/const_binop pair.
37217         (multiple_of_p): Likewise, converting both operands to widest_int
37218         precision.
37219
37220 2014-05-09  Teresa Johnson  <tejohnson@google.com>
37221
37222         * cgraphunit.c (analyze_functions): Use correct dump file.
37223
37224 2014-05-09  Florian Weimer  <fweimer@redhat.com>
37225
37226         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
37227         expand_used_vars.
37228         (stack_protect_return_slot_p): New function.
37229         (expand_used_vars): Call stack_protect_decl_p and
37230         stack_protect_return_slot_p for -fstack-protector-strong.
37231
37232 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
37233         Andrew Haley <aph@redhat.com>
37234         Richard Sandiford <rdsandiford@googlemail.com>
37235
37236         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
37237         pages.
37238
37239 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
37240
37241         PR middle-end/61111
37242         * fold-const.c (fold_binary_loc): Changed width of mask.
37243
37244 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
37245
37246         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
37247         unsigned int initializers for regno_in, regno_out.
37248
37249 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
37250
37251         PR target/61055
37252         * config/avr/avr.md (cc): Add new attribute set_vzn.
37253         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
37254         Set cc insn attribute to set_vzn instead of set_zn for alternatives
37255         with INC, DEC or NEG.
37256         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
37257         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
37258         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
37259
37260 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37261
37262         Revert:
37263         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37264
37265         * wide-int.cc (UTItype): Define.
37266         (UDWtype): Define for appropriate W_TYPE_SIZE.
37267
37268 2014-05-09  Richard Biener  <rguenther@suse.de>
37269
37270         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
37271         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
37272         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
37273         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
37274         ssa_propagate): Adjust.
37275
37276 2014-05-08  Jeff Law  <law@redhat.com>
37277
37278         PR tree-optimization/61009
37279         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
37280         tri-state rather than a boolean.  When a block is too big to
37281         thread through, inform caller via negative return value.
37282         (thread_across_edge): If a block was too big for normal threading,
37283         then it's too big for a joiner too, so remove temporary equivalences
37284         and return immediately.
37285
37286 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37287             Matthias Klose  <doko@ubuntu.com>
37288
37289         PR driver/61106
37290         * optc-gen.awk: Fix option handling for -Wunused-parameter.
37291
37292 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
37293
37294         PR target/59952
37295         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
37296
37297 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
37298
37299         PR target/61092
37300         * config/alpha/alpha.c: Include gimple-iterator.h.
37301         (alpha_gimple_fold_builtin): New function.  Move
37302         ALPHA_BUILTIN_UMULH folding from ...
37303         (alpha_fold_builtin): ... here.
37304         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
37305
37306 2014-05-08  Wei Mi  <wmi@google.com>
37307
37308         PR target/58066
37309         * config/i386/i386.c (ix86_compute_frame_layout): Update
37310         preferred_stack_boundary for call, expanded from tls descriptor.
37311         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
37312         to depend on SP register.
37313         (*tls_local_dynamic_base_32_gnu): Ditto.
37314         (*tls_local_dynamic_32_once): Ditto.
37315         (tls_global_dynamic_64_<mode>): Set
37316         ix86_tls_descriptor_calls_expanded_in_cfun.
37317         (tls_local_dynamic_base_64_<mode>): Ditto.
37318         (tls_global_dynamic_32): Set
37319         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
37320         to depend on SP register.
37321         (tls_local_dynamic_base_32): Ditto.
37322
37323 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37324
37325         * config/arm/arm_neon.h: Update comment.
37326         * config/arm/neon-docgen.ml: Delete.
37327         * config/arm/neon-gen.ml: Delete.
37328         * doc/arm-neon-intrinsics.texi: Update comment.
37329
37330 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37331
37332         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
37333         and v4sf versions.
37334         (vand, vorr, veor, vorn, vbic): Remove.
37335         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
37336         iterator.
37337         (neon_vsub_unspec): Likewise.
37338         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
37339
37340 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37341
37342         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
37343         (vadd_s16): Likewise.
37344         (vadd_s32): Likewise.
37345         (vadd_f32): Likewise.
37346         (vadd_u8): Likewise.
37347         (vadd_u16): Likewise.
37348         (vadd_u32): Likewise.
37349         (vadd_s64): Likewise.
37350         (vadd_u64): Likewise.
37351         (vaddq_s8): Likewise.
37352         (vaddq_s16): Likewise.
37353         (vaddq_s32): Likewise.
37354         (vaddq_s64): Likewise.
37355         (vaddq_f32): Likewise.
37356         (vaddq_u8): Likewise.
37357         (vaddq_u16): Likewise.
37358         (vaddq_u32): Likewise.
37359         (vaddq_u64): Likewise.
37360         (vmul_s8): Likewise.
37361         (vmul_s16): Likewise.
37362         (vmul_s32): Likewise.
37363         (vmul_f32): Likewise.
37364         (vmul_u8): Likewise.
37365         (vmul_u16): Likewise.
37366         (vmul_u32): Likewise.
37367         (vmul_p8): Likewise.
37368         (vmulq_s8): Likewise.
37369         (vmulq_s16): Likewise.
37370         (vmulq_s32): Likewise.
37371         (vmulq_f32): Likewise.
37372         (vmulq_u8): Likewise.
37373         (vmulq_u16): Likewise.
37374         (vmulq_u32): Likewise.
37375         (vsub_s8): Likewise.
37376         (vsub_s16): Likewise.
37377         (vsub_s32): Likewise.
37378         (vsub_f32): Likewise.
37379         (vsub_u8): Likewise.
37380         (vsub_u16): Likewise.
37381         (vsub_u32): Likewise.
37382         (vsub_s64): Likewise.
37383         (vsub_u64): Likewise.
37384         (vsubq_s8): Likewise.
37385         (vsubq_s16): Likewise.
37386         (vsubq_s32): Likewise.
37387         (vsubq_s64): Likewise.
37388         (vsubq_f32): Likewise.
37389         (vsubq_u8): Likewise.
37390         (vsubq_u16): Likewise.
37391         (vsubq_u32): Likewise.
37392         (vsubq_u64): Likewise.
37393         (vand_s8): Likewise.
37394         (vand_s16): Likewise.
37395         (vand_s32): Likewise.
37396         (vand_u8): Likewise.
37397         (vand_u16): Likewise.
37398         (vand_u32): Likewise.
37399         (vand_s64): Likewise.
37400         (vand_u64): Likewise.
37401         (vandq_s8): Likewise.
37402         (vandq_s16): Likewise.
37403         (vandq_s32): Likewise.
37404         (vandq_s64): Likewise.
37405         (vandq_u8): Likewise.
37406         (vandq_u16): Likewise.
37407         (vandq_u32): Likewise.
37408         (vandq_u64): Likewise.
37409         (vorr_s8): Likewise.
37410         (vorr_s16): Likewise.
37411         (vorr_s32): Likewise.
37412         (vorr_u8): Likewise.
37413         (vorr_u16): Likewise.
37414         (vorr_u32): Likewise.
37415         (vorr_s64): Likewise.
37416         (vorr_u64): Likewise.
37417         (vorrq_s8): Likewise.
37418         (vorrq_s16): Likewise.
37419         (vorrq_s32): Likewise.
37420         (vorrq_s64): Likewise.
37421         (vorrq_u8): Likewise.
37422         (vorrq_u16): Likewise.
37423         (vorrq_u32): Likewise.
37424         (vorrq_u64): Likewise.
37425         (veor_s8): Likewise.
37426         (veor_s16): Likewise.
37427         (veor_s32): Likewise.
37428         (veor_u8): Likewise.
37429         (veor_u16): Likewise.
37430         (veor_u32): Likewise.
37431         (veor_s64): Likewise.
37432         (veor_u64): Likewise.
37433         (veorq_s8): Likewise.
37434         (veorq_s16): Likewise.
37435         (veorq_s32): Likewise.
37436         (veorq_s64): Likewise.
37437         (veorq_u8): Likewise.
37438         (veorq_u16): Likewise.
37439         (veorq_u32): Likewise.
37440         (veorq_u64): Likewise.
37441         (vbic_s8): Likewise.
37442         (vbic_s16): Likewise.
37443         (vbic_s32): Likewise.
37444         (vbic_u8): Likewise.
37445         (vbic_u16): Likewise.
37446         (vbic_u32): Likewise.
37447         (vbic_s64): Likewise.
37448         (vbic_u64): Likewise.
37449         (vbicq_s8): Likewise.
37450         (vbicq_s16): Likewise.
37451         (vbicq_s32): Likewise.
37452         (vbicq_s64): Likewise.
37453         (vbicq_u8): Likewise.
37454         (vbicq_u16): Likewise.
37455         (vbicq_u32): Likewise.
37456         (vbicq_u64): Likewise.
37457         (vorn_s8): Likewise.
37458         (vorn_s16): Likewise.
37459         (vorn_s32): Likewise.
37460         (vorn_u8): Likewise.
37461         (vorn_u16): Likewise.
37462         (vorn_u32): Likewise.
37463         (vorn_s64): Likewise.
37464         (vorn_u64): Likewise.
37465         (vornq_s8): Likewise.
37466         (vornq_s16): Likewise.
37467         (vornq_s32): Likewise.
37468         (vornq_s64): Likewise.
37469         (vornq_u8): Likewise.
37470         (vornq_u16): Likewise.
37471         (vornq_u32): Likewise.
37472         (vornq_u64): Likewise.
37473
37474 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37475
37476         * wide-int.cc (UTItype): Define.
37477         (UDWtype): Define for appropriate W_TYPE_SIZE.
37478
37479 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
37480
37481         PR tree-optimization/59100
37482         * tree-ssa-phiopt.c: Include tree-inline.h.
37483         (neutral_element_p, absorbing_element_p): New functions.
37484         (value_replacement): Handle conditional binary operations with a
37485         neutral or absorbing element.
37486
37487 2014-05-08  Richard Biener  <rguenther@suse.de>
37488
37489         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
37490         folding the expression.
37491         (valueize_expr): Remove.
37492         (visit_reference_op_load): Do not valueize the result of
37493         vn_get_expr_for.
37494         (simplify_binary_expression): Likewise.
37495         (simplify_unary_expression): Likewise.
37496
37497 2014-05-08  Richard Biener  <rguenther@suse.de>
37498
37499         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
37500         looking at TYPE_ARG_TYPES.
37501
37502 2014-05-08  Richard Biener  <rguenther@suse.de>
37503
37504         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
37505         pointer propagation special-case.
37506
37507 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
37508
37509         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
37510         core part of address expressions.
37511
37512 2014-05-08  Alan Modra  <amodra@gmail.com>
37513
37514         PR target/60737
37515         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
37516         loads and stores when -mno-strict-align at any alignment.
37517         (expand_block_clear): Similarly.  Also correct calculation of
37518         instruction count.
37519
37520 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37521
37522         PR middle-end/39246
37523         * tree-complex.c (expand_complex_move): Keep line info when expanding
37524         complex move.
37525         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
37526         of complex expression. Use new argument to display correct location
37527         for values coming from phi statement.
37528         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
37529         (warn_uninitialized_phi): Pass location of phi argument to
37530         warn_uninit.
37531         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
37532         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
37533
37534 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
37535
37536         * config/rs6000/predicates.md (indexed_address_mem): New.
37537         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
37538         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
37539         fpstore_ux, fpstore_u.
37540         (sign_extend, indexed, update): New.
37541         (cell_micro): Adjust.
37542         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
37543         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
37544         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
37545         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
37546         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
37547         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
37548         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
37549         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
37550         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
37551         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
37552         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
37553         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
37554         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
37555         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
37556         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
37557
37558         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
37559         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
37560         *vsx_extract_<mode>_store): Adjust.
37561         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
37562         is_cracked_insn, insn_must_be_first_in_group,
37563         insn_must_be_last_in_group): Adjust.
37564
37565         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
37566         Adjust.
37567         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
37568         ppc440-fpstore): Adjust.
37569         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
37570         ppc476-fpstore): Adjust.
37571         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
37572         ppc601-fpstore): Adjust.
37573         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
37574         Adjust.
37575         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
37576         Adjust.
37577         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
37578         ppc7450-fpstore): Adjust.
37579         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
37580         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
37581         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
37582         Adjust.
37583         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
37584         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
37585         cell-fpstore, cell-fpstore-update): Adjust.
37586         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
37587         ppce300c3_store, ppce300c3_fpstore): Adjust.
37588         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
37589         e500mc_fpstore): Adjust.
37590         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
37591         e500mc64_store, e500mc64_fpstore): Adjust.
37592         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
37593         e5500_fpstore): Adjust.
37594         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
37595         e6500_fpstore): Adjust.
37596         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
37597         Adjust.
37598         * config/rs6000/power4.md (power4-load, power4-load-ext,
37599         power4-load-ext-update, power4-load-ext-update-indexed,
37600         power4-load-update-indexed, power4-load-update, power4-fpload,
37601         power4-fpload-update, power4-store, power4-store-update,
37602         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
37603         Adjust.
37604         * config/rs6000/power5.md (power5-load, power5-load-ext,
37605         power5-load-ext-update, power5-load-ext-update-indexed,
37606         power5-load-update-indexed, power5-load-update, power5-fpload,
37607         power5-fpload-update, power5-store, power5-store-update,
37608         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
37609         Adjust.
37610         * config/rs6000/power6.md (power6-load, power6-load-ext,
37611         power6-load-update, power6-load-update-indexed,
37612         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
37613         power6-fpload-update, power6-store, power6-store-update,
37614         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
37615         Adjust.
37616         * config/rs6000/power7.md (power7-load, power7-load-ext,
37617         power7-load-update, power7-load-update-indexed,
37618         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
37619         power7-fpload-update, power7-store, power7-store-update,
37620         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
37621         Adjust.
37622         * config/rs6000/power8.md (power8-load, power8-load-update,
37623         power8-load-ext, power8-load-ext-update, power8-fpload,
37624         power8-fpload-update, power8-store, power8-store-update-indexed,
37625         power8-fpstore, power8-fpstore-update): Adjust.
37626         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
37627         Adjust.
37628         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
37629         titan_lsu_store, titan_lsu_fpstore): Adjust.
37630         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
37631
37632 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
37633
37634         PR target/60884
37635         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
37636         unrolled byte insns.  Emit address increments after move insns.
37637
37638 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
37639
37640         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
37641         const_gimple, rather than a gimple.
37642         (gimple_call_builtin_p): Likewise, for the three variants.
37643
37644         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
37645         (gimple_call_builtin_p): Likewise, for the three variants.
37646
37647 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
37648
37649         PR tree-optimization/61095
37650         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
37651
37652 2014-05-07  Richard Biener  <rguenther@suse.de>
37653
37654         PR tree-optimization/61034
37655         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
37656         (maybe_skip_until): Use translate to take into account
37657         lattices when trying to do disambiguations.
37658         (get_continuation_for_phi_1): Likewise.
37659         (get_continuation_for_phi): Adjust for added translate arguments.
37660         (walk_non_aliased_vuses): Likewise.
37661         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
37662         (walk_non_aliased_vuses): Likewise.
37663         (call_may_clobber_ref_p_1): Declare.
37664         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
37665         calls.  Stop early if we are only supposed to disambiguate.
37666         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
37667
37668 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
37669
37670         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
37671         Emit an error when the function has arguments.
37672
37673 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
37674
37675         * cfgloop.h (unswitch_loops): Remove.
37676         * doc/passes.texi: Remove references to loop-unswitch.c
37677         * timevar.def (TV_LOOP_UNSWITCH): Remove.
37678
37679 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
37680
37681         * tree-vect-data-refs.c (vect_grouped_load_supported): New
37682         check for loads group of length 3.
37683         (vect_permute_load_chain): New permutations for loads group of
37684         length 3.
37685         * tree-vect-stmts.c (vect_model_load_cost): Change cost
37686         of vec_perm_shuffle for the new permutations.
37687
37688 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
37689
37690         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
37691         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
37692         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
37693         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
37694         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
37695         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
37696         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
37697         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
37698
37699 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
37700
37701         * loop-unswitch.c: Delete.
37702
37703 2014-05-07  Richard Biener  <rguenther@suse.de>
37704
37705         * config.gcc: Always set need_64bit_hwint to yes.
37706
37707 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
37708
37709         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
37710         of using optimize_size.
37711
37712 2014-05-06  Mike Stump  <mikestump@comcast.net>
37713
37714         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
37715
37716 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
37717
37718         * config/i386/sse.md (*mov<mode>_internal)
37719         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
37720         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
37721         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
37722         (*<code><mode>3, *andnot<mode>3<mask_name>)
37723         (<mask_codefor><code><mode>3<mask_name>): Only consider
37724         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
37725
37726 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
37727
37728         Revert:
37729         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
37730
37731         * lra-constraints.c (valid_address_p): Move earlier in file.
37732         Add a constraint argument to the address_info version.
37733         (satisfies_memory_constraint_p): New function.
37734         (satisfies_address_constraint_p): Likewise.
37735         (process_alt_operands, curr_insn_transform): Use them.
37736         (process_address): Pass the constraint to valid_address_p when
37737         checking address operands.
37738
37739 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
37740
37741         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
37742         to their respective blocks.  Fix inadvertent use of "node".
37743
37744 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
37745
37746         * emit-rtl.c (init_derived_machine_modes): New functionm, split
37747         out from...
37748         (init_emit_once): ...here.
37749         * rtl.h (init_derived_machine_modes): Declare.
37750         * toplev.c (do_compile): Call it even if no_backend.
37751
37752 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
37753             Mike Stump  <mikestump@comcast.net>
37754             Richard Sandiford  <rdsandiford@googlemail.com>
37755             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37756
37757         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
37758         (rtx_equal_for_memref_p): Update comment.
37759         (adjust_offset_for_component_ref): Use wide-int interfaces.
37760         * builtins.c (get_object_alignment_2): Likewise.
37761         (c_readstr): Likewise.
37762         (target_char_cast): Add comment.
37763         (determine_block_size): Use wide-int interfaces.
37764         (expand_builtin_signbit): Likewise.
37765         (fold_builtin_int_roundingfn): Likewise.
37766         (fold_builtin_bitop): Likewise.
37767         (fold_builtin_bswap): Likewise.
37768         (fold_builtin_logarithm): Use signop.
37769         (fold_builtin_pow): Likewise.
37770         (fold_builtin_memory_op): Use wide-int interfaces.
37771         (fold_builtin_object_size): Likewise.
37772         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
37773         nb_iterations_estimate.
37774         (record_niter_bound): Use wide-int interfaces.
37775         (get_estimated_loop_iterations_int): Likewise.
37776         (get_estimated_loop_iterations): Likewise.
37777         (get_max_loop_iterations): Likewise.
37778         * cfgloop.h: Include wide-int.h.
37779         (struct nb_iter_bound): Change bound to widest_int.
37780         (struct loop): Change nb_iterations_upper_bound and
37781         nb_iterations_estimate to widest_int.
37782         (record_niter_bound): Switch to use widest_int.
37783         (get_estimated_loop_iterations): Likewise.
37784         (get_max_loop_iterations): Likewise.
37785         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
37786         update for wide-int.
37787         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
37788         * combine.c (try_combine): Likewise.
37789         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
37790         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
37791         interfaces.
37792         (aarch64_float_const_representable_p): Likewise.
37793         * config/arc/arc.c: Include wide-int.h.
37794         (arc_can_use_doloop_p): Use wide-int interfaces.
37795         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
37796         (vfp3_const_double_index): Likewise.
37797         * config/avr/avr.c (avr_out_round): Likewise.
37798         (avr_fold_builtin): Likewise.
37799         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
37800         (bfin_can_use_doloop_p): Likewise.
37801         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
37802         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
37803         * config/i386/i386.c: Include wide-int.h.
37804         (ix86_data_alignment): Use wide-int interfaces.
37805         (ix86_local_alignment): Likewise.
37806         (ix86_emit_swsqrtsf): Update real_from_integer.
37807         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
37808         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
37809         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
37810         (zero_constant): Likewise.
37811         (input_operand): Likewise.
37812         (splat_input_operand): Likewise.
37813         (non_logical_cint_operand): Change const_double to const_wide_int.
37814         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
37815         (easy_altivec_constant): Remove comment.
37816         (paired_expand_vector_init): Use CONSTANT_P.
37817         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
37818         (rs6000_emit_move): Update checks.
37819         (rs6000_aggregate_candidate): Use wide-int interfaces.
37820         (rs6000_expand_ternop_builtin): Likewise.
37821         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
37822         (rs6000_assemble_integer): Likewise.
37823         (rs6000_hash_constant): Likewise.
37824         (output_toc): Likewise.
37825         (rs6000_rtx_costs): Likewise.
37826         (rs6000_emit_swrsqrt); Update call to real_from_integer.
37827         * config/rs6000/rs6000-c.c: Include wide-int.h.
37828         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
37829         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
37830         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
37831         Handle CONST_WIDE_INT.
37832         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
37833         Use tree_fits_uhwi_p.
37834         * config/sparc/sparc.c: Include wide-int.h.
37835         (sparc_fold_builtin): Use wide-int interfaces.
37836         * config/vax/vax.c: Include wide-int.h.
37837         (vax_float_literal): Use real_from_integer.
37838         * coretypes.h (struct hwivec_def): New.
37839         (hwivec): New.
37840         (const_hwivec): New.
37841         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
37842         (equiv_constant): Handle CONST_WIDE_INT.
37843         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
37844         (cselib_hash_rtx): Handle CONST_WIDE_INT.
37845         * dbxout.c (stabstr_U): Use wide-int interfaces.
37846         (dbxout_type): Update to use cst_fits_shwi_p.
37847         * defaults.h (LOG2_BITS_PER_UNIT): Define.
37848         (TARGET_SUPPORTS_WIDE_INT): Add default.
37849         * dfp.c: Include wide-int.h.
37850         (decimal_real_to_integer2): Use wide-int interfaces and rename to
37851         decimal_real_to_integer.
37852         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
37853         decimal_real_to_integer.
37854         * doc/generic.texi (Constant expressions): Update for wide_int.
37855         * doc/rtl.texi (const_double): Likewise.
37856         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
37857         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
37858         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
37859         (REAL_VALUE_FROM_INT): Remove.
37860         (TARGET_SUPPORTS_WIDE_INT): New.
37861         * doc/tm.texi: Regenerate.
37862         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
37863         * double-int.h: Include wide-int.h.
37864         (struct wi::int_traits): New.
37865         * dwarf2out.c (get_full_len): New.
37866         (dw_val_equal_p): Add case dw_val_class_wide_int.
37867         (size_of_loc_descr): Likewise.
37868         (output_loc_operands): Likewise.
37869         (insert_double): Remove.
37870         (insert_wide_int): New.
37871         (add_AT_wide): New.
37872         (print_die): Add case dw_val_class_wide_int.
37873         (attr_checksum): Likewise.
37874         (attr_checksum_ordered): Likewise.
37875         (same_dw_val_p): Likewise.
37876         (size_of_die): Likewise.
37877         (value_format): Likewise.
37878         (output_die): Likewise.
37879         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
37880         Use wide-int.
37881         (clz_loc_descriptor): Use wide-int interfaces.
37882         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
37883         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
37884         (round_up_to_align): Use wide-int interfaces.
37885         (field_byte_offset): Likewise.
37886         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
37887         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
37888         CONST_DOUBLE handling.  Use wide-int interfaces.
37889         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
37890         (gen_enumeration_type_die): Use add_AT_wide.
37891         (hash_loc_operands): Add case dw_val_class_wide_int.
37892         (compare_loc_operands): Likewise.
37893         * dwarf2out.h: Include wide-int.h.
37894         (wide_int_ptr): New.
37895         (enum dw_val_class): Add dw_val_class_wide_int.
37896         (struct dw_val_struct): Add val_wide.
37897         * emit-rtl.c (const_wide_int_htab): New.
37898         (const_wide_int_htab_hash): New.
37899         (const_wide_int_htab_eq): New.
37900         (lookup_const_wide_int): New.
37901         (const_double_htab_hash): Use wide-int interfaces.
37902         (const_double_htab_eq): Likewise.
37903         (rtx_to_double_int): Conditionally compile for wide-int.
37904         (immed_double_int_const): Rename to immed_wide_int_const and
37905         update for wide-int.
37906         (immed_double_const): Conditionally compile for wide-int.
37907         (init_emit_once): Use wide-int interfaces.
37908         * explow.c (plus_constant): Likewise.
37909         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
37910         (lshift_value): Use wide-int interfaces.
37911         (expand_mult): Likewise.
37912         (choose_multiplier): Likewise.
37913         (expand_smod_pow2): Likewise.
37914         (make_tree): Likewise.
37915         * expr.c (convert_modes): Consolidate handling of constants.
37916         Use wide-int interfaces.
37917         (emit_group_load_1): Add note.
37918         (store_expr): Update comment.
37919         (get_inner_reference): Use wide-int interfaces.
37920         (expand_constructor): Update comment.
37921         (expand_expr_real_2): Use wide-int interfaces.
37922         (expand_expr_real_1): Likewise.
37923         (reduce_to_bit_field_precision): Likewise.
37924         (const_vector_from_tree): Likewise.
37925         * final.c: Include wide-int-print.h.
37926         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
37927         * fixed-value.c: Include wide-int.h.
37928         (fixed_from_string): Use wide-int interfaces.
37929         (fixed_to_decimal): Likewise.
37930         (fixed_convert_from_real): Likewise.
37931         (real_convert_from_fixed): Likewise.
37932         * fold-const.h (mem_ref_offset): Return an offset_int.
37933         (div_if_zero_remainder): Remove code parameter.
37934         * fold-const.c (div_if_zero_remainder): Remove code parameter.
37935         Use wide-int interfaces.
37936         (may_negate_without_overflow_p): Use wide-int interfaces.
37937         (negate_expr_p): Likewise.
37938         (fold_negate_expr): Likewise.
37939         (int_const_binop_1): Likewise.
37940         (const_binop): Likewise.
37941         (fold_convert_const_int_from_int): Likewise.
37942         (fold_convert_const_int_from_real): Likewise.
37943         (fold_convert_const_int_from_fixed): Likewise.
37944         (fold_convert_const_fixed_from_int): Likewise.
37945         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
37946         (sign_bit_p): Use wide-int interfaces.
37947         (make_range_step): Likewise.
37948         (build_range_check): Likewise.  Pass an integer of the correct type
37949         instead of using integer_one_node.
37950         (range_predecessor): Pass an integer of the correct type instead
37951         of using integer_one_node.
37952         (range_successor): Likewise.
37953         (merge_ranges): Likewise.
37954         (unextend): Use wide-int interfaces.
37955         (extract_muldiv_1): Likewise.
37956         (fold_div_compare): Likewise.
37957         (fold_single_bit_test): Likewise.
37958         (fold_sign_changed_comparison): Likewise.
37959         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
37960         (fold_plusminus_mult_expr): Use wide-int interfaces.
37961         (native_encode_int): Likewise.
37962         (native_interpret_int): Likewise.
37963         (fold_unary_loc): Likewise.
37964         (pointer_may_wrap_p): Likewise.
37965         (size_low_cst): Likewise.
37966         (mask_with_tz): Likewise.
37967         (fold_binary_loc): Likewise.
37968         (fold_ternary_loc): Likewise.
37969         (multiple_of_p): Likewise.
37970         (tree_call_nonnegative_warnv_p): Update calls to
37971         tree_int_cst_min_precision and real_from_integer.
37972         (fold_negate_const): Use wide-int interfaces.
37973         (fold_abs_const): Likewise.
37974         (fold_relational_const): Use tree_int_cst_lt.
37975         (round_up_loc): Use wide-int interfaces.
37976         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
37977         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
37978         * gengtype.c: Remove include of double-int.h.
37979         (do_typedef): Use wide-int interfaces.
37980         (open_base_files): Add wide-int.h.
37981         (main): Add offset_int and widest_int typedefs.
37982         * gengtype-lex.l: Handle "^".
37983         (CXX_KEYWORD): Add "static".
37984         * gengtype-parse.c (require3): New.
37985         (require_template_declaration): Handle constant template arguments
37986         and nested templates.
37987         * gengtype-state.c: Don't include "double-int.h".
37988         * genpreds.c (write_one_predicate_function): Update comment.
37989         (write_tm_constrs_h): Add check for hval and lval use in
37990         CONST_WIDE_INT.
37991         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
37992         (add_to_sequence): Likewise.
37993         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
37994         and const_double_operand.
37995         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
37996         interfaces.
37997         * gimple-fold.c (get_base_constructor): Likewise.
37998         (fold_array_ctor_reference): Likewise.
37999         (fold_nonarray_ctor_reference): Likewise.
38000         (fold_const_aggregate_ref_1): Likewise.
38001         (gimple_val_nonnegative_real_p): Likewise.
38002         (gimple_fold_indirect_ref): Likewise.
38003         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
38004         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
38005         (struct slsr_cand_d): Change index to be widest_int.
38006         (struct incr_info_d): Change incr to be widest_int.
38007         (alloc_cand_and_find_basis): Use wide-int interfaces.
38008         (slsr_process_phi): Likewise.
38009         (backtrace_base_for_ref): Likewise.  Return a widest_int.
38010         (restructure_reference): Take a widest_int instead of a double_int.
38011         (slsr_process_ref): Use wide-int interfaces.
38012         (create_mul_ssa_cand): Likewise.
38013         (create_mul_imm_cand): Likewise.
38014         (create_add_ssa_cand): Likewise.
38015         (create_add_imm_cand): Take a widest_int instead of a double_int.
38016         (slsr_process_add): Use wide-int interfaces.
38017         (slsr_process_cast): Likewise.
38018         (slsr_process_copy): Likewise.
38019         (dump_candidate): Likewise.
38020         (dump_incr_vec): Likewise.
38021         (replace_ref): Likewise.
38022         (cand_increment): Likewise.  Return a widest_int.
38023         (cand_abs_increment): Likewise.
38024         (replace_mult_candidate): Take a widest_int instead of a double_int.
38025         (replace_unconditional_candidate): Use wide-int interfaces.
38026         (incr_vec_index): Take a widest_int instead of a double_int.
38027         (create_add_on_incoming_edge): Likewise.
38028         (create_phi_basis): Use wide-int interfaces.
38029         (replace_conditional_candidate): Likewise.
38030         (record_increment): Take a widest_int instead of a double_int.
38031         (record_phi_increments): Use wide-int interfaces.
38032         (phi_incr_cost): Take a widest_int instead of a double_int.
38033         (lowest_cost_path): Likewise.
38034         (total_savings): Likewise.
38035         (analyze_increments): Use wide-int interfaces.
38036         (ncd_with_phi): Take a widest_int instead of a double_int.
38037         (ncd_of_cand_and_phis): Likewise.
38038         (nearest_common_dominator_for_cands): Likewise.
38039         (insert_initializers): Use wide-int interfaces.
38040         (all_phi_incrs_profitable): Likewise.
38041         (replace_one_candidate): Likewise.
38042         (replace_profitable_candidates): Likewise.
38043         * godump.c: Include wide-int-print.h.
38044         (go_output_typedef): Use wide-int interfaces.
38045         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
38046         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
38047         (build_loop_iteration_domains): Likewise.
38048         * hooks.h: Include wide-int.h rather than double-int.h.
38049         (hook_bool_dint_dint_uint_bool_true): Delete.
38050         (hook_bool_wint_wint_uint_bool_true): Declare.
38051         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
38052         (hook_bool_wint_wint_uint_bool_true): New.
38053         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
38054         interfaces.
38055         (ubsan_expand_si_overflow_mul_check): Likewise.
38056         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
38057         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
38058         (get_ancestor_addr_info): Likewise.
38059         (ipa_modify_call_arguments): Likewise.
38060         * loop-doloop.c (doloop_modify): Likewise.
38061         (doloop_optimize): Likewise.
38062         * loop-iv.c (iv_number_of_iterations): Likewise.
38063         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
38064         (unroll_loop_constant_iterations): Likewise.
38065         (decide_unroll_runtime_iterations): Likewise.
38066         (unroll_loop_runtime_iterations): Likewise.
38067         (decide_peel_simple): Likewise.
38068         (decide_unroll_stupid): Likewise.
38069         * lto-streamer-in.c (streamer_read_wi): Add.
38070         (input_cfg): Use wide-int interfaces.
38071         (lto_input_tree_1): Likewise.
38072         * lto-streamer-out.c (streamer_write_wi): Add.
38073         (hash_tree): Use wide-int interfaces.
38074         (output_cfg): Likewise.
38075         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
38076         (GTFILES): Add wide-int.h and signop.h.
38077         (TAGS): Look for .cc files too.
38078         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
38079         * optabs.c (expand_subword_shift): Likewise.
38080         (expand_doubleword_shift): Likewise.
38081         (expand_absneg_bit): Likewise.
38082         (expand_copysign_absneg): Likewise.
38083         (expand_copysign_bit): Likewise.
38084         * postreload.c (reload_cse_simplify_set): Likewise.
38085         * predict.c (predict_iv_comparison): Likewise.
38086         * pretty-print.h: Include wide-int-print.h.
38087         (pp_wide_int) New.
38088         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
38089         * print-tree.c: Include wide-int-print.h.
38090         (print_node_brief): Use wide-int interfaces.
38091         (print_node): Likewise.
38092         * read-rtl.c (validate_const_wide_int): New.
38093         (read_rtx_code): Add CONST_WIDE_INT case.
38094         * real.c: Include wide-int.h.
38095         (real_to_integer2): Delete.
38096         (real_to_integer): New function, returning a wide_int.
38097         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38098         (ten_to_ptwo): Update call to real_from_integer.
38099         (real_digit): Likewise.
38100         * real.h: Include signop.h, wide-int.h and insn-modes.h.
38101         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
38102         (REAL_VALUE_TO_INT): Delete.
38103         (real_to_integer): Declare a wide-int form.
38104         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38105         * recog.c (const_int_operand): Improve comment.
38106         (const_scalar_int_operand): New.
38107         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
38108         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
38109         (split_double): Likewise.
38110         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
38111         (rtx_size): Likewise.
38112         (rtx_alloc_stat_v): New.
38113         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
38114         (cwi_output_hex): New.
38115         (iterative_hash_rtx): Handle CONST_WIDE_INT.
38116         (cwi_check_failed_bounds): New.
38117         * rtl.def (CONST_WIDE_INT): New.
38118         * rtl.h: Include <utility> and wide-int.h.
38119         (struct hwivec_def): New.
38120         (CWI_GET_NUM_ELEM): New.
38121         (CWI_PUT_NUM_ELEM): New.
38122         (struct rtx_def): Add num_elem and hwiv.
38123         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
38124         (CASE_CONST_UNIQUE): Likewise.
38125         (CASE_CONST_ANY): Likewise.
38126         (CONST_SCALAR_INT_P): Likewise.
38127         (CONST_WIDE_INT_P): New.
38128         (CWI_ELT): New.
38129         (HWIVEC_CHECK): New.
38130         (cwi_check_failed_bounds): New.
38131         (CWI_ELT): New.
38132         (HWIVEC_CHECK): New.
38133         (CONST_WIDE_INT_VEC) New.
38134         (CONST_WIDE_INT_NUNITS) New.
38135         (CONST_WIDE_INT_ELT) New.
38136         (rtx_mode_t): New type.
38137         (wi::int_traits <rtx_mode_t>): New.
38138         (wi::shwi): New.
38139         (wi::min_value): New.
38140         (wi::max_value): New.
38141         (rtx_alloc_v) New.
38142         (const_wide_int_alloc): New.
38143         (immed_wide_int_const): New.
38144         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
38145         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
38146         * signop.h: New file.
38147         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
38148         (simplify_const_unary_operation): Use wide-int interfaces.
38149         (simplify_binary_operation_1): Likewise.
38150         (simplify_const_binary_operation): Likewise.
38151         (simplify_const_relational_operation): Likewise.
38152         (simplify_immed_subreg): Likewise.
38153         * stmt.c (expand_case): Likewise.
38154         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
38155         signop rather than a bool.
38156         * stor-layout.c (layout_type): Use wide-int interfaces.
38157         (initialize_sizetypes): Update calls to
38158         set_min_and_max_values_for_integral_type.
38159         (set_min_and_max_values_for_integral_type): Take a signop rather
38160         than a bool.  Use wide-int interfaces.
38161         (fixup_signed_type): Update accordingly.  Remove
38162         HOST_BITS_PER_DOUBLE_INT limit.
38163         (fixup_unsigned_type): Likewise.
38164         * system.h (STATIC_CONSTANT_P): New.
38165         (STATIC_ASSERT): New.
38166         * target.def (can_use_doloop_p): Take widest_ints rather than
38167         double_ints.
38168         * target.h: Include wide-int.h rather than double-int.h.
38169         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
38170         than double_ints.
38171         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
38172         rather than INT_CST_LT_UNSIGNED.
38173         (can_use_doloop_if_innermost): Take widest_ints rather than
38174         double_ints.
38175         * tree-affine.c: Include wide-int-print.h.
38176         (double_int_ext_for_comb): Delete.
38177         (wide_int_ext_for_comb): New.
38178         (aff_combination_zero): Use wide-int interfaces.
38179         (aff_combination_const): Take a widest_int instead of a double_int.
38180         (aff_combination_elt): Use wide-int interfaces.
38181         (aff_combination_scale): Take a widest_int instead of a double_int.
38182         (aff_combination_add_elt): Likewise.
38183         (aff_combination_add_cst): Likewise.
38184         (aff_combination_add): Use wide-int interfaces.
38185         (aff_combination_convert): Likewise.
38186         (tree_to_aff_combination): Likewise.
38187         (add_elt_to_tree): Take a widest_int instead of a double_int.
38188         (aff_combination_to_tree): Use wide-int interfaces.
38189         (aff_combination_remove_elt): Likewise.
38190         (aff_combination_add_product): Take a widest_int instead of
38191         a double_int.
38192         (aff_combination_mult): Use wide-int interfaces.
38193         (aff_combination_expand): Likewise.
38194         (double_int_constant_multiple_p): Delete.
38195         (wide_int_constant_multiple_p): New.
38196         (aff_combination_constant_multiple_p): Take a widest_int pointer
38197         instead of a double_int pointer.
38198         (print_aff): Use wide-int interfaces.
38199         (get_inner_reference_aff): Take a widest_int pointer
38200         instead of a double_int pointer.
38201         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
38202         * tree-affine.h: Include wide-int.h.
38203         (struct aff_comb_elt): Change type of coef to widest_int.
38204         (struct affine_tree_combination): Change type of offset to widest_int.
38205         (double_int_ext_for_comb): Delete.
38206         (wide_int_ext_for_comb): New.
38207         (aff_combination_const): Use widest_int instead of double_int.
38208         (aff_combination_scale): Likewise.
38209         (aff_combination_add_elt): Likewise.
38210         (aff_combination_constant_multiple_p): Likewise.
38211         (get_inner_reference_aff): Likewise.
38212         (aff_comb_cannot_overlap_p): Likewise.
38213         (aff_combination_zero_p): Use wide-int interfaces.
38214         * tree.c: Include tree.h.
38215         (init_ttree): Use make_int_cst.
38216         (tree_code_size): Removed code for INTEGER_CST case.
38217         (tree_size): Add INTEGER_CST case.
38218         (make_node_stat): Update comment.
38219         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
38220         (build_int_cst_type): Use wide-int interfaces.
38221         (double_int_to_tree): Likewise.
38222         (double_int_fits_to_tree_p): Delete.
38223         (force_fit_type_double): Delete.
38224         (force_fit_type): New.
38225         (int_cst_hash_hash): Use wide-int interfaces.
38226         (int_cst_hash_eq): Likewise.
38227         (build_int_cst_wide): Delete.
38228         (wide_int_to_tree): New.
38229         (cache_integer_cst): Use wide-int interfaces.
38230         (build_low_bits_mask): Likewise.
38231         (cst_and_fits_in_hwi): Likewise.
38232         (real_value_from_int_cst): Likewise.
38233         (make_int_cst_stat): New.
38234         (integer_zerop): Use wide_int interfaces.
38235         (integer_onep): Likewise.
38236         (integer_all_onesp): Likewise.
38237         (integer_pow2p): Likewise.
38238         (integer_nonzerop): Likewise.
38239         (tree_log2): Likewise.
38240         (tree_floor_log2): Likewise.
38241         (tree_ctz): Likewise.
38242         (int_size_in_bytes): Likewise.
38243         (mem_ref_offset): Return an offset_int rather than a double_int.
38244         (build_type_attribute_qual_variant): Use wide_int interfaces.
38245         (type_hash_eq): Likewise
38246         (tree_int_cst_equal): Likewise.
38247         (tree_int_cst_lt): Delete.
38248         (tree_int_cst_compare): Likewise.
38249         (tree_fits_shwi_p): Use wide_int interfaces.
38250         (tree_fits_uhwi_p): Likewise.
38251         (tree_int_cst_sign_bit): Likewise.
38252         (tree_int_cst_sgn): Likewise.
38253         (tree_int_cst_min_precision): Take a signop rather than a bool.
38254         (simple_cst_equal): Use wide_int interfaces.
38255         (compare_tree_int): Likewise.
38256         (iterative_hash_expr): Likewise.
38257         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
38258         INT_CST_LT.
38259         (get_type_static_bounds): Use wide_int interfaces.
38260         (tree_int_cst_elt_check_failed): New.
38261         (build_common_tree_nodes): Reordered to set prec before filling in
38262         value.
38263         (int_cst_value): Check cst_and_fits_in_hwi.
38264         (widest_int_cst_value): Use wide_int interfaces.
38265         (upper_bound_in_type): Likewise.
38266         (lower_bound_in_type): Likewise.
38267         (num_ending_zeros): Likewise.
38268         (drop_tree_overflow): Likewise.
38269         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
38270         (gen_conditions_for_pow_cst_base): Likewise.
38271         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
38272         (group_case_labels_stmt): Use wide-int interfaces.
38273         (verify_gimple_assign_binary): Likewise.
38274         (print_loop): Likewise.
38275         * tree-chrec.c (tree_fold_binomial): Likewise.
38276         * tree-core.h (struct tree_base): Add int_length.
38277         (struct tree_int_cst): Change rep of value.
38278         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
38279         (dr_may_alias_p): Likewise.
38280         (max_stmt_executions_tree): Likewise.
38281         * tree.def (INTEGER_CST): Update comment.
38282         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
38283         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
38284         * tree-dump.c: Include wide-int.h and wide-int-print.h.
38285         (dequeue_and_dump): Use wide-int interfaces.
38286         * tree.h: Include wide-int.h.
38287         (NULL_TREE): Moved to earlier loc in file.
38288         (TREE_INT_CST_ELT_CHECK): New.
38289         (tree_int_cst_elt_check_failed): New.
38290         (TYPE_SIGN): New.
38291         (TREE_INT_CST): Delete.
38292         (TREE_INT_CST_LOW): Use wide-int interfaces.
38293         (TREE_INT_CST_HIGH): Delete.
38294         (TREE_INT_CST_NUNITS): New.
38295         (TREE_INT_CST_EXT_NUNITS): Likewise.
38296         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
38297         (TREE_INT_CST_ELT): Likewise.
38298         (INT_CST_LT): Delete.
38299         (tree_int_cst_elt_check): New (two forms).
38300         (type_code_size): Update comment.
38301         (make_int_cst_stat, make_int_cst): New.
38302         (tree_to_double_int): Delete.
38303         (double_int_fits_to_tree_p): Delete.
38304         (force_fit_type_double): Delete.
38305         (build_int_cstu): Replace with out-of-line function.
38306         (build_int_cst_wide): Delete.
38307         (tree_int_cst_lt): Define inline.
38308         (tree_int_cst_le): New.
38309         (tree_int_cst_compare): Define inline.
38310         (tree_int_cst_min_precision): Take a signop rather than a bool.
38311         (wi::int_traits <const_tree>): New.
38312         (wi::int_traits <tree>): New.
38313         (wi::extended_tree): New.
38314         (wi::int_traits <wi::extended_tree>): New.
38315         (wi::to_widest): New.
38316         (wi::to_offset): New.
38317         (wi::fits_to_tree_p): New.
38318         (wi::min_value): New.
38319         (wi::max_value): New.
38320         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
38321         (copy_tree_body_r): Likewise.
38322         * tree-object-size.c (compute_object_offset): Likewise.
38323         (addr_object_size): Likewise.
38324         * tree-predcom.c: Include wide-int-print.h.
38325         (struct dref_d): Change type of offset to widest_int.
38326         (dump_dref): Call wide-int printer.
38327         (aff_combination_dr_offset): Use wide-int interfaces.
38328         (determine_offset): Take a widest_int pointer rather than a
38329         double_int pointer.
38330         (split_data_refs_to_components): Use wide-int interfaces.
38331         (suitable_component_p): Likewise.
38332         (order_drefs): Likewise.
38333         (add_ref_to_chain): Likewise.
38334         (valid_initializer_p): Likewise.
38335         (determine_roots_comp): Likewise.
38336         * tree-pretty-print.c: Include wide-int-print.h.
38337         (dump_generic_node): Use wide-int interfaces.
38338         * tree-sra.c (sra_ipa_modify_expr): Likewise.
38339         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
38340         (move_fixed_address_to_symbol): Likewise.
38341         (move_hint_to_base): Likewise.
38342         (move_pointer_to_base): Likewise.
38343         (move_variant_to_index): Likewise.
38344         (most_expensive_mult_to_index): Likewise.
38345         (addr_to_parts): Likewise.
38346         (copy_ref_info): Likewise.
38347         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
38348         (indirect_refs_may_alias_p): Likewise.
38349         (stmt_kills_ref_p_1): Likewise.
38350         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
38351         * tree-ssa-ccp.c: Update comment at top of file.  Include
38352         wide-int-print.h.
38353         (struct prop_value_d): Change type of mask to widest_int.
38354         (extend_mask): New function.
38355         (dump_lattice_value): Use wide-int interfaces.
38356         (get_default_value): Likewise.
38357         (set_constant_value): Likewise.
38358         (set_value_varying): Likewise.
38359         (valid_lattice_transition): Likewise.
38360         (set_lattice_value): Likewise.
38361         (value_to_double_int): Delete.
38362         (value_to_wide_int): New.
38363         (get_value_from_alignment): Use wide-int interfaces.
38364         (get_value_for_expr): Likewise.
38365         (do_dbg_cnt): Likewise.
38366         (ccp_finalize): Likewise.
38367         (ccp_lattice_meet): Likewise.
38368         (bit_value_unop_1): Use widest_ints rather than double_ints.
38369         (bit_value_binop_1): Likewise.
38370         (bit_value_unop): Use wide-int interfaces.
38371         (bit_value_binop): Likewise.
38372         (bit_value_assume_aligned): Likewise.
38373         (evaluate_stmt): Likewise.
38374         (ccp_fold_stmt): Likewise.
38375         (visit_cond_stmt): Likewise.
38376         (ccp_visit_stmt): Likewise.
38377         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
38378         (constant_pointer_difference): Likewise.
38379         (associate_pointerplus): Likewise.
38380         (combine_conversions): Likewise.
38381         * tree-ssa-loop.h: Include wide-int.h.
38382         (struct tree_niter_desc): Change type of max to widest_int.
38383         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
38384         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
38385         (remove_redundant_iv_tests): Likewise.
38386         (canonicalize_loop_induction_variables): Likewise.
38387         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
38388         (constant_multiple_of): Take a widest_int pointer instead of
38389         a double_int pointer.
38390         (get_computation_aff): Use wide-int interfaces.
38391         (ptr_difference_cost): Likewise.
38392         (difference_cost): Likewise.
38393         (get_loop_invariant_expr_id): Likewise.
38394         (get_computation_cost_at): Likewise.
38395         (iv_elimination_compare_lt): Likewise.
38396         (may_eliminate_iv): Likewise.
38397         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
38398         instead of double_int.
38399         (max_loop_iterations): Likewise.
38400         (max_stmt_executions): Likewise.
38401         (estimated_stmt_executions): Likewise.
38402         * tree-ssa-loop-niter.c: Include wide-int-print.h.
38403         (split_to_var_and_offset): Use wide-int interfaces.
38404         (determine_value_range): Likewise.
38405         (bound_difference_of_offsetted_base): Likewise.
38406         (bounds_add): Take a widest_int instead of a double_int.
38407         (number_of_iterations_ne_max): Use wide-int interfaces.
38408         (number_of_iterations_ne): Likewise.
38409         (number_of_iterations_lt_to_ne): Likewise.
38410         (assert_loop_rolls_lt): Likewise.
38411         (number_of_iterations_lt): Likewise.
38412         (number_of_iterations_le): Likewise.
38413         (number_of_iterations_cond): Likewise.
38414         (number_of_iterations_exit): Likewise.
38415         (finite_loop_p): Likewise.
38416         (derive_constant_upper_bound_assign): Likewise.
38417         (derive_constant_upper_bound): Return a widest_int.
38418         (derive_constant_upper_bound_ops): Likewise.
38419         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
38420         (record_estimate): Take a widest_int rather than a double_int.
38421         (record_nonwrapping_iv): Use wide-int interfaces.
38422         (double_int_cmp): Delete.
38423         (wide_int_cmp): New.
38424         (bound_index): Take a widest_int rather than a double_int.
38425         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
38426         (maybe_lower_iteration_bound): Likewise.
38427         (estimate_numbers_of_iterations_loop): Likewise.
38428         (estimated_loop_iterations): Take a widest_int pointer than than
38429         a double_int pointer.
38430         (estimated_loop_iterations_int): Use wide-int interfaces.
38431         (max_loop_iterations): Take a widest_int pointer than than
38432         a double_int pointer.
38433         (max_loop_iterations_int): Use wide-int interfaces.
38434         (max_stmt_executions): Take a widest_int pointer than than
38435         a double_int pointer.
38436         (estimated_stmt_executions): Likewise.
38437         (n_of_executions_at_most): Use wide-int interfaces.
38438         (scev_probably_wraps_p): Likewise.
38439         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
38440         to real_to_integer.
38441         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
38442         interfaces.
38443         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
38444         double_ints.  Adjust for trailing_wide_ints <3> representation.
38445         (set_nonzero_bits): Likewise.
38446         (get_range_info): Return wide_ints rather than double_ints.
38447         Adjust for trailing_wide_ints <3> representation.
38448         (get_nonzero_bits): Likewise.
38449         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
38450         representation.
38451         * tree-ssanames.h (struct range_info_def): Replace min, max and
38452         nonzero_bits with a trailing_wide_ints <3>.
38453         (set_range_info): Use wide_int_refs rather than double_ints.
38454         (set_nonzero_bits): Likewise.
38455         (get_range_info): Return wide_ints rather than double_ints.
38456         (get_nonzero_bits): Likewise.
38457         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
38458         * tree-ssa-pre.c (phi_translate_1): Likewise.
38459         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
38460         (acceptable_pow_call): Likewise.
38461         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
38462         interfaces.
38463         (vn_reference_fold_indirect): Likewise.
38464         (vn_reference_maybe_forwprop_address): Likewise.
38465         (valueize_refs_1): Likewise.
38466         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
38467         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
38468         tree_int_cst_lt and tree_int_cst_le.
38469         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
38470         interfaces.
38471         (streamer_alloc_tree): Likewise.
38472         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
38473         (streamer_write_tree_header): Likewise.
38474         (streamer_write_integer_cst): Likewise.
38475         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
38476         (build_constructors): Likewise.
38477         (array_value_type): Likewise.
38478         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
38479         (vect_check_gather): Likewise.
38480         * tree-vect-generic.c (build_replicated_const): Likewise.
38481         (expand_vector_divmod): Likewise.
38482         * tree-vect-loop.c (vect_transform_loop): Likewise.
38483         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
38484         (vect_do_peeling_for_alignment): Likewise.
38485         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
38486         * tree-vrp.c: Include wide-int.h.
38487         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
38488         (extract_range_from_assert): Use wide-int interfaces.
38489         (vrp_int_const_binop): Likewise.
38490         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
38491         double_int pointers.
38492         (ranges_from_anti_range): Use wide-int interfaces.
38493         (quad_int_cmp): Delete.
38494         (quad_int_pair_sort): Likewise.
38495         (extract_range_from_binary_expr_1): Use wide-int interfaces.
38496         (extract_range_from_unary_expr_1): Likewise.
38497         (adjust_range_with_scev): Likewise.
38498         (masked_increment): Take and return wide_ints rather than double_ints.
38499         (register_edge_assert_for_2): Use wide-int interfaces.
38500         (check_array_ref): Likewise.
38501         (search_for_addr_array): Likewise.
38502         (maybe_set_nonzero_bits): Likewise.
38503         (union_ranges): Pass an integer of the correct type instead of
38504         using integer_one_node.
38505         (intersect_ranges): Likewise.
38506         (simplify_truth_ops_using_ranges): Likewise.
38507         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
38508         (range_fits_type_p): Likewise.
38509         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
38510         a bool.
38511         (simplify_conversion_using_ranges): Use wide-int interfaces.
38512         (simplify_float_conversion_using_ranges): Likewise.
38513         (vrp_finalize): Likewise.
38514         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
38515         (gimple_stringops_transform): Likewise.
38516         * varasm.c (decode_addr_const): Likewise.
38517         (const_hash_1): Likewise.
38518         (const_rtx_hash_1): Likewise
38519         (output_constant): Likewise.
38520         (array_size_for_constructor): Likewise.
38521         (output_constructor_regular_field): Likewise.
38522         (output_constructor_bitfield): Likewise.
38523         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
38524         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
38525         GENERATOR_FILEs.
38526         * gencheck.c: Define BITS_PER_UNIT.
38527         * wide-int.cc: New.
38528         * wide-int.h: New.
38529         * wide-int-print.cc: New.
38530         * wide-int-print.h: New.
38531
38532 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
38533
38534         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
38535
38536 2014-05-06  Richard Biener  <rguenther@suse.de>
38537
38538         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
38539         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
38540         (TODO_verify_all): Adjust.
38541         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
38542         TODO_verify_stmts and TODO_verify_rtl_sharing.
38543         * bb-reorder.c: Likewise.
38544         * cfgexpand.c: Likewise.
38545         * cprop.c: Likewise.
38546         * cse.c: Likewise.
38547         * function.c: Likewise.
38548         * fwprop.c: Likewise.
38549         * gcse.c: Likewise.
38550         * gimple-ssa-isolate-paths.c: Likewise.
38551         * gimple-ssa-strength-reduction.c: Likewise.
38552         * ipa-split.c: Likewise.
38553         * loop-init.c: Likewise.
38554         * loop-unroll.c: Likewise.
38555         * lower-subreg.c: Likewise.
38556         * modulo-sched.c: Likewise.
38557         * postreload-gcse.c: Likewise.
38558         * predict.c: Likewise.
38559         * recog.c: Likewise.
38560         * sched-rgn.c: Likewise.
38561         * store-motion.c: Likewise.
38562         * tracer.c: Likewise.
38563         * trans-mem.c: Likewise.
38564         * tree-call-cdce.c: Likewise.
38565         * tree-cfg.c: Likewise.
38566         * tree-cfgcleanup.c: Likewise.
38567         * tree-complex.c: Likewise.
38568         * tree-eh.c: Likewise.
38569         * tree-emutls.c: Likewise.
38570         * tree-if-conv.c: Likewise.
38571         * tree-into-ssa.c: Likewise.
38572         * tree-loop-distribution.c: Likewise.
38573         * tree-object-size.c: Likewise.
38574         * tree-parloops.c: Likewise.
38575         * tree-pass.h: Likewise.
38576         * tree-sra.c: Likewise.
38577         * tree-ssa-ccp.c: Likewise.
38578         * tree-ssa-copy.c: Likewise.
38579         * tree-ssa-copyrename.c: Likewise.
38580         * tree-ssa-dce.c: Likewise.
38581         * tree-ssa-dom.c: Likewise.
38582         * tree-ssa-dse.c: Likewise.
38583         * tree-ssa-forwprop.c: Likewise.
38584         * tree-ssa-ifcombine.c: Likewise.
38585         * tree-ssa-loop-ch.c: Likewise.
38586         * tree-ssa-loop-ivcanon.c: Likewise.
38587         * tree-ssa-loop.c: Likewise.
38588         * tree-ssa-math-opts.c: Likewise.
38589         * tree-ssa-phiopt.c: Likewise.
38590         * tree-ssa-phiprop.c: Likewise.
38591         * tree-ssa-pre.c: Likewise.
38592         * tree-ssa-reassoc.c: Likewise.
38593         * tree-ssa-sink.c: Likewise.
38594         * tree-ssa-strlen.c: Likewise.
38595         * tree-ssa-tail-merge.c: Likewise.
38596         * tree-ssa-uncprop.c: Likewise.
38597         * tree-switch-conversion.c: Likewise.
38598         * tree-tailcall.c: Likewise.
38599         * tree-vect-generic.c: Likewise.
38600         * tree-vectorizer.c: Likewise.
38601         * tree-vrp.c: Likewise.
38602         * tsan.c: Likewise.
38603         * var-tracking.c: Likewise.
38604         * bt-load.c: Likewise.
38605         * cfgcleanup.c: Likewise.
38606         * combine-stack-adj.c: Likewise.
38607         * combine.c: Likewise.
38608         * compare-elim.c: Likewise.
38609         * config/epiphany/resolve-sw-modes.c: Likewise.
38610         * config/i386/i386.c: Likewise.
38611         * config/mips/mips.c: Likewise.
38612         * config/s390/s390.c: Likewise.
38613         * config/sh/sh_treg_combine.cc: Likewise.
38614         * config/sparc/sparc.c: Likewise.
38615         * dce.c: Likewise.
38616         * dse.c: Likewise.
38617         * final.c: Likewise.
38618         * ifcvt.c: Likewise.
38619         * mode-switching.c: Likewise.
38620         * passes.c: Likewise.
38621         * postreload.c: Likewise.
38622         * ree.c: Likewise.
38623         * reg-stack.c: Likewise.
38624         * regcprop.c: Likewise.
38625         * regrename.c: Likewise.
38626         * web.c: Likewise.
38627
38628 2014-05-06  Richard Biener  <rguenther@suse.de>
38629
38630         PR middle-end/61070
38631         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
38632         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
38633
38634 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
38635
38636         PR ipa/60965
38637         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
38638
38639 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
38640             Tom de Vries  <tom@codesourcery.com>
38641
38642         * target.def (call_fusage_contains_non_callee_clobbers): New
38643         DEFHOOKPOD.
38644         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
38645         Hooks to @menu.
38646         (@node Miscellaneous Register Hooks): New node.
38647         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
38648         * doc/tm.texi: Regenerate.
38649
38650 2014-05-05  Marek Polacek  <polacek@redhat.com>
38651
38652         PR driver/61065
38653         * opts.c (common_handle_option): Call error_at instead of warning_at.
38654
38655 2014-05-05  Richard Biener  <rguenther@suse.de>
38656
38657         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
38658         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
38659         under the TODO_verify_il umbrella.
38660
38661 2014-05-05  Richard Biener  <rguenther@suse.de>
38662
38663         * passes.c (execute_function_todo): Move TODO_verify_flow under
38664         the TODO_verify_ul umbrella.
38665
38666 2014-05-05  Richard Biener  <rguenther@suse.de>
38667
38668         PR middle-end/61010
38669         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
38670         X & CST away from a CST that is the mask of a mode.
38671
38672 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
38673
38674         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
38675         int argument to enum machine_mode.
38676         (picochip_class_max_nregs): Ditto.
38677         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
38678         (picochip_class_max_nregs): Ditto.
38679
38680 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38681
38682         * target.def: Add new target hook.
38683         * doc/tm.texi: Regenerate.
38684         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
38685         * targhooks.c (default_keep_leaf_when_profiled): New function.
38686
38687         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
38688         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
38689
38690 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
38691
38692         PR tree-optimization/60363
38693         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
38694         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
38695         (update_destination_phis): New parameter.
38696         (create_edge_and_update_destination_phis): Ditto.
38697         (ssa_fix_duplicate_block_edges): Pass new arguments.
38698         (thread_single_edge): Ditto.
38699
38700 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
38701
38702         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
38703         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
38704         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
38705         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
38706         Use RS6000_BTM_HARD_FLOAT.
38707         (BU_MISC_2): Likewise.
38708         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
38709         RS6000_BTM_HARD_FLOAT.
38710         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
38711         is explicitly used.
38712         (rs6000_invalid_builtin): Add hard floating builtin support.
38713         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
38714         hard float builtins.
38715         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
38716
38717 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
38718
38719         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
38720         Add missing function* argument.
38721
38722 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
38723
38724         * lra-constraints.c (valid_address_p): Move earlier in file.
38725         Add a constraint argument to the address_info version.
38726         (satisfies_memory_constraint_p): New function.
38727         (satisfies_address_constraint_p): Likewise.
38728         (process_alt_operands, curr_insn_transform): Use them.
38729         (process_address): Pass the constraint to valid_address_p when
38730         checking address operands.
38731
38732 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
38733
38734         * config/mips/mips.c (mips_isa_rev): New variable.
38735         (mips_set_architecture): Set it.
38736         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
38737         from mips_isa_rev.
38738         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
38739         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
38740         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
38741         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
38742         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
38743         conditions in terms of mips_isa_rev.
38744         (mips_isa_rev): Declare.
38745
38746 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
38747
38748         * config/sh/sh-mem.cc: Use tabs instead of spaces.
38749         (prob_unlikely, prob_likely): Make variables const.
38750
38751 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
38752
38753         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
38754
38755 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
38756
38757         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
38758
38759 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
38760
38761         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
38762         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
38763         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
38764         functions.
38765         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
38766         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
38767         sh_pass_in_reg_p.
38768         Replace usage of ROUND_REG with sh_round_reg.
38769         Use CEIL instead of ROUND_ADVANCE.
38770
38771 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
38772
38773         PR target/61026
38774         * config/sh/sh.c: Include stdlib headers before everything else.
38775
38776 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
38777
38778         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
38779         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
38780         (gimplify_adjust_omp_clauses): Simd region is never
38781         directly nested in combined parallel.  Instead, for linear
38782         with copyin/copyout, if in combined for simd loop, make decl
38783         firstprivate/lastprivate on OMP_FOR.
38784         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
38785         expand_omp_for_static_chunk): When setting endvar, also set
38786         fd->loop.v to the same value.
38787
38788 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
38789
38790         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
38791
38792 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
38793
38794         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
38795         expression.
38796
38797 2014-05-02  Marek Polacek  <polacek@redhat.com>
38798
38799         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
38800
38801 2014-05-02  Kito Cheng  <kito@0xlab.org>
38802
38803         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
38804         to a C expression marco.
38805         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
38806         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
38807         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
38808         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
38809         HONOR_REG_ALLOC_ORDER.
38810         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
38811
38812 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
38813
38814         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
38815
38816 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
38817
38818         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
38819
38820 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
38821
38822         * tree-if-conv.c (is_cond_scalar_reduction): New function.
38823         (convert_scalar_cond_reduction): Likewise.
38824         (predicate_scalar_phi): Add recognition and transformation
38825         of simple conditioanl reduction to be vectorizable.
38826
38827 2014-05-01  Marek Polacek  <polacek@redhat.com>
38828
38829         PR c/43245
38830         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
38831
38832 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
38833
38834         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
38835         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
38836         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
38837         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
38838         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
38839         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
38840         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
38841         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
38842
38843 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
38844
38845         * config/arc/arc.opt (mlra): Move comment above option name
38846         to avoid mis-parsing as language options.
38847
38848 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38849
38850         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
38851         * config/sol2.h: ... here.
38852         * config/sol2-10.h: Remove.
38853
38854         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
38855         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
38856         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
38857         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
38858         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
38859         * config/sol2.h: ... here.
38860         (SECTION_NAME_FORMAT): Don't redefine.
38861         (STARTFILE_ARCH32_SPEC): Rename to ...
38862         (STARTFILE_ARCH_SPEC): ... this.
38863         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
38864         * config/sparc/sol2.h: ... here.
38865         (SECTION_NAME_FORMAT): Don't undef.
38866         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
38867         (SUBTARGET_EXTRA_SPECS): Remove.
38868         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
38869
38870         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
38871         (MD_STARTFILE_PREFIX): Remove.
38872         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
38873         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
38874         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
38875         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
38876         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
38877         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
38878         * config/i386/sol2.h: ... here.
38879         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
38880         * config/i386/sol2-bi.h: Remove.
38881         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
38882         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
38883
38884         * config/i386/t-sol2-64: Rename to ...
38885         * config/i386/t-sol2: ... this.
38886         * config/sparc/t-sol2-64: Rename to ...
38887         * config/sparc/t-sol2: ... this.
38888
38889         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
38890         sol2_tm_file_head, sol2_tm_file_tail.
38891         Include ${cpu_type}/sol2.h before sol2.h.
38892         Remove sol2-10.h.
38893         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
38894         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
38895         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
38896         Reflect i386/t-sol2-64 renaming.
38897         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
38898         Reflect sparc/t-sol2-64 renaming.
38899
38900 2014-04-30  Richard Biener  <rguenther@suse.de>
38901
38902         * passes.c (execute_function_todo): Move TODO_verify_stmts
38903         and TODO_verify_ssa under the TODO_verify_il umbrella.
38904         * tree-ssa.h (verify_ssa): Adjust prototype.
38905         * tree-ssa.c (verify_ssa): Add parameter to tell whether
38906         we should verify SSA operands.
38907         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
38908         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
38909         whether we should verify whether not throwing stmts have EH info.
38910         * graphite-scop-detection.c (create_sese_edges): Adjust.
38911         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
38912         * tree-eh.c (lower_try_finally_switch): Do not add the
38913         default case label twice.
38914
38915 2014-04-30  Marek Polacek  <polacek@redhat.com>
38916
38917         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
38918         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
38919         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
38920         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
38921
38922 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
38923
38924         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
38925         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
38926         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
38927         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
38928         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
38929         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
38930         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
38931         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
38932
38933 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
38934
38935         * tree-cfg.c (dump_function_to_file): Dump the return type of
38936         functions, in a line to itself before the function body, mimicking
38937         the layout of a C function.
38938
38939 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
38940
38941         PR tree-optimization/60971
38942         * tree-tailcall.c (process_assignment): Reject conversions which
38943         reduce precision.
38944
38945 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
38946
38947         * calls.c (initialize_argument_information): Always treat
38948         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
38949         (expand_call): Likewise.
38950         (emit_library_call_calue_1): Likewise.
38951         * expr.c (PUSH_ARGS_REVERSED): Do not define.
38952         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
38953         code accordingly.
38954
38955 2014-04-29  Nick Clifton  <nickc@redhat.com>
38956
38957         * config/msp430/msp430.md (umulsidi): Fix typo.
38958         (mulhisi3): Enable even inside interrupt handlers.
38959         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
38960         bigger return address pushed in large mode.
38961
38962 2014-04-29  Nick Clifton  <nickc@redhat.com>
38963
38964         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
38965         (arc_init_reg_tables): Use a machine_mode enum to iterate over
38966         available modes.
38967         * config/m32r/m32r.c (init_reg_tables): Likewise.
38968         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
38969         enum to hold the modes.
38970
38971 2014-04-29  Richard Biener  <rguenther@suse.de>
38972
38973         * dominance.c (free_dominance_info): Add overload with
38974         function parameter.
38975         (dom_info_state): Likewise.
38976         (dom_info_available_p): Likewise.
38977         * basic-block.h (free_dominance_info, dom_info_state,
38978         dom_info_available_p): Declare overloads.
38979         * passes.c (execute_function_todo): Verify that verifiers
38980         don't change dominator info state.  Drop dominator info
38981         for IPA pass invocations.
38982         * cgraph.c (release_function_body): Restore asserts that
38983         dominator information is released.
38984
38985 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
38986
38987         * doc/invoke.texi: Fix typo.
38988         * tree-vrp.c: Fix typos.
38989         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
38990
38991 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38992
38993         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
38994
38995 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
38996
38997         * config/aarch64/aarch64-builtins.c
38998         (aarch64_types_storestruct_lane_qualifiers): New.
38999         (TYPES_STORESTRUCT_LANE): Likewise.
39000         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
39001         (st3_lane): Likewise.
39002         (st4_lane): Likewise.
39003         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
39004         (vec_store_lanesci_lane<mode>): Likewise.
39005         (vec_store_lanesxi_lane<mode>): Likewise.
39006         (aarch64_st2_lane<VQ:mode>): Likewise.
39007         (aarch64_st3_lane<VQ:mode>): Likewise.
39008         (aarch64_st4_lane<VQ:mode>): Likewise.
39009         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
39010         * config/aarch64/arm_neon.h
39011         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
39012         use new macro arguments.
39013         (__ST3_LANE_FUNC): Likewise.
39014         (__ST4_LANE_FUNC): Likewise.
39015         * config/aarch64/iterators.md (V_TWO_ELEM): New.
39016         (V_THREE_ELEM): Likewise.
39017         (V_FOUR_ELEM): Likewise.
39018
39019 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
39020
39021         * doc/gimple.texi: Replace the description of the now-defunct
39022         union gimple_statement_d with a diagram showing the
39023         gimple_statement_base class hierarchy and its relationships to
39024         the GSS_ and GIMPLE_ enums.
39025
39026 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
39027
39028         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
39029         * config/aarch64/aarch64.c
39030         (aarch64_cannot_change_mode_class): Weaken conditions.
39031         (aarch64_modes_tieable_p): New.
39032         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
39033
39034 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
39035
39036         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39037         (loadsync_<mode>): Change mode.
39038         (load_quadpti, store_quadpti): New.
39039         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
39040         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
39041
39042 2014-04-28  Martin Jambor  <mjambor@suse.cz>
39043
39044         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
39045         same alias type as the original statement.
39046         (subreplacement_assignment_data): New type.
39047         (handle_unscalarized_data_in_subtree): New type of parameter,
39048         generate new memory accesses with same alias type as the original
39049         statement.
39050         (load_assign_lhs_subreplacements): Likewise.
39051         (sra_modify_constructor_assign): Generate new memory accesses with
39052         same alias type as the original statement.
39053
39054 2014-04-28  Richard Biener  <rguenther@suse.de>
39055
39056         * tree-pass.h (TODO_verify_il): Define.
39057         (TODO_verify_all): Complete properly.
39058         * passes.c (execute_function_todo): Move existing loop-closed
39059         SSA verification under TODO_verify_il.
39060         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
39061         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
39062         Fix tree sharing issue.
39063
39064 2014-04-28  Richard Biener  <rguenther@suse.de>
39065
39066         PR middle-end/60092
39067         * builtins.def (DEF_C11_BUILTIN): Add.
39068         (BUILT_IN_ALIGNED_ALLOC): Likewise.
39069         * coretypes.h (enum function_class): Add function_c11_misc.
39070         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
39071         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
39072         (call_may_clobber_ref_p_1): Likewise.
39073         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
39074         (mark_all_reaching_defs_necessary_1): Likewise.
39075         (propagate_necessity): Likewise.
39076         (eliminate_unnecessary_stmts): Likewise.
39077         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
39078
39079 2014-04-28  Richard Biener  <rguenther@suse.de>
39080
39081         * tree-vrp.c (vrp_var_may_overflow): Remove.
39082         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
39083         with overflow immediately bump to one before that value and
39084         let iteration figure out overflow status.
39085
39086 2014-04-28  Richard Biener  <rguenther@suse.de>
39087
39088         * configure.ac: Do valgrind header checks unconditionally.
39089         Add --enable-valgrind-annotations.
39090         * system.h: Guard valgrind header inclusion with
39091         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
39092         * alloc-pool.c (pool_alloc, pool_free): Use
39093         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
39094         to guard possibly dead code.
39095         * config.in: Regenerated.
39096         * configure: Likewise.
39097
39098 2014-04-28  Jeff Law  <law@redhat.com>
39099
39100         PR tree-optimization/60902
39101         * tree-ssa-threadedge.c
39102         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
39103         over real defs when invalidating outputs from statements that do not
39104         produce useful outputs for threading.
39105
39106 2014-04-28  Richard Biener  <rguenther@suse.de>
39107
39108         PR tree-optimization/60979
39109         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
39110         SCOPs that end in a block with a successor with abnormal
39111         predecessors.
39112
39113 2014-04-28  Richard Biener  <rguenther@suse.de>
39114
39115         * tree-pass.h (execute_pass_list): Adjust prototype.
39116         * passes.c (pass_manager::execute_early_local_passes): Adjust.
39117         (do_per_function): Change callback signature, push all actual
39118         work to the callbals.
39119         (do_per_function_toporder): Likewise.
39120         (execute_function_dump): Adjust.
39121         (execute_function_todo): Likewise.
39122         (clear_last_verified): Likewise.
39123         (verify_curr_properties): Likewise.
39124         (update_properties_after_pass): Likewise.
39125         (execute_pass_list_1): Split out from ...
39126         (execute_pass_list): ... here.  Adjust.
39127         (execute_ipa_pass_list): Likewise.
39128         * cgraphunit.c (cgraph_add_new_function): Adjust.
39129         (analyze_function): Likewise.
39130         (expand_function): Likewise.
39131         * cgraph.c (release_function_body): Free dominance info
39132         here instead of asserting it was magically freed elsewhere.
39133
39134 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
39135
39136         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
39137         * configure: Regenerate.
39138         * config/sparc/sparc.opt (muser-mode): New option.
39139         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
39140         for LEON3.
39141         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
39142         * doc/invoke.texi (SPARC options): Document -muser-mode.
39143
39144 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
39145
39146         * cselib.c (find_slot_memmode): Delete.
39147         (cselib_hasher): Change compare_type to a struct.
39148         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
39149         constants.
39150         (preserve_constants_and_equivs): Adjust for new compare_type.
39151         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
39152         (wrap_constant): Delete.
39153         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
39154
39155 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
39156
39157         * doc/install.texi (Building with profile feedback): Remove
39158         outdated sentence.
39159
39160 2014-04-26  Tom de Vries  <tom@codesourcery.com>
39161
39162         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
39163         array accesses.
39164
39165 2014-04-25  Cary Coutant  <ccoutant@google.com>
39166
39167         PR debug/60929
39168         * dwarf2out.c (should_move_die_to_comdat): A type definition
39169         can contain a subprogram definition, but don't move it to a
39170         comdat unit.
39171         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
39172         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
39173         from original DIE.
39174         (clone_tree_hash): Rename to...
39175         (clone_tree_partial): ...this; change callers.  Copy
39176         DW_TAG_subprogram DIEs as declarations.
39177         (copy_decls_walk): Don't copy children of a declaration into a
39178         type unit.
39179
39180 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
39181
39182         PR target/60969
39183         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
39184         alternative 12.
39185
39186 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
39187
39188         * config/arm/predicates.md (call_insn_operand): Add long_call check.
39189         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
39190         reg for long_call.
39191         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
39192         restriction.
39193
39194 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39195
39196         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
39197
39198 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39199
39200         PR tree-optimization/60930
39201         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
39202         creating a multiply candidate by folding two constant
39203         multiplicands when the result overflows.
39204
39205 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
39206
39207         PR tree-optimization/60960
39208         * tree-vect-generic.c (expand_vector_operation): Only call
39209         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
39210
39211 2014-04-25  Tom de Vries  <tom@codesourcery.com>
39212
39213         * expr.c (clobber_reg_mode): New function.
39214         * expr.h (clobber_reg): New function.
39215
39216 2014-04-25  Tom de Vries  <tom@codesourcery.com>
39217
39218         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
39219         clobbers.
39220
39221 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
39222             Tom de Vries  <tom@codesourcery.com>
39223
39224         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
39225         handle.
39226         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
39227         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
39228         new argument to find_all_hard_reg_sets call.
39229
39230 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39231
39232         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
39233         Use HOST_WIDE_INT_C for mask literal.
39234         (aarch_rev16_shleft_mask_imm_p): Likewise.
39235
39236 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
39237
39238         PR target/60941
39239         * config/sparc/sparc.md (ashlsi3_extend): Delete.
39240
39241 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
39242
39243         PR preprocessor/56540
39244         * config/i386/i386-c.c (ix86_target_macros): Define
39245         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
39246
39247 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39248
39249         * configure.ac (tga_func): Remove.
39250         (LIB_TLS_SPEC): Remove.
39251         * configure: Regenerate.
39252         * config.in: Regenerate.
39253         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
39254
39255 2014-04-25  Richard Biener  <rguenther@suse.de>
39256
39257         PR ipa/60912
39258         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
39259         call stmt use/clobber sets during stmt walk instead of
39260         walking the possibly incomplete set of caller edges.
39261
39262 2014-04-25  Richard Biener  <rguenther@suse.de>
39263
39264         PR ipa/60911
39265         * passes.c (apply_ipa_transforms): Inline into only caller ...
39266         (execute_one_pass): ... here.  Properly bring in function
39267         bodies for nodes we want to apply IPA transforms to.
39268
39269 2014-04-24  Cong Hou  <congh@google.com>
39270
39271         PR tree-optimization/60896
39272         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
39273         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
39274         (vect_mark_pattern_stmts): Set the def type of all statements in
39275         PATTERN_DEF_SEQ as vect_internal_def.
39276
39277 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
39278
39279         * doc/extend.texi (PowerPC Built-in Functions): Document new
39280         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
39281         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
39282
39283         * config/rs6000/predicates.md (const_0_to_3_operand): New
39284         predicate to match 0..3 integer constants.
39285
39286         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
39287         to support adding miscellaneous builtin functions.
39288         (BU_DFP_MISC_2): Likewise.
39289         (BU_P7_MISC_1): Likewise.
39290         (BU_P7_MISC_2): Likewise.
39291         (BU_P8V_MISC_3): Likewise.
39292         (BU_MISC_1): Likewise.
39293         (BU_MISC_2): Likewise.
39294         (DIVWE): Add extended divide builtin functions.
39295         (DIVWEO): Likewise.
39296         (DIVWEU): Likewise.
39297         (DIVWEUO): Likewise.
39298         (DIVDE): Likewise.
39299         (DIVDEO): Likewise.
39300         (DIVDEU): Likewise.
39301         (DIVDEUO): Likewise.
39302         (DXEX): Add decimal floating-point builtin functions.
39303         (DXEXQ): Likewise.
39304         (DDEDPD): Likewise.
39305         (DDEDPDQ): Likewise.
39306         (DENBCD): Likewise.
39307         (DENBCDQ): Likewise.
39308         (DIEX): Likewise.
39309         (DIEXQ): Likewise.
39310         (DSCLI): Likewise.
39311         (DSCLIQ): Likewise.
39312         (DSCRI): Likewise.
39313         (DSCRIQ): Likewise.
39314         (CDTBCD): Add new BCD builtin functions.
39315         (CBCDTD): Likewise.
39316         (ADDG6S): Likewise.
39317         (BCDADD): Likewise.
39318         (BCDADD_LT): Likewise.
39319         (BCDADD_EQ): Likewise.
39320         (BCDADD_GT): Likewise.
39321         (BCDADD_OV): Likewise.
39322         (BCDSUB): Likewise.
39323         (BCDSUB_LT): Likewise.
39324         (BCDSUB_EQ): Likewise.
39325         (BCDSUB_GT): Likewise.
39326         (BCDSUB_OV): Likewise.
39327         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
39328         (UNPACK_TD): Likewise.
39329         (PACK_TF): Likewise.
39330         (UNPACK_TF): Likewise.
39331         (UNPACK_TF_0): Likewise.
39332         (UNPACK_TF_1): Likewise.
39333         (PACK_V1TI): Likewise.
39334         (UNPACK_V1TI): Likewise.
39335
39336         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
39337         support for decimal floating point builtin functions.
39338         (rs6000_expand_ternop_builtin): Add checks for the new builtin
39339         functions that take constant arguments.
39340         (rs6000_invalid_builtin): Add decimal floating point builtin support.
39341         (rs6000_init_builtins): Setup long double, _Decimal64, and
39342         _Decimal128 types for new builtin functions.
39343         (builtin_function_type): Set the unsigned flags appropriately for
39344         the new builtin functions.
39345         (rs6000_opt_masks): Add support for decimal floating point builtin
39346         functions.
39347
39348         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
39349         floating point builtin functions.
39350         (RS6000_BTM_COMMON): Likewise.
39351         (RS6000_BTI_long_double): Likewise.
39352         (RS6000_BTI_dfloat64): Likewise.
39353         (RS6000_BTI_dfloat128): Likewise.
39354         (long_double_type_internal_node): Likewise.
39355         (dfloat64_type_internal_node): Likewise.
39356         (dfloat128_type_internal_node): Likewise.
39357
39358         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
39359         2.07 bcd arithmetic instructions.
39360         (UNSPEC_BCDSUB): Likewise.
39361         (UNSPEC_BCD_OVERFLOW): Likewise.
39362         (UNSPEC_BCD_ADD_SUB): Likewise.
39363         (bcd_add_sub): Likewise.
39364         (BCD_TEST): Likewise.
39365         (bcd<bcd_add_sub>): Likewise.
39366         (bcd<bcd_add_sub>_test): Likewise.
39367         (bcd<bcd_add_sub>_test2): Likewise.
39368         (bcd<bcd_add_sub>_<code>): Likewise.
39369         (peephole2 for combined bcd ops): Likewise.
39370
39371         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
39372         decimal floating point builtin functions.
39373         (UNSPEC_DENBCD): Likewise.
39374         (UNSPEC_DXEX): Likewise.
39375         (UNSPEC_DIEX): Likewise.
39376         (UNSPEC_DSCLI): Likewise.
39377         (UNSPEC_DSCRI): Likewise.
39378         (D64_D128): Likewise.
39379         (dfp_suffix): Likewise.
39380         (dfp_ddedpd_<mode>): Likewise.
39381         (dfp_denbcd_<mode>): Likewise.
39382         (dfp_dxex_<mode>): Likewise.
39383         (dfp_diex_<mode>): Likewise.
39384         (dfp_dscli_<mode>): Likewise.
39385         (dfp_dscri_<mode>): Likewise.
39386
39387         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
39388         builtin functions.
39389         (UNSPEC_CDTBCD): Likewise.
39390         (UNSPEC_CBCDTD): Likewise.
39391         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
39392         (UNSPEC_DIVEO): Likewise.
39393         (UNSPEC_DIVEU): Likewise.
39394         (UNSPEC_DIVEUO): Likewise.
39395         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
39396         pack/unpack 128-bit types.
39397         (UNSPEC_PACK_128BIT): Likewise.
39398         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
39399         (udiv<mode>3): Use idiv_ldiv mode attribute.
39400         (div<mode>3): Likewise.
39401         (addg6s): Add new BCD builtin functions.
39402         (cdtbcd): Likewise.
39403         (cbcdtd): Likewise.
39404         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
39405         (div_extend): Likewise.
39406         (div<div_extend>_<mode>"): Likewise.
39407         (FP128_64): Add support for new builtin functions to pack/unpack
39408         128-bit types.
39409         (unpack<mode>): Likewise.
39410         (unpacktf_0): Likewise.
39411         (unpacktf_1): Likewise.
39412         (unpack<mode>_dm): Likewise.
39413         (unpack<mode>_nodm): Likewise.
39414         (pack<mode>): Likewise.
39415         (unpackv1ti): Likewise.
39416         (packv1ti): Likewise.
39417
39418 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
39419
39420         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
39421         is disabled.
39422
39423 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
39424
39425         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
39426         * gimplify.c (omp_is_private): Change last argument's type to int.
39427         Only diagnose lastprivate if the simd argument is 1, only diagnose
39428         linear if the simd argument is 2.
39429         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
39430         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
39431         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
39432         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
39433         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
39434         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
39435         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
39436         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
39437         * tree-nested.c (convert_nonlocal_omp_clauses,
39438         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
39439
39440 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
39441
39442         PR target/60822
39443         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
39444         operand 1.
39445
39446 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
39447
39448         * flag-types.h (enum ivar_visibility): Add.
39449
39450 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
39451
39452         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
39453         function * argument.
39454
39455 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
39456
39457         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
39458
39459 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
39460             Tom de Vries  <tom@codesourcery.com>
39461
39462         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
39463         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
39464         reg-note.
39465         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
39466         * emit-rtl.c (try_split): Same.
39467
39468 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
39469             Tom de Vries  <tom@codesourcery.com>
39470
39471         * common.opt (fuse-caller-save): New option.
39472
39473 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
39474
39475         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
39476         elements for big-endian.
39477
39478 2014-04-24  Richard Biener  <rguenther@suse.de>
39479
39480         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
39481         during TER and instead use the sepops interface for expanding
39482         non-GIMPLE_SINGLE_RHS.
39483
39484 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39485
39486         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
39487         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
39488
39489 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39490
39491         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
39492         assembler 64-bit option.
39493         * configure: Regenerate.
39494
39495 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39496
39497         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
39498         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
39499         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
39500         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
39501         (TARGET_CRYPTO): Take TARGET_SIMD into account.
39502
39503 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39504
39505         * config/aarch64/aarch64-builtins.c
39506         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
39507         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
39508         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
39509         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
39510         builtins.
39511         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
39512         (Vrevsuff): New mode attribute.
39513
39514 2014-04-24  Terry Guo  <terry.guo@arm.com>
39515
39516         * config/arm/arm.h (machine_function): Define variable
39517         after_arm_reorg here.
39518         * config/arm/arm.c (after_arm_reorg): Remove the definition.
39519         (arm_split_constant): Update the way to access variable
39520         after_arm_reorg.
39521         (arm_reorg): Ditto.
39522         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
39523
39524 2014-04-23  Tom de Vries  <tom@codesourcery.com>
39525
39526         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
39527
39528 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
39529
39530         * is-a.h: Update comments to reflect the following changes to the
39531         "pointerness" of the API, making the template parameter match the
39532         return type, allowing use of is-a.h with typedefs of pointers.
39533         (is_a_helper::cast): Return a T rather then a pointer to a T, so
39534         that the return type matches the parameter to the is_a_helper.
39535         (as_a): Likewise.
39536         (dyn_cast): Likewise.
39537
39538         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
39539         pointer from the is-a.h API.
39540
39541         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
39542         (is_a_helper <cgraph_node *>::test): ...this, matching change to
39543         is-a.h API.
39544         (is_a_helper <varpool_node>::test): Likewise, convert to...
39545         (is_a_helper <varpool_node *>::test): ...this.
39546
39547         (varpool_first_variable): Update for removal of implicit pointer
39548         from the is-a.h API.
39549         (varpool_next_variable): Likewise.
39550         (varpool_first_static_initializer): Likewise.
39551         (varpool_next_static_initializer): Likewise.
39552         (varpool_first_defined_variable): Likewise.
39553         (varpool_next_defined_variable): Likewise.
39554         (cgraph_first_defined_function): Likewise.
39555         (cgraph_next_defined_function): Likewise.
39556         (cgraph_first_function): Likewise.
39557         (cgraph_next_function): Likewise.
39558         (cgraph_first_function_with_gimple_body): Likewise.
39559         (cgraph_next_function_with_gimple_body): Likewise.
39560         (cgraph_alias_target): Likewise.
39561         (varpool_alias_target): Likewise.
39562         (cgraph_function_or_thunk_node): Likewise.
39563         (varpool_variable_node): Likewise.
39564         (symtab_real_symbol_p): Likewise.
39565         * cgraphunit.c (referred_to_p): Likewise.
39566         (analyze_functions): Likewise.
39567         (handle_alias_pairs): Likewise.
39568         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
39569         * gimple-ssa.h (gimple_vuse_op): Likewise.
39570         (gimple_vdef_op): Likewise.
39571         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
39572         * gimple.c (gimple_build_asm_1): Likewise.
39573         (gimple_build_try): Likewise.
39574         (gimple_build_resx): Likewise.
39575         (gimple_build_eh_dispatch): Likewise.
39576         (gimple_build_omp_for): Likewise.
39577         (gimple_omp_for_set_clauses): Likewise.
39578
39579         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
39580         (is_a_helper <gimple_statement_asm *>::test): ...this.
39581         (is_a_helper <gimple_statement_bind>::test): Convert to...
39582         (is_a_helper <gimple_statement_bind *>::test): ...this.
39583         (is_a_helper <gimple_statement_call>::test): Convert to...
39584         (is_a_helper <gimple_statement_call *>::test): ...this.
39585         (is_a_helper <gimple_statement_catch>::test): Convert to...
39586         (is_a_helper <gimple_statement_catch *>::test): ...this.
39587         (is_a_helper <gimple_statement_resx>::test): Convert to...
39588         (is_a_helper <gimple_statement_resx *>::test): ...this.
39589         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
39590         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
39591         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
39592         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
39593         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
39594         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
39595         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
39596         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
39597         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
39598         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
39599         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
39600         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
39601         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
39602         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
39603         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
39604         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
39605         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
39606         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
39607         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
39608         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
39609         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
39610         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
39611         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
39612         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
39613         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
39614         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
39615         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
39616         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
39617         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
39618         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
39619         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
39620         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
39621         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
39622         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
39623         (is_a_helper <gimple_statement_phi>::test): Convert to...
39624         (is_a_helper <gimple_statement_phi *>::test): ...this.
39625         (is_a_helper <gimple_statement_transaction>::test): Convert to...
39626         (is_a_helper <gimple_statement_transaction *>::test): ...this.
39627         (is_a_helper <gimple_statement_try>::test): Convert to...
39628         (is_a_helper <gimple_statement_try *>::test): ...this.
39629         (is_a_helper <gimple_statement_wce>::test): Convert to...
39630         (is_a_helper <gimple_statement_wce *>::test): ...this.
39631         (is_a_helper <const gimple_statement_asm>::test): Convert to...
39632         (is_a_helper <const gimple_statement_asm *>::test): ...this.
39633         (is_a_helper <const gimple_statement_bind>::test): Convert to...
39634         (is_a_helper <const gimple_statement_bind *>::test): ...this.
39635         (is_a_helper <const gimple_statement_call>::test): Convert to...
39636         (is_a_helper <const gimple_statement_call *>::test): ...this.
39637         (is_a_helper <const gimple_statement_catch>::test): Convert to...
39638         (is_a_helper <const gimple_statement_catch *>::test): ...this.
39639         (is_a_helper <const gimple_statement_resx>::test): Convert to...
39640         (is_a_helper <const gimple_statement_resx *>::test): ...this.
39641         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
39642         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
39643         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
39644         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
39645         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
39646         Convert to...
39647         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
39648         ...this.
39649         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
39650         Convert to...
39651         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
39652         ...this.
39653         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
39654         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
39655         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
39656         to...
39657         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
39658         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
39659         to...
39660         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
39661         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
39662         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
39663         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
39664         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
39665         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
39666         to...
39667         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
39668         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
39669         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
39670         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
39671         to...
39672         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
39673         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
39674         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
39675         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
39676         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
39677         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
39678         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
39679         (is_a_helper <const gimple_statement_phi>::test): Convert to...
39680         (is_a_helper <const gimple_statement_phi *>::test): ...this.
39681         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
39682         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
39683         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
39684         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
39685         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
39686         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
39687         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
39688         to...
39689         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
39690         ...this.
39691         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
39692         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
39693
39694         (gimple_use_ops): Update for removal of implicit pointer from the
39695         is-a.h API.
39696         (gimple_set_use_ops): Likewise.
39697         (gimple_vuse): Likewise.
39698         (gimple_vdef): Likewise.
39699         (gimple_vuse_ptr): Likewise.
39700         (gimple_vdef_ptr): Likewise.
39701         (gimple_set_vuse): Likewise.
39702         (gimple_set_vdef): Likewise.
39703         (gimple_omp_return_set_lhs): Likewise.
39704         (gimple_omp_return_lhs): Likewise.
39705         (gimple_omp_return_lhs_ptr): Likewise.
39706         (gimple_call_fntype): Likewise.
39707         (gimple_call_set_fntype): Likewise.
39708         (gimple_call_set_internal_fn): Likewise.
39709         (gimple_call_use_set): Likewise.
39710         (gimple_call_clobber_set): Likewise.
39711         (gimple_bind_vars): Likewise.
39712         (gimple_bind_set_vars): Likewise.
39713         (gimple_bind_body_ptr): Likewise.
39714         (gimple_bind_set_body): Likewise.
39715         (gimple_bind_add_stmt): Likewise.
39716         (gimple_bind_block): Likewise.
39717         (gimple_bind_set_block): Likewise.
39718         (gimple_asm_ninputs): Likewise.
39719         (gimple_asm_noutputs): Likewise.
39720         (gimple_asm_nclobbers): Likewise.
39721         (gimple_asm_nlabels): Likewise.
39722         (gimple_asm_input_op): Likewise.
39723         (gimple_asm_input_op_ptr): Likewise.
39724         (gimple_asm_output_op): Likewise.
39725         (gimple_asm_output_op_ptr): Likewise.
39726         (gimple_asm_set_output_op): Likewise.
39727         (gimple_asm_clobber_op): Likewise.
39728         (gimple_asm_set_clobber_op): Likewise.
39729         (gimple_asm_label_op): Likewise.
39730         (gimple_asm_set_label_op): Likewise.
39731         (gimple_asm_string): Likewise.
39732         (gimple_catch_types): Likewise.
39733         (gimple_catch_types_ptr): Likewise.
39734         (gimple_catch_handler_ptr): Likewise.
39735         (gimple_catch_set_types): Likewise.
39736         (gimple_catch_set_handler): Likewise.
39737         (gimple_eh_filter_types): Likewise.
39738         (gimple_eh_filter_types_ptr): Likewise.
39739         (gimple_eh_filter_failure_ptr): Likewise.
39740         (gimple_eh_filter_set_types): Likewise.
39741         (gimple_eh_filter_set_failure): Likewise.
39742         (gimple_eh_must_not_throw_fndecl): Likewise.
39743         (gimple_eh_must_not_throw_set_fndecl): Likewise.
39744         (gimple_eh_else_n_body_ptr): Likewise.
39745         (gimple_eh_else_e_body_ptr): Likewise.
39746         (gimple_eh_else_set_n_body): Likewise.
39747         (gimple_eh_else_set_e_body): Likewise.
39748         (gimple_try_eval_ptr): Likewise.
39749         (gimple_try_cleanup_ptr): Likewise.
39750         (gimple_try_set_eval): Likewise.
39751         (gimple_try_set_cleanup): Likewise.
39752         (gimple_wce_cleanup_ptr): Likewise.
39753         (gimple_wce_set_cleanup): Likewise.
39754         (gimple_phi_capacity): Likewise.
39755         (gimple_phi_num_args): Likewise.
39756         (gimple_phi_result): Likewise.
39757         (gimple_phi_result_ptr): Likewise.
39758         (gimple_phi_set_result): Likewise.
39759         (gimple_phi_arg): Likewise.
39760         (gimple_phi_set_arg): Likewise.
39761         (gimple_resx_region): Likewise.
39762         (gimple_resx_set_region): Likewise.
39763         (gimple_eh_dispatch_region): Likewise.
39764         (gimple_eh_dispatch_set_region): Likewise.
39765         (gimple_omp_critical_name): Likewise.
39766         (gimple_omp_critical_name_ptr): Likewise.
39767         (gimple_omp_critical_set_name): Likewise.
39768         (gimple_omp_for_clauses): Likewise.
39769         (gimple_omp_for_clauses_ptr): Likewise.
39770         (gimple_omp_for_set_clauses): Likewise.
39771         (gimple_omp_for_collapse): Likewise.
39772         (gimple_omp_for_index): Likewise.
39773         (gimple_omp_for_index_ptr): Likewise.
39774         (gimple_omp_for_set_index): Likewise.
39775         (gimple_omp_for_initial): Likewise.
39776         (gimple_omp_for_initial_ptr): Likewise.
39777         (gimple_omp_for_set_initial): Likewise.
39778         (gimple_omp_for_final): Likewise.
39779         (gimple_omp_for_final_ptr): Likewise.
39780         (gimple_omp_for_set_final): Likewise.
39781         (gimple_omp_for_incr): Likewise.
39782         (gimple_omp_for_incr_ptr): Likewise.
39783         (gimple_omp_for_set_incr): Likewise.
39784         (gimple_omp_for_pre_body_ptr): Likewise.
39785         (gimple_omp_for_set_pre_body): Likewise.
39786         (gimple_omp_parallel_clauses): Likewise.
39787         (gimple_omp_parallel_clauses_ptr): Likewise.
39788         (gimple_omp_parallel_set_clauses): Likewise.
39789         (gimple_omp_parallel_child_fn): Likewise.
39790         (gimple_omp_parallel_child_fn_ptr): Likewise.
39791         (gimple_omp_parallel_set_child_fn): Likewise.
39792         (gimple_omp_parallel_data_arg): Likewise.
39793         (gimple_omp_parallel_data_arg_ptr): Likewise.
39794         (gimple_omp_parallel_set_data_arg): Likewise.
39795         (gimple_omp_task_clauses): Likewise.
39796         (gimple_omp_task_clauses_ptr): Likewise.
39797         (gimple_omp_task_set_clauses): Likewise.
39798         (gimple_omp_task_child_fn): Likewise.
39799         (gimple_omp_task_child_fn_ptr): Likewise.
39800         (gimple_omp_task_set_child_fn): Likewise.
39801         (gimple_omp_task_data_arg): Likewise.
39802         (gimple_omp_task_data_arg_ptr): Likewise.
39803         (gimple_omp_task_set_data_arg): Likewise.
39804         (gimple_omp_taskreg_clauses): Likewise.
39805         (gimple_omp_taskreg_clauses_ptr): Likewise.
39806         (gimple_omp_taskreg_set_clauses): Likewise.
39807         (gimple_omp_taskreg_child_fn): Likewise.
39808         (gimple_omp_taskreg_child_fn_ptr): Likewise.
39809         (gimple_omp_taskreg_set_child_fn): Likewise.
39810         (gimple_omp_taskreg_data_arg): Likewise.
39811         (gimple_omp_taskreg_data_arg_ptr): Likewise.
39812         (gimple_omp_taskreg_set_data_arg): Likewise.
39813         (gimple_omp_task_copy_fn): Likewise.
39814         (gimple_omp_task_copy_fn_ptr): Likewise.
39815         (gimple_omp_task_set_copy_fn): Likewise.
39816         (gimple_omp_task_arg_size): Likewise.
39817         (gimple_omp_task_arg_size_ptr): Likewise.
39818         (gimple_omp_task_set_arg_size): Likewise.
39819         (gimple_omp_task_arg_align): Likewise.
39820         (gimple_omp_task_arg_align_ptr): Likewise.
39821         (gimple_omp_task_set_arg_align): Likewise.
39822         (gimple_omp_single_clauses): Likewise.
39823         (gimple_omp_single_clauses_ptr): Likewise.
39824         (gimple_omp_single_set_clauses): Likewise.
39825         (gimple_omp_target_clauses): Likewise.
39826         (gimple_omp_target_clauses_ptr): Likewise.
39827         (gimple_omp_target_set_clauses): Likewise.
39828         (gimple_omp_target_child_fn): Likewise.
39829         (gimple_omp_target_child_fn_ptr): Likewise.
39830         (gimple_omp_target_set_child_fn): Likewise.
39831         (gimple_omp_target_data_arg): Likewise.
39832         (gimple_omp_target_data_arg_ptr): Likewise.
39833         (gimple_omp_target_set_data_arg): Likewise.
39834         (gimple_omp_teams_clauses): Likewise.
39835         (gimple_omp_teams_clauses_ptr): Likewise.
39836         (gimple_omp_teams_set_clauses): Likewise.
39837         (gimple_omp_sections_clauses): Likewise.
39838         (gimple_omp_sections_clauses_ptr): Likewise.
39839         (gimple_omp_sections_set_clauses): Likewise.
39840         (gimple_omp_sections_control): Likewise.
39841         (gimple_omp_sections_control_ptr): Likewise.
39842         (gimple_omp_sections_set_control): Likewise.
39843         (gimple_omp_for_set_cond): Likewise.
39844         (gimple_omp_for_cond): Likewise.
39845         (gimple_omp_atomic_store_set_val): Likewise.
39846         (gimple_omp_atomic_store_val): Likewise.
39847         (gimple_omp_atomic_store_val_ptr): Likewise.
39848         (gimple_omp_atomic_load_set_lhs): Likewise.
39849         (gimple_omp_atomic_load_lhs): Likewise.
39850         (gimple_omp_atomic_load_lhs_ptr): Likewise.
39851         (gimple_omp_atomic_load_set_rhs): Likewise.
39852         (gimple_omp_atomic_load_rhs): Likewise.
39853         (gimple_omp_atomic_load_rhs_ptr): Likewise.
39854         (gimple_omp_continue_control_def): Likewise.
39855         (gimple_omp_continue_control_def_ptr): Likewise.
39856         (gimple_omp_continue_set_control_def): Likewise.
39857         (gimple_omp_continue_control_use): Likewise.
39858         (gimple_omp_continue_control_use_ptr): Likewise.
39859         (gimple_omp_continue_set_control_use): Likewise.
39860         (gimple_transaction_body_ptr): Likewise.
39861         (gimple_transaction_label): Likewise.
39862         (gimple_transaction_label_ptr): Likewise.
39863         (gimple_transaction_set_body): Likewise.
39864         (gimple_transaction_set_label): Likewise.
39865
39866         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
39867         * ipa-inline-analysis.c (inline_write_summary): Likewise.
39868         * ipa-ref.c (ipa_record_reference): Likewise.
39869         * ipa-reference.c (analyze_function): Likewise.
39870         (ipa_reference_write_optimization_summary): Likewise.
39871         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
39872         (address_taken_from_non_vtable_p): Likewise.
39873         (comdat_can_be_unshared_p_1): Likewise.
39874         * lto-cgraph.c (lto_output_ref): Likewise.
39875         (add_references): Likewise.
39876         (compute_ltrans_boundary): Likewise.
39877         (output_symtab): Likewise.
39878         (input_ref): Likewise.
39879         (input_cgraph_1): Likewise.
39880         (output_cgraph_opt_summary): Likewise.
39881         * lto-streamer-out.c (lto_output): Likewise.
39882         (output_symbol_p): Likewise.
39883         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
39884         (lsei_start_function_in_partition): Likewise.
39885         (lsei_next_variable_in_partition): Likewise.
39886         (lsei_start_variable_in_partition): Likewise.
39887         * symtab.c (insert_to_assembler_name_hash): Likewise.
39888         (unlink_from_assembler_name_hash): Likewise.
39889         (symtab_unregister_node): Likewise.
39890         (symtab_remove_node): Likewise.
39891         (dump_symtab_node): Likewise.
39892         (verify_symtab_base): Likewise.
39893         (verify_symtab_node): Likewise.
39894         (symtab_make_decl_local): Likewise.
39895         (symtab_alias_ultimate_target): Likewise.
39896         (symtab_resolve_alias): Likewise.
39897         (symtab_get_symbol_partitioning_class): Likewise.
39898         * tree-phinodes.c (allocate_phi_node): Likewise.
39899         (reserve_phi_args_for_new_edge): Likewise.
39900         (remove_phi_args): Likewise.
39901         * varpool.c (varpool_node_for_asm): Likewise.
39902         (varpool_remove_unreferenced_decls): Likewise.
39903
39904 2014-04-23  Jeff Law  <law@redhat.com>
39905
39906         PR tree-optimization/60902
39907         * tree-ssa-threadedge.c
39908         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
39909         invalidate outputs from statements that do not produce useful
39910         outputs for threading.
39911
39912 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
39913
39914         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
39915         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
39916         machine descriptions for Stack Smashing Protector.
39917
39918 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
39919
39920         * aarch64.md (<optab>_rol<mode>3): New pattern.
39921         (<optab>_rolsi3_uxtw): Likewise.
39922         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
39923
39924 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
39925
39926         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
39927         (arm_cortex_a12_tune): Likewise.
39928
39929 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39930
39931         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
39932
39933 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39934
39935         * config/arm/arm.md (arm_rev16si2): New pattern.
39936         (arm_rev16si2_alt): Likewise.
39937         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
39938
39939 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39940
39941         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
39942         (rev16<mode>2_alt): Likewise.
39943         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
39944         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
39945         (aarch_rev16_shleft_mask_imm_p): Likewise.
39946         (aarch_rev16_p_1): Likewise.
39947         (aarch_rev16_p): Likewise.
39948         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
39949         (aarch_rev16_shright_mask_imm_p): Likewise.
39950         (aarch_rev16_shleft_mask_imm_p): Likewise.
39951
39952 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39953
39954         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
39955         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
39956         rev cost.
39957         (cortex_a53_extra_costs): Likewise.
39958         (cortex_a57_extra_costs): Likewise.
39959         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
39960         (cortexa7_extra_costs): Likewise.
39961         (cortexa8_extra_costs): Likewise.
39962         (cortexa12_extra_costs): Likewise.
39963         (cortexa15_extra_costs): Likewise.
39964         (v7m_extra_costs): Likewise.
39965         (arm_new_rtx_costs): Handle BSWAP.
39966
39967 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39968
39969         * config/arm/arm.c (cortexa8_extra_costs): New table.
39970         (arm_cortex_a8_tune): New tuning struct.
39971         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
39972
39973 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39974
39975         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
39976
39977 2014-04-23  Richard Biener  <rguenther@suse.de>
39978
39979         * Makefile.in (OBJS): Remove loop-unswitch.o.
39980         * tree-pass.h (make_pass_rtl_unswitch): Remove.
39981         * passes.def (pass_rtl_unswitch): Likewise.
39982         * loop-init.c (gate_rtl_unswitch): Likewise.
39983         (rtl_unswitch): Likewise.
39984         (pass_data_rtl_unswitch): Likewise.
39985         (pass_rtl_unswitch): Likewise.
39986         (make_pass_rtl_unswitch): Likewise.
39987         * rtl.h (reversed_condition): Likewise.
39988         (compare_and_jump_seq): Likewise.
39989         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
39990         and make static.
39991         * loop-unroll.c (compare_and_jump_seq): Likewise.
39992
39993 2014-04-23  Richard Biener  <rguenther@suse.de>
39994
39995         PR tree-optimization/60903
39996         * tree-ssa-loop-im.c (analyze_memory_references): Remove
39997         commented code block.
39998         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
39999         loop flags to newly created BBs and edges.
40000
40001 2014-04-23  Nick Clifton  <nickc@redhat.com>
40002
40003         * config/msp430/msp430.c (msp430_handle_option): Move function
40004         to msp430-common.c
40005         (msp430_option_override): Simplify mcu and mcpu option handling.
40006         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
40007         support for -mhwmult command line option.
40008         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
40009         -mhwmult command line option.
40010         (msp430_hwmult_enabled): Delete.
40011         (msp43o_output_labelref): Add support for -mhwmult command line option.
40012         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
40013         (umulsidi3): Likewise.
40014         * config/msp430/msp430.opt (mmcu): Add Report attribute.
40015         (mcpu, mlarge, msmall): Likewise.
40016         (mhwmult): New option.
40017         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
40018         prototype.
40019         (msp430_is_f5_mcu): Remove prototype.
40020         (msp430_use_f5_series_hwmult): Add prototype.
40021         * config/msp430/msp430-opts.h: New file.
40022         * common/config/msp430: New directory.
40023         * common/config/msp430/msp430-common.c: New file.
40024         * config.gcc (msp430): Remove target_has_targetm_common.
40025         * doc/invoke.texi: Document -mhwmult command line option.
40026
40027 2014-04-23  Nick Clifton  <nickc@redhat.com>
40028
40029         * config/i386/cygwin.h (ENDFILE_SPEC): Include
40030         default-manifest.o if it can be found in the search path.
40031         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
40032
40033 2014-04-23  Terry Guo  <terry.guo@arm.com>
40034
40035         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
40036
40037 2014-04-23  Richard Biener  <rguenther@suse.de>
40038
40039         PR middle-end/60895
40040         * tree-inline.c (declare_return_variable): Use mark_addressable.
40041
40042 2014-04-23  Richard Biener  <rguenther@suse.de>
40043
40044         PR middle-end/60891
40045         * loop-init.c (loop_optimizer_init): Make sure to apply
40046         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
40047
40048 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
40049
40050         PR sanitizer/60275
40051         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
40052         New options.
40053         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
40054         if flag_sanitize_undefined_trap_on_error.
40055         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
40056         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
40057         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
40058         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
40059         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
40060         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
40061         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
40062         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
40063         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
40064         * ubsan.c (ubsan_instrument_unreachable): Return
40065         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
40066         (ubsan_expand_null_ifn): Emit __builtin_trap ()
40067         if flag_sanitize_undefined_trap_on_error and
40068         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
40069         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
40070         instrument_bool_enum_load): Emit __builtin_trap () if
40071         flag_sanitize_undefined_trap_on_error and
40072         __builtin_handle_*_abort () if !flag_sanitize_recover.
40073         * doc/invoke.texi (-fsanitize-recover,
40074         -fsanitize-undefined-trap-on-error): Document.
40075
40076 2014-04-22  Christian Bruel  <christian.bruel@st.com>
40077
40078         * config/sh/sh.md (mov<mode>): Replace movQIHI.
40079         Force immediates to SImode.
40080
40081 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
40082
40083         * config/nios2/nios2.md (UNSPEC_ROUND): New.
40084         (lroundsfsi2): New.
40085         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
40086         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
40087         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
40088         (nios2_fpu_insn): Add entry for round.
40089         (N2FPU_NO_ERRNO_P): Define.
40090         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
40091         flag_errno_math.
40092         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
40093
40094 2014-04-22  Richard Henderson  <rth@redhat.com>
40095
40096         * config/aarch64/aarch64 (addti3, subti3): New expanders.
40097         (add<GPI>3_compare0): Remove leading * from name.
40098         (add<GPI>3_carryin): Likewise.
40099         (sub<GPI>3_compare0): Likewise.
40100         (sub<GPI>3_carryin): Likewise.
40101         (<su_optab>mulditi3): New expander.
40102         (multi3): New expander.
40103         (madd<GPI>): Remove leading * from name.
40104
40105 2014-04-22  Martin Jambor  <mjambor@suse.cz>
40106
40107         * cgraphclones.c (cgraph_function_versioning): Copy
40108         ipa_transforms_to_apply instead of asserting it is empty.
40109
40110 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
40111
40112         PR target/60868
40113         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
40114         on count_exp to get mode.
40115
40116 2014-04-22  Andrew Pinski  <apinski@cavium.com>
40117
40118         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
40119         Handle TLS for ILP32.
40120         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
40121         (tlsie_small_<mode>): this and handle PTR.
40122         (tlsie_small_sidi): New pattern.
40123         (tlsle_small): Change to an expand to handle ILP32.
40124         (tlsle_small_<mode>): New pattern.
40125         (tlsdesc_small): Rename to ...
40126         (tlsdesc_small_<mode>): this and handle PTR.
40127
40128 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
40129
40130         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
40131
40132 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
40133
40134         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
40135         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
40136         (aarch64_types_signed_poly_qualifiers): Likewise.
40137         (aarch64_types_unsigned_signed_qualifiers): Likewise.
40138         (aarch64_types_poly_signed_qualifiers): Likewise.
40139         (TYPES_REINTERP_SS): Type macro added.
40140         (TYPES_REINTERP_SU): Likewise.
40141         (TYPES_REINTERP_SP): Likewise.
40142         (TYPES_REINTERP_US): Likewise.
40143         (TYPES_REINTERP_PS): Likewise.
40144         (aarch64_fold_builtin): New expression folding added.
40145         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
40146         Declarations removed.
40147         (REINTERP_SS): Declarations added.
40148         (REINTERP_US): Likewise.
40149         (REINTERP_PS): Likewise.
40150         (REINTERP_SU): Likewise.
40151         (REINTERP_SP): Likewise.
40152         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
40153         (vreinterpretq_p8_f64): Likewise.
40154         (vreinterpret_p16_f64): Likewise.
40155         (vreinterpretq_p16_f64): Likewise.
40156         (vreinterpret_f32_f64): Likewise.
40157         (vreinterpretq_f32_f64): Likewise.
40158         (vreinterpret_f64_f32): Likewise.
40159         (vreinterpret_f64_p8): Likewise.
40160         (vreinterpret_f64_p16): Likewise.
40161         (vreinterpret_f64_s8): Likewise.
40162         (vreinterpret_f64_s16): Likewise.
40163         (vreinterpret_f64_s32): Likewise.
40164         (vreinterpret_f64_s64): Likewise.
40165         (vreinterpret_f64_u8): Likewise.
40166         (vreinterpret_f64_u16): Likewise.
40167         (vreinterpret_f64_u32): Likewise.
40168         (vreinterpret_f64_u64): Likewise.
40169         (vreinterpretq_f64_f32): Likewise.
40170         (vreinterpretq_f64_p8): Likewise.
40171         (vreinterpretq_f64_p16): Likewise.
40172         (vreinterpretq_f64_s8): Likewise.
40173         (vreinterpretq_f64_s16): Likewise.
40174         (vreinterpretq_f64_s32): Likewise.
40175         (vreinterpretq_f64_s64): Likewise.
40176         (vreinterpretq_f64_u8): Likewise.
40177         (vreinterpretq_f64_u16): Likewise.
40178         (vreinterpretq_f64_u32): Likewise.
40179         (vreinterpretq_f64_u64): Likewise.
40180         (vreinterpret_s64_f64): Likewise.
40181         (vreinterpretq_s64_f64): Likewise.
40182         (vreinterpret_u64_f64): Likewise.
40183         (vreinterpretq_u64_f64): Likewise.
40184         (vreinterpret_s8_f64): Likewise.
40185         (vreinterpretq_s8_f64): Likewise.
40186         (vreinterpret_s16_f64): Likewise.
40187         (vreinterpretq_s16_f64): Likewise.
40188         (vreinterpret_s32_f64): Likewise.
40189         (vreinterpretq_s32_f64): Likewise.
40190         (vreinterpret_u8_f64): Likewise.
40191         (vreinterpretq_u8_f64): Likewise.
40192         (vreinterpret_u16_f64): Likewise.
40193         (vreinterpretq_u16_f64): Likewise.
40194         (vreinterpret_u32_f64): Likewise.
40195         (vreinterpretq_u32_f64): Likewise.
40196
40197 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
40198
40199         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
40200         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
40201         (vreinterpret_p8_s8): Likewise.
40202         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
40203         (vreinterpret_p8_s16): Likewise.
40204         (vreinterpret_p8_s32): Likewise.
40205         (vreinterpret_p8_s64): Likewise.
40206         (vreinterpret_p8_f32): Likewise.
40207         (vreinterpret_p8_u8): Likewise.
40208         (vreinterpret_p8_u16): Likewise.
40209         (vreinterpret_p8_u32): Likewise.
40210         (vreinterpret_p8_u64): Likewise.
40211         (vreinterpret_p8_p16): Likewise.
40212         (vreinterpretq_p8_s8): Likewise.
40213         (vreinterpretq_p8_s16): Likewise.
40214         (vreinterpretq_p8_s32): Likewise.
40215         (vreinterpretq_p8_s64): Likewise.
40216         (vreinterpretq_p8_f32): Likewise.
40217         (vreinterpretq_p8_u8): Likewise.
40218         (vreinterpretq_p8_u16): Likewise.
40219         (vreinterpretq_p8_u32): Likewise.
40220         (vreinterpretq_p8_u64): Likewise.
40221         (vreinterpretq_p8_p16): Likewise.
40222         (vreinterpret_p16_s8): Likewise.
40223         (vreinterpret_p16_s16): Likewise.
40224         (vreinterpret_p16_s32): Likewise.
40225         (vreinterpret_p16_s64): Likewise.
40226         (vreinterpret_p16_f32): Likewise.
40227         (vreinterpret_p16_u8): Likewise.
40228         (vreinterpret_p16_u16): Likewise.
40229         (vreinterpret_p16_u32): Likewise.
40230         (vreinterpret_p16_u64): Likewise.
40231         (vreinterpret_p16_p8): Likewise.
40232         (vreinterpretq_p16_s8): Likewise.
40233         (vreinterpretq_p16_s16): Likewise.
40234         (vreinterpretq_p16_s32): Likewise.
40235         (vreinterpretq_p16_s64): Likewise.
40236         (vreinterpretq_p16_f32): Likewise.
40237         (vreinterpretq_p16_u8): Likewise.
40238         (vreinterpretq_p16_u16): Likewise.
40239         (vreinterpretq_p16_u32): Likewise.
40240         (vreinterpretq_p16_u64): Likewise.
40241         (vreinterpretq_p16_p8): Likewise.
40242         (vreinterpret_f32_s8): Likewise.
40243         (vreinterpret_f32_s16): Likewise.
40244         (vreinterpret_f32_s32): Likewise.
40245         (vreinterpret_f32_s64): Likewise.
40246         (vreinterpret_f32_u8): Likewise.
40247         (vreinterpret_f32_u16): Likewise.
40248         (vreinterpret_f32_u32): Likewise.
40249         (vreinterpret_f32_u64): Likewise.
40250         (vreinterpret_f32_p8): Likewise.
40251         (vreinterpret_f32_p16): Likewise.
40252         (vreinterpretq_f32_s8): Likewise.
40253         (vreinterpretq_f32_s16): Likewise.
40254         (vreinterpretq_f32_s32): Likewise.
40255         (vreinterpretq_f32_s64): Likewise.
40256         (vreinterpretq_f32_u8): Likewise.
40257         (vreinterpretq_f32_u16): Likewise.
40258         (vreinterpretq_f32_u32): Likewise.
40259         (vreinterpretq_f32_u64): Likewise.
40260         (vreinterpretq_f32_p8): Likewise.
40261         (vreinterpretq_f32_p16): Likewise.
40262         (vreinterpret_s64_s8): Likewise.
40263         (vreinterpret_s64_s16): Likewise.
40264         (vreinterpret_s64_s32): Likewise.
40265         (vreinterpret_s64_f32): Likewise.
40266         (vreinterpret_s64_u8): Likewise.
40267         (vreinterpret_s64_u16): Likewise.
40268         (vreinterpret_s64_u32): Likewise.
40269         (vreinterpret_s64_u64): Likewise.
40270         (vreinterpret_s64_p8): Likewise.
40271         (vreinterpret_s64_p16): Likewise.
40272         (vreinterpretq_s64_s8): Likewise.
40273         (vreinterpretq_s64_s16): Likewise.
40274         (vreinterpretq_s64_s32): Likewise.
40275         (vreinterpretq_s64_f32): Likewise.
40276         (vreinterpretq_s64_u8): Likewise.
40277         (vreinterpretq_s64_u16): Likewise.
40278         (vreinterpretq_s64_u32): Likewise.
40279         (vreinterpretq_s64_u64): Likewise.
40280         (vreinterpretq_s64_p8): Likewise.
40281         (vreinterpretq_s64_p16): Likewise.
40282         (vreinterpret_u64_s8): Likewise.
40283         (vreinterpret_u64_s16): Likewise.
40284         (vreinterpret_u64_s32): Likewise.
40285         (vreinterpret_u64_s64): Likewise.
40286         (vreinterpret_u64_f32): Likewise.
40287         (vreinterpret_u64_u8): Likewise.
40288         (vreinterpret_u64_u16): Likewise.
40289         (vreinterpret_u64_u32): Likewise.
40290         (vreinterpret_u64_p8): Likewise.
40291         (vreinterpret_u64_p16): Likewise.
40292         (vreinterpretq_u64_s8): Likewise.
40293         (vreinterpretq_u64_s16): Likewise.
40294         (vreinterpretq_u64_s32): Likewise.
40295         (vreinterpretq_u64_s64): Likewise.
40296         (vreinterpretq_u64_f32): Likewise.
40297         (vreinterpretq_u64_u8): Likewise.
40298         (vreinterpretq_u64_u16): Likewise.
40299         (vreinterpretq_u64_u32): Likewise.
40300         (vreinterpretq_u64_p8): Likewise.
40301         (vreinterpretq_u64_p16): Likewise.
40302         (vreinterpret_s8_s16): Likewise.
40303         (vreinterpret_s8_s32): Likewise.
40304         (vreinterpret_s8_s64): Likewise.
40305         (vreinterpret_s8_f32): Likewise.
40306         (vreinterpret_s8_u8): Likewise.
40307         (vreinterpret_s8_u16): Likewise.
40308         (vreinterpret_s8_u32): Likewise.
40309         (vreinterpret_s8_u64): Likewise.
40310         (vreinterpret_s8_p8): Likewise.
40311         (vreinterpret_s8_p16): Likewise.
40312         (vreinterpretq_s8_s16): Likewise.
40313         (vreinterpretq_s8_s32): Likewise.
40314         (vreinterpretq_s8_s64): Likewise.
40315         (vreinterpretq_s8_f32): Likewise.
40316         (vreinterpretq_s8_u8): Likewise.
40317         (vreinterpretq_s8_u16): Likewise.
40318         (vreinterpretq_s8_u32): Likewise.
40319         (vreinterpretq_s8_u64): Likewise.
40320         (vreinterpretq_s8_p8): Likewise.
40321         (vreinterpretq_s8_p16): Likewise.
40322         (vreinterpret_s16_s8): Likewise.
40323         (vreinterpret_s16_s32): Likewise.
40324         (vreinterpret_s16_s64): Likewise.
40325         (vreinterpret_s16_f32): Likewise.
40326         (vreinterpret_s16_u8): Likewise.
40327         (vreinterpret_s16_u16): Likewise.
40328         (vreinterpret_s16_u32): Likewise.
40329         (vreinterpret_s16_u64): Likewise.
40330         (vreinterpret_s16_p8): Likewise.
40331         (vreinterpret_s16_p16): Likewise.
40332         (vreinterpretq_s16_s8): Likewise.
40333         (vreinterpretq_s16_s32): Likewise.
40334         (vreinterpretq_s16_s64): Likewise.
40335         (vreinterpretq_s16_f32): Likewise.
40336         (vreinterpretq_s16_u8): Likewise.
40337         (vreinterpretq_s16_u16): Likewise.
40338         (vreinterpretq_s16_u32): Likewise.
40339         (vreinterpretq_s16_u64): Likewise.
40340         (vreinterpretq_s16_p8): Likewise.
40341         (vreinterpretq_s16_p16): Likewise.
40342         (vreinterpret_s32_s8): Likewise.
40343         (vreinterpret_s32_s16): Likewise.
40344         (vreinterpret_s32_s64): Likewise.
40345         (vreinterpret_s32_f32): Likewise.
40346         (vreinterpret_s32_u8): Likewise.
40347         (vreinterpret_s32_u16): Likewise.
40348         (vreinterpret_s32_u32): Likewise.
40349         (vreinterpret_s32_u64): Likewise.
40350         (vreinterpret_s32_p8): Likewise.
40351         (vreinterpret_s32_p16): Likewise.
40352         (vreinterpretq_s32_s8): Likewise.
40353         (vreinterpretq_s32_s16): Likewise.
40354         (vreinterpretq_s32_s64): Likewise.
40355         (vreinterpretq_s32_f32): Likewise.
40356         (vreinterpretq_s32_u8): Likewise.
40357         (vreinterpretq_s32_u16): Likewise.
40358         (vreinterpretq_s32_u32): Likewise.
40359         (vreinterpretq_s32_u64): Likewise.
40360         (vreinterpretq_s32_p8): Likewise.
40361         (vreinterpretq_s32_p16): Likewise.
40362         (vreinterpret_u8_s8): Likewise.
40363         (vreinterpret_u8_s16): Likewise.
40364         (vreinterpret_u8_s32): Likewise.
40365         (vreinterpret_u8_s64): Likewise.
40366         (vreinterpret_u8_f32): Likewise.
40367         (vreinterpret_u8_u16): Likewise.
40368         (vreinterpret_u8_u32): Likewise.
40369         (vreinterpret_u8_u64): Likewise.
40370         (vreinterpret_u8_p8): Likewise.
40371         (vreinterpret_u8_p16): Likewise.
40372         (vreinterpretq_u8_s8): Likewise.
40373         (vreinterpretq_u8_s16): Likewise.
40374         (vreinterpretq_u8_s32): Likewise.
40375         (vreinterpretq_u8_s64): Likewise.
40376         (vreinterpretq_u8_f32): Likewise.
40377         (vreinterpretq_u8_u16): Likewise.
40378         (vreinterpretq_u8_u32): Likewise.
40379         (vreinterpretq_u8_u64): Likewise.
40380         (vreinterpretq_u8_p8): Likewise.
40381         (vreinterpretq_u8_p16): Likewise.
40382         (vreinterpret_u16_s8): Likewise.
40383         (vreinterpret_u16_s16): Likewise.
40384         (vreinterpret_u16_s32): Likewise.
40385         (vreinterpret_u16_s64): Likewise.
40386         (vreinterpret_u16_f32): Likewise.
40387         (vreinterpret_u16_u8): Likewise.
40388         (vreinterpret_u16_u32): Likewise.
40389         (vreinterpret_u16_u64): Likewise.
40390         (vreinterpret_u16_p8): Likewise.
40391         (vreinterpret_u16_p16): Likewise.
40392         (vreinterpretq_u16_s8): Likewise.
40393         (vreinterpretq_u16_s16): Likewise.
40394         (vreinterpretq_u16_s32): Likewise.
40395         (vreinterpretq_u16_s64): Likewise.
40396         (vreinterpretq_u16_f32): Likewise.
40397         (vreinterpretq_u16_u8): Likewise.
40398         (vreinterpretq_u16_u32): Likewise.
40399         (vreinterpretq_u16_u64): Likewise.
40400         (vreinterpretq_u16_p8): Likewise.
40401         (vreinterpretq_u16_p16): Likewise.
40402         (vreinterpret_u32_s8): Likewise.
40403         (vreinterpret_u32_s16): Likewise.
40404         (vreinterpret_u32_s32): Likewise.
40405         (vreinterpret_u32_s64): Likewise.
40406         (vreinterpret_u32_f32): Likewise.
40407         (vreinterpret_u32_u8): Likewise.
40408         (vreinterpret_u32_u16): Likewise.
40409         (vreinterpret_u32_u64): Likewise.
40410         (vreinterpret_u32_p8): Likewise.
40411         (vreinterpret_u32_p16): Likewise.
40412         (vreinterpretq_u32_s8): Likewise.
40413         (vreinterpretq_u32_s16): Likewise.
40414         (vreinterpretq_u32_s32): Likewise.
40415         (vreinterpretq_u32_s64): Likewise.
40416         (vreinterpretq_u32_f32): Likewise.
40417         (vreinterpretq_u32_u8): Likewise.
40418         (vreinterpretq_u32_u16): Likewise.
40419         (vreinterpretq_u32_u64): Likewise.
40420         (vreinterpretq_u32_p8): Likewise.
40421         (vreinterpretq_u32_p16): Likewise.
40422
40423 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
40424
40425         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
40426         Pattern extended.
40427         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
40428         (sqabs): Likewise.
40429         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
40430         (vqnegd_s64): Likewise.
40431         (vqabs_s64): Likewise.
40432         (vqabsd_s64): Likewise.
40433
40434 2014-04-22  Richard Henderson  <rth@redhat.com>
40435
40436         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
40437         computation to the top of the loop.
40438
40439 2014-04-22  Renlin  <renlin.li@arm.com>
40440             Jiong Wang  <jiong.wang@arm.com>
40441
40442         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
40443         * config/aarch64/aarch64.c (aarch64_layout_frame)
40444         (aarch64_initial_elimination_offset): Likewise.
40445
40446 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
40447
40448         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
40449         Fix indentation.
40450
40451 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
40452
40453         * machmode.h (bitwise_mode_for_mode): Declare.
40454         * stor-layout.h (bitwise_type_for_mode): Likewise.
40455         * stor-layout.c (bitwise_mode_for_mode): New function.
40456         (bitwise_type_for_mode): Likewise.
40457         * builtins.c (fold_builtin_memory_op): Use it instead of
40458         int_mode_for_mode and build_nonstandard_integer_type.
40459
40460 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40461
40462         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
40463         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
40464         (*-*-solaris2*): Simplify.
40465         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
40466         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
40467         *-*-solaris2.9* handling.
40468
40469         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
40470         as bug.
40471         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
40472         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
40473         handling, simplify.
40474         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
40475         * configure: Regenerate.
40476
40477         * config/i386/sol2-9.h: Remove.
40478
40479         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
40480         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
40481         Remove Solaris 9 references.
40482
40483 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
40484
40485         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
40486         (floatuns<GPI:mode><GPF:mode>2): Remove.
40487         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
40488         and floatuns conversions.
40489         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
40490         and floatuns conversions.
40491         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
40492         (w1,w2): New mode attributes for inequal width conversions.
40493
40494 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
40495
40496         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
40497         the output asm format.
40498
40499 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
40500
40501         * config/aarch64/aarch64-simd.md
40502         (aarch64_cm<optab>di): Always split.
40503         (*aarch64_cm<optab>di): New.
40504         (aarch64_cmtstdi): Always split.
40505         (*aarch64_cmtstdi): New.
40506
40507 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
40508
40509         PR tree-optimization/60823
40510         * omp-low.c (ipa_simd_modify_function_body): Go through
40511         all SSA_NAMEs and for those refering to vector arguments
40512         which are going to be replaced adjust SSA_NAME_VAR and,
40513         if it is a default definition, change it into a non-default
40514         definition assigned at the beginning of function from new_decl.
40515         (ipa_simd_modify_stmt_ops): Rewritten.
40516         * tree-dfa.c (set_ssa_default_def): When removing default def,
40517         check for NULL loc instead of NULL *loc.
40518
40519 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
40520
40521         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
40522         restrictions on core registers for DImode values in Thumb2.
40523
40524 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
40525
40526         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
40527         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
40528
40529 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
40530
40531         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
40532         (*iordi_notzesidi_di): Likewise.
40533         (*iordi_notsesidi_di): Likewise.
40534
40535 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
40536
40537         * config/arm/arm-protos.h (tune_params): New struct members.
40538         * config/arm/arm.c: Initialise tune_params per processor.
40539         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
40540         for speed, based on new tune_params.
40541
40542 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
40543
40544         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
40545         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
40546         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
40547         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
40548         * config/aarch64/arm_neon.h (vrnd_f64): Added.
40549         (vrnda_f64): Likewise.
40550         (vrndi_f64): Likewise.
40551         (vrndm_f64): Likewise.
40552         (vrndn_f64): Likewise.
40553         (vrndp_f64): Likewise.
40554         (vrndx_f64): Likewise.
40555
40556 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
40557
40558         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
40559         GET_MODE_SIZE argument is enum machine_mode.
40560
40561 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
40562
40563         PR target/60910
40564         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
40565         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
40566
40567 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
40568
40569         PR middle-end/60281
40570         * asan.c (asan_emit_stack_protection): Force the base to align to
40571         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
40572         appropriate bits if STRICT_ALIGNMENT.
40573         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
40574         when asan is on.
40575         (expand_used_vars): Leave a space in the stack frame for alignment
40576         if STRICT_ALIGNMENT.
40577
40578 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
40579
40580         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
40581         than a gimple.
40582         (gimple_store_p): Likewise.
40583         (gimple_assign_load_p): Likewise.
40584         (gimple_assign_cast_p): Likewise.
40585         (gimple_clobber_p): Likewise.
40586
40587         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
40588         rather than a gimple.
40589         (gimple_assign_cast_p): Likewise.
40590
40591 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
40592
40593         PR target/60735
40594         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
40595         If mode is DDmode and TARGET_E500_DOUBLE allow move.
40596
40597         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
40598         more debug information for E500 if -mdebug=reg.
40599
40600 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
40601
40602         PR target/60909
40603         * config/i386/i386.c (ix86_expand_builtin)
40604         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
40605         register for target RTX.
40606         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
40607
40608 2014-04-18  Cong Hou  <congh@google.com>
40609
40610         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
40611         the widen-mult pattern by handling two operands with different sizes,
40612         and operands whose size is smaller than half of the result type.
40613
40614 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
40615
40616         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
40617         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
40618         (do_estimate_edge_time): Compute it.
40619         * ipa-inline.c (want_inline_small_function_p): Bypass
40620         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
40621
40622 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
40623
40624         * ipa-inline.c (spec_rem): New static variable.
40625         (dump_overall_stats): New function.
40626         (dump_inline_stats): New function.
40627
40628 2014-04-18  Richard Henderson  <rth@redhat.com>
40629
40630         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
40631         to GET_MODE_SIZE, not a reg_class_t.
40632
40633 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40634
40635         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
40636         (vsx_xxmrglw_<mode>): Likewise.
40637
40638 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
40639
40640         PR target/60876
40641         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
40642         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
40643         (rs6000_init_hard_regno_mode_ok): Likewise.
40644
40645 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
40646
40647         * ipa-inline.c (inline_small_functions): Account only non-cold
40648         functions.
40649         * doc/invoke.texi (inline-unit-growth): Update documentation.
40650
40651 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
40652
40653         * config/rs6000/rs6000.md (addti3, subti3): New.
40654
40655 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
40656
40657         PR target/60863
40658         * config/i386/i386.c (ix86_expand_clear): Remove outdated
40659         comment.  Check optimize_insn_for_size_p instead of
40660         optimize_insn_for_speed_p.
40661
40662 2014-04-17  Martin Jambor  <mjambor@suse.cz>
40663
40664         * gimple-iterator.c (gsi_start_edge): New function.
40665         * gimple-iterator.h (gsi_start_edge): Declare.
40666         * tree-sra.c (single_non_eh_succ): New function.
40667         (disqualify_ops_if_throwing_stmt): Renamed to
40668         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
40669         having one non-EH successor BB.
40670         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
40671         generate loads into replacements.
40672         (sra_modify_assign): Likewise and and also use the simple path for
40673         such statements.
40674         (sra_modify_function_body): Commit statements on edges.
40675
40676 2014-04-17  Richard Biener  <rguenther@suse.de>
40677
40678         PR middle-end/60849
40679         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
40680         comparison results and add clarifying comment.
40681
40682 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
40683
40684         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
40685         (blank_mode): Initialize it.
40686         (emit_mode_size_inline, emit_mode_nunits_inline,
40687         emit_mode_inner_inline): New functions.
40688         (emit_insn_modes_h): Call them and surround their output with
40689         #if GCC_VERSION >= 4001 ... #endif.
40690         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
40691         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
40692         mode_* arrays if the argument is __builtin_constant_p.
40693         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
40694         is enum machine_mode.
40695
40696 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
40697
40698         * passes.c (opt_pass::execute): Adjust.
40699         (pass_manager::execute_pass_mode_switching): Likewise.
40700         (early_local_passes::execute): Likewise.
40701         (execute_one_pass): Pass cfun to the pass's execute method.
40702         * tree-pass.h (opt_pass::execute): Add function * argument.
40703         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
40704         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
40705         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
40706         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
40707         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
40708         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
40709         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
40710         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
40711         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
40712         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
40713         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
40714         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
40715         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
40716         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
40717         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
40718         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
40719         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
40720         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
40721         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
40722         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
40723         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
40724         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
40725         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
40726         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
40727         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
40728         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
40729         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
40730         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
40731         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
40732         Adjust.
40733
40734 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
40735
40736         * passes.c (opt_pass::gate): Take function * argument.
40737         (gate_all_early_local_passes): Merge into
40738         (early_local_passes::gate): this.
40739         (gate_all_early_optimizations): Merge into
40740         (all_early_optimizations::gate): this.
40741         (gate_all_optimizations): Mege into
40742         (all_optimizations::gate): this.
40743         (gate_all_optimizations_g): Merge into
40744         (all_optimizations_g::gate): this.
40745         (gate_rest_of_compilation): Mege into
40746         (rest_of_compilation::gate): this.
40747         (gate_postreload): Merge into
40748         (postreload::gate): this.
40749         (dump_one_pass): Pass cfun to the pass's gate method.
40750         (execute_ipa_summary_passes): Likewise.
40751         (execute_one_pass): Likewise.
40752         (ipa_write_summaries_2): Likewise.
40753         (ipa_write_optimization_summaries_1): Likewise.
40754         (ipa_read_summaries_1): Likewise.
40755         (ipa_read_optimization_summaries_1): Likewise.
40756         (execute_ipa_stmt_fixups): Likewise.
40757         * tree-pass.h (opt_pass::gate): Add function * argument.
40758         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
40759         combine-stack-adj.c, combine.c, compare-elim.c,
40760         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
40761         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
40762         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
40763         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
40764         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
40765         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
40766         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
40767         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
40768         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
40769         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
40770         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
40771         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
40772         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
40773         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
40774         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
40775         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
40776         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
40777         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
40778         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
40779         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
40780         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
40781         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
40782         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
40783         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
40784         var-tracking.c, vtable-verify.c, web.c: Adjust.
40785
40786 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
40787
40788         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
40789         * configure: Regenerate.
40790
40791 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
40792
40793         * passes.c (dump_one_pass): don't check pass->has_gate.
40794         (execute_ipa_summary_passes): Likewise.
40795         (execute_one_pass): Likewise.
40796         (ipa_write_summaries_2): Likewise.
40797         (ipa_write_optimization_summaries_1): Likewise.
40798         (ipa_read_optimization_summaries_1): Likewise.
40799         (execute_ipa_stmt_fixups): Likewise.
40800         * tree-pass.h (pass_data::has_gate): Remove.
40801         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
40802         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
40803         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
40804         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
40805         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
40806         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
40807         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
40808         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
40809         gimple-low.c, gimple-ssa-isolate-paths.c,
40810         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
40811         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
40812         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
40813         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
40814         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
40815         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
40816         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
40817         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
40818         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
40819         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
40820         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
40821         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
40822         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
40823         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
40824         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
40825         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
40826         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
40827         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
40828         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
40829         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
40830         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
40831         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
40832         Adjust.
40833
40834 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
40835
40836         * pass_manager.h (pass_manager::register_dump_files_1): Remove
40837         declaration.
40838         * passes.c (pass_manager::register_dump_files_1): Merge into
40839         (pass_manager::register_dump_files): this, and remove its handling of
40840         properties since the pass always has the properties anyway.
40841         (pass_manager::pass_manager): Adjust.
40842
40843 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
40844
40845         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
40846         * passes.c (pass_manager::register_dump_files_1): Remove dead code
40847         dealing with properties.
40848         (pass_manager::register_dump_files): Adjust.
40849
40850 2014-03-20  Mark Wielaard  <mjw@redhat.com>
40851
40852         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
40853         then represent the bound as normal constant value.
40854
40855 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
40856
40857         PR target/60847
40858         Forward port from 4.8 branch
40859         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
40860
40861         * config/i386/bmiintrin.h (_blsi_u32): New.
40862         (_blsi_u64): Ditto.
40863         (_blsr_u32): Ditto.
40864         (_blsr_u64): Ditto.
40865         (_blsmsk_u32): Ditto.
40866         (_blsmsk_u64): Ditto.
40867         (_tzcnt_u32): Ditto.
40868         (_tzcnt_u64): Ditto.
40869
40870 2014-04-17  Kito Cheng  <kito@0xlab.org>
40871
40872         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
40873
40874 2014-04-17  Richard Biener  <rguenther@suse.de>
40875
40876         PR middle-end/60849
40877         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
40878         boolean results for comparisons.
40879
40880 2014-04-17  Richard Biener  <rguenther@suse.de>
40881
40882         PR tree-optimization/60836
40883         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
40884         initial PHI args to be gimple values.
40885
40886 2014-04-17  Richard Biener  <rguenther@suse.de>
40887
40888         PR tree-optimization/60841
40889         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
40890         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
40891         of stmts to SLP build.
40892         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
40893         (vect_analyze_slp): Likewise.
40894         (vect_analyze_slp_instance): Likewise.
40895         (vect_build_slp_tree): Limit overall SLP tree growth.
40896         * tree-vectorizer.h (vect_analyze_data_refs,
40897         vect_analyze_slp): Adjust prototypes.
40898
40899 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
40900
40901         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
40902         Silvermont.
40903
40904 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
40905
40906         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
40907         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
40908         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
40909         for TARGET_SLOW_PSHUFB
40910
40911 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
40912
40913         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
40914         * config/i386/i386.c (intel_cost): Ditto.
40915
40916 2014-04-17  Joey Ye  <joey.ye@arm.com>
40917
40918         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
40919
40920 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
40921
40922         * opts.c (common_handle_option): Disable -fipa-reference coorectly
40923         with -fuse-profile.
40924
40925 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
40926
40927         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
40928         (type_all_derivations_known_p): New predicate.
40929         (type_all_ctors_visible_p): New predicate.
40930         (type_possibly_instantiated_p): New predicate.
40931         (get_odr_type): Compute all_derivations_known.
40932         (dump_odr_type): Dump the flag.
40933         (maybe_record_type): Cleanup.
40934         (record_target_from_binfo): Add bases_to_consider array;
40935         record bases for types w/o instances and skip CXX destructor.
40936         (possible_polymorphic_call_targets_1): Add bases_to_consider
40937         and consider_construction parameters; check if type may have instance.
40938         (get_polymorphic_call_info): Set maybe_in_construction to true
40939         when we know nothing.
40940         (record_targets_from_bases): Skip CXX destructors; they are
40941         never called for types in construction.
40942         (possible_polymorphic_call_targets): Do not record target when
40943         type may not have instance.
40944
40945 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
40946
40947         PR ipa/60854
40948         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
40949         external aliases alive, too.
40950
40951 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
40952
40953         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
40954         definition.
40955
40956 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
40957
40958         * final.c (compute_alignments): Do not apply loop alignment to a block
40959         falling through to the exit.
40960
40961 2014-04-16  Catherine Moore  <clm@codesourcery.com>
40962
40963         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
40964         Adjust constraints for microMIPS store patterns.
40965
40966 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
40967
40968         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
40969
40970 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
40971
40972         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
40973         (append_use): Run at -O0.
40974         (append_vdef): Likewise.
40975         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
40976         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
40977
40978 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
40979
40980         PR tree-optimization/60844
40981         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
40982         (propagate_op_to_single_use, remove_visited_stmt_chain,
40983         linearize_expr, repropagate_negates, reassociate_bb): Use it
40984         instead of gsi_remove.
40985
40986 2014-04-16  Martin Jambor  <mjambor@suse.cz>
40987
40988         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
40989         ipa_transforms_to_apply.
40990         (cgraph_function_versioning): Assert that old_node has empty
40991         ipa_transforms_to_apply.
40992         * trans-mem.c (ipa_tm_create_version): Likewise.
40993         * tree-inline.c (tree_function_versioning): Do not duplicate
40994         ipa_transforms_to_apply.
40995
40996 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40997
40998         PR target/60817
40999         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
41000         x86_64-*-* cases.
41001         Pass necessary as flags on 64-bit Solaris/x86.
41002         Use lowercase relocs for x86_64-*-*.
41003         * configure: Regenerate.
41004
41005 2014-04-15  Jan Hubicka  <jh@suse.cz>
41006
41007         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
41008         (maybe_record_node, likely_target_p): Use it.
41009
41010 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41011
41012         PR target/60839
41013         Revert following patch
41014
41015         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
41016
41017         PR target/60735
41018         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
41019         software floating point or no floating point registers, do not
41020         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
41021         in GPRs that occurs after we tested for GPRs that would never be
41022         true.
41023
41024         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
41025         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
41026         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
41027         specifically allow DDmode, since that does not use the SPE SIMD
41028         instructions.
41029
41030 2014-03-21  Mark Wielaard  <mjw@redhat.com>
41031
41032         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
41033         as unsigned or int depending on type and value used.
41034
41035 2014-04-15  Richard Biener  <rguenther@suse.de>
41036
41037         PR rtl-optimization/56965
41038         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
41039         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
41040         ... here.
41041         * alias.c (true_dependence_1): Do not call
41042         nonoverlapping_component_refs_p.
41043         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
41044         nonoverlapping_component_refs_p.
41045         (indirect_refs_may_alias_p): Likewise.
41046
41047 2014-04-15  Teresa Johnson  <tejohnson@google.com>
41048
41049         * cfg.c (dump_bb_info): Fix flags check.
41050         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
41051
41052 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41053
41054         PR rtl-optimization/60663
41055         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
41056         avoid 0 cost.
41057
41058 2014-04-15  Richard Biener  <rguenther@suse.de>
41059
41060         * lto-streamer.h (LTO_major_version): Bump to 4.
41061
41062 2014-04-15  Richard Biener  <rguenther@suse.de>
41063
41064         * common.opt (lto_partition_model): New enum.
41065         (flto-partition=): Merge separate options with a single with argument,
41066         add -flto-partition=one support.
41067         * flag-types.h (enum lto_partition_model): Declare.
41068         * opts.c (finish_options): Remove duplicate -flto-partition=
41069         option check.
41070         * lto-wrapper.c (run_gcc): Adjust.
41071
41072 2014-04-15  Richard Biener  <rguenther@suse.de>
41073
41074         * alias.c (ncr_compar): New function.
41075         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
41076
41077 2014-04-15  Richard Biener  <rguenther@suse.de>
41078
41079         * alias.c (record_component_aliases): Do not walk BINFOs.
41080
41081 2014-04-15  Richard Biener  <rguenther@suse.de>
41082
41083         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
41084         Add struct function argument and adjust.
41085         (find_func_aliases_for_call): Likewise.
41086         (find_func_aliases): Likewise.
41087         (find_func_clobbers): Likewise.
41088         (intra_create_variable_infos): Likewise.
41089         (compute_points_to_sets): Likewise.
41090         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
41091
41092 2014-04-15  Richard Biener  <rguenther@suse.de>
41093
41094         * tree.c (iterative_hash_expr): Use enum tree_code_class
41095         to store TREE_CODE_CLASS.
41096         (tree_block): Likewise.
41097         (tree_set_block): Likewise.
41098         * tree.h (fold_build_pointer_plus_loc): Use
41099         convert_to_ptrofftype_loc.
41100
41101 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
41102
41103         PR plugins/59335
41104         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
41105         added in 4.9.
41106
41107 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
41108
41109         * cfgloop.h (struct loop): Move force_vectorize down.
41110         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
41111         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
41112         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
41113         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
41114         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
41115         * tree-core.h (enum annot_expr_kind): Add new kind values.
41116         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
41117         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
41118         kinds.
41119         * tree.def (ANNOTATE_EXPR): Tweak comment.
41120
41121 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
41122
41123         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
41124         cxa_pure_virtual).
41125
41126 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
41127
41128         * tree.h (TYPE_IDENTIFIER): Declare.
41129         * tree.c (subrange_type_for_debug_p): Use it.
41130         * godump.c (go_format_type): Likewise.
41131         * dwarf2out.c (is_cxx_auto, modified_type_die,
41132         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
41133         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
41134
41135 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
41136
41137         PR lto/60820
41138         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
41139
41140 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
41141
41142         * config/i386/i386.c (examine_argument): Return bool.  Return true if
41143         parameter should be passed in memory.
41144         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
41145         (construct_container): Update calls to examine_argument.
41146         (function_arg_advance_64): Ditto.
41147         (return_in_memory_32): Merge with ix86_return_in_memory.
41148         (return_in_memory_64): Ditto.
41149         (return_in_memory_ms_64): Ditto.
41150
41151 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
41152
41153         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
41154         * coverage.c (coverage_compute_profile_id): Handle externally visible
41155         symbols.
41156
41157 2014-04-14  Martin Jambor  <mjambor@suse.cz>
41158
41159         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
41160         DECL_DISREGARD_INLINE_LIMITS functions.
41161
41162 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
41163
41164         PR target/60827
41165         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
41166
41167 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
41168
41169         PR target/60827
41170         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
41171         optimize_insn_for_speed_p instead of
41172         optimize_function_for_speed_p.
41173
41174 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
41175
41176         * doc/invoke.texi (free): Document AArch64.
41177
41178 2014-04-14  Richard Biener  <rguenther@suse.de>
41179
41180         PR tree-optimization/60042
41181         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
41182         (insert_into_preds_of_block): Do not prevent PHI insertion
41183         for REFERENCE exprs here ...
41184         (eliminate_dom_walker::before_dom_children): ... but prevent
41185         their use here under similar conditions when applied to the
41186         IL after PRE optimizations.
41187
41188 2014-04-14  Richard Biener  <rguenther@suse.de>
41189
41190         * passes.def: Move early points-to after early SRA.
41191
41192 2014-04-14  Richard Biener  <rguenther@suse.de>
41193
41194         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
41195         check for which sign-changes we allow when forwarding
41196         a converted value into a switch.
41197
41198 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
41199
41200         * stor-layout.c (place_field): Finalize non-constant offset for the
41201         field, if any.
41202
41203 2014-04-14  Richard Biener  <rguenther@suse.de>
41204
41205         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
41206         as argument.
41207         (expand_switch_using_bit_tests_p): Likewise.
41208         (process_switch): Compute and pass on speed_p based on the
41209         switch stmt.
41210         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
41211         optimize_bb_for_speed_p.
41212
41213 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
41214
41215         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
41216         * function.h (struct function): Rename has_force_vect_loops into
41217         has_force_vectorize_loops.
41218         * lto-streamer-in.c (input_cfg): Adjust for renaming.
41219         (input_struct_function_base): Likewise.
41220         * lto-streamer-out.c (output_cfg): Likewise.
41221         (output_struct_function_base): Likewise.
41222         * omp-low.c (expand_omp_simd): Likewise.
41223         * tree-cfg.c (move_sese_region_to_fn): Likewise.
41224         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
41225         (version_loop_for_if_conversion): Likewise.
41226         (tree_if_conversion): Likewise.
41227         (main_tree_if_conversion): Likewise.
41228         (gate_tree_if_conversion): Likewise.
41229         * tree-inline.c (copy_loops): Likewise.
41230         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
41231         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
41232         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
41233         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
41234         * tree-vectorizer.c (vectorize_loops): Likewise.
41235         * tree-vectorizer.h (unlimited_cost_model): Likewise.
41236
41237 2014-04-14  Richard Biener  <rguenther@suse.de>
41238
41239         PR lto/60720
41240         * lto-streamer-out.c (wrap_refs): New function.
41241         (lto_output): Wrap symbol references in global initializes in
41242         type-preserving MEM_REFs.
41243
41244 2014-04-14  Christian Bruel  <christian.bruel@st.com>
41245
41246         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
41247
41248 2014-04-14  Christian Bruel  <christian.bruel@st.com>
41249
41250         * config/sh/sh.md (setmemqi): New expand pattern.
41251         * config/sh/sh.h (CLEAR_RATIO): Define.
41252         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
41253         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
41254
41255 2014-04-14  Richard Biener  <rguenther@suse.de>
41256
41257         PR middle-end/55022
41258         * fold-const.c (negate_expr_p): Don't negate directional rounding
41259         division.
41260         (fold_negate_expr): Likewise.
41261
41262 2014-04-14  Richard Biener  <rguenther@suse.de>
41263
41264         PR tree-optimization/59817
41265         PR tree-optimization/60453
41266         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
41267         recursion to catch all CHRECs in the scalar evolution and restrict
41268         the predicate for the remains appropriately.
41269
41270 2014-04-12  Catherine Moore  <clm@codesourcery.com>
41271
41272         * config/mips/constraints.md: Add new register constraint "kb".
41273         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
41274         (*movhi_internal): Likewise.
41275         (*movqi_internal): Likewise.
41276         * config/mips/mips.h (M16_STORE_REGS): New register class.
41277         (REG_CLASS_NAMES): Add M16_STORE_REGS.
41278         (REG_CLASS_CONTENTS): Likewise.
41279         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
41280
41281 2014-04-11  Tobias Burnus  <burnus@net-b.de>
41282
41283         PR c/60194
41284         * doc/invoke.texi (-Wformat-signedness): Document it.
41285         (Wformat=2): Mention that this enables -Wformat-signedness.
41286
41287 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
41288
41289         * common/config/epiphany/epiphany-common.c
41290         (epiphany_option_optimization_table): Enable section anchors by
41291         default at -O1 or higher.
41292         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
41293         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
41294         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
41295         carries no extra cost.
41296         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
41297         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
41298         * config/epiphany/predicates.md (memclob_operand): New predicate.
41299         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
41300         Use memclob_operand predicate and X constraint for operand 3.
41301
41302 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
41303
41304         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
41305         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
41306         its operands.
41307
41308 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
41309
41310         PR rtl-optimization/60651
41311         * mode-switching.c (optimize_mode_switching): Make sure to emit
41312         sets of a lower numbered entity before sets of a higher numbered
41313         entity to a mode of the same or lower priority.
41314         When creating a seginfo for a basic block that starts with a code
41315         label, move the insertion point past the code label.
41316         (new_seginfo): Document and enforce requirement that
41317         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
41318         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
41319         * doc/tm.texi: Regenerate.
41320
41321 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
41322
41323         PR target/60811
41324         * config/arc/arc.c (arc_save_restore): Fix assert typo.
41325
41326 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
41327
41328         * BASE-VER: Set to 4.10.0.
41329
41330 2014-04-11  Tobias Burnus  <burnus@net-b.de>
41331
41332         PR other/59055
41333         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
41334         * doc/gcc.texi (Service): Update description in the @menu
41335         * doc/invoke.texi (Option Summary): Remove misplaced and
41336         duplicated @menu.
41337
41338 2014-04-11  Steve Ellcey  <sellcey@mips.com>
41339             Jakub Jelinek  <jakub@redhat.com>
41340
41341         PR middle-end/60556
41342         * expr.c (convert_move): Use emit_store_flag_force instead of
41343         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
41344         argument to it.
41345
41346 2014-04-11  Richard Biener  <rguenther@suse.de>
41347
41348         PR middle-end/60797
41349         * varasm.c (assemble_alias): Avoid endless error reporting
41350         recursion by setting TREE_ASM_WRITTEN.
41351
41352 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
41353
41354         * config/s390/s390.md: Add a splitter for NOT rtx.
41355
41356 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
41357
41358         PR rtl-optimization/60663
41359         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
41360
41361 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
41362             Jakub Jelinek  <jakub@redhat.com>
41363
41364         PR lto/60567
41365         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
41366         flag from decl_node to node.
41367
41368 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41369
41370         PR debug/60655
41371         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
41372         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
41373         ameliorating the cases where it can be.
41374
41375 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
41376
41377         Revert
41378         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
41379
41380         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
41381         (loadsync_<mode>): Change mode.
41382         (load_quadpti, store_quadpti): New.
41383         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
41384         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
41385         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
41386
41387 2014-04-09  Cong Hou  <congh@google.com>
41388
41389         PR testsuite/60773
41390         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
41391         documentation.
41392
41393 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41394
41395         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
41396         instead of vnor to exploit possible fusion opportunity in the
41397         future.
41398         (altivec_expand_vec_perm_const_le): Likewise.
41399
41400 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
41401
41402         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
41403         (loadsync_<mode>): Change mode.
41404         (load_quadpti, store_quadpti): New.
41405         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
41406         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
41407
41408 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
41409
41410         PR target/60763
41411         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
41412         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
41413         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
41414
41415 2014-04-08  Richard Biener  <rguenther@suse.de>
41416
41417         PR middle-end/60706
41418         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
41419         a 64bit widest int print double-int similar to on HWI64 hosts.
41420
41421 2014-04-08  Richard Biener  <rguenther@suse.de>
41422
41423         PR tree-optimization/60785
41424         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
41425         default defs properly.
41426
41427 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
41428
41429         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
41430         (Weffc++): Likewise.
41431
41432 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
41433
41434         * ipa-devirt.c (maybe_record_node): When node is not recorded,
41435         set completep to false rather than true.
41436
41437 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
41438
41439         PR target/60504
41440         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
41441         ARM_TARGET2_DWARF_FORMAT.
41442
41443 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
41444
41445         PR target/60609
41446         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
41447         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
41448         ADDR_DIFF_VEC.
41449
41450 2014-04-07  Richard Biener  <rguenther@suse.de>
41451
41452         PR tree-optimization/60766
41453         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
41454         (may_eliminate_iv): Convert cand_value_at result to desired type.
41455
41456 2014-04-07  Jason Merrill  <jason@redhat.com>
41457
41458         PR c++/60731
41459         * common.opt (-fno-gnu-unique): Add.
41460         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
41461
41462 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41463
41464         * haifa-sched.c: Fix outdated function reference and minor
41465         grammar errors in introductory comment.
41466
41467 2014-04-07  Richard Biener  <rguenther@suse.de>
41468
41469         PR middle-end/60750
41470         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
41471         for noreturn calls.
41472         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
41473
41474 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
41475
41476         PR debug/55794
41477         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
41478         size accounting for thunks.
41479         (pa_asm_output_mi_thunk): Use final_start_function() and
41480         final_end_function() to output function start and end directives.
41481
41482 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
41483
41484         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
41485         device specific ISA/ feature information. Remove short_sp and
41486         errata_skip ds.  Add avr_device_specific_features enum to have device
41487         specific info.
41488         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
41489         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
41490         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
41491         updated device specific info.
41492         * config/avr/avr-mcus.def: Merge device specific details to
41493         dev_attribute field.
41494         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
41495         errata_skip.
41496         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
41497         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
41498         assembler if RMW isa supported by current device.
41499         * config/avr/genmultilib.awk: Update as device info structure changed.
41500         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
41501
41502 2014-04-04  Cong Hou  <congh@google.com>
41503
41504         PR tree-optimization/60656
41505         * tree-vect-stmts.c (supportable_widening_operation):
41506         Fix a bug that elements in a vector with vect_used_by_reduction
41507         property are incorrectly reordered when the operation on it is not
41508         consistant with the one in reduction operation.
41509
41510 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
41511
41512         PR rtl-optimization/60155
41513         * gcse.c (record_set_data): New function.
41514         (single_set_gcse): New function.
41515         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
41516         (hoist_code): Likewise.
41517         (get_pressure_class_and_nregs): Likewise.
41518
41519 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
41520
41521         * explow.c (probe_stack_range): Emit a final optimization blockage.
41522
41523 2014-04-04  Anthony Green  <green@moxielogic.com>
41524
41525         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
41526         typos.
41527
41528 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
41529
41530         PR ipa/59626
41531         * lto-cgraph.c (input_overwrite_node): Check that partitioning
41532         flags are set only during streaming.
41533         * ipa.c (process_references, walk_polymorphic_call_targets,
41534         symtab_remove_unreachable_nodes): Drop bodies of always inline
41535         after early inlining.
41536         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
41537
41538 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
41539         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41540
41541         PR debug/60655
41542         * dwarf2out.c (const_ok_for_output_1): Reject expressions
41543         containing a NOT.
41544
41545 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41546
41547         PR bootstrap/60743
41548         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
41549         duration.
41550         (cortex_a53_fdivd): Likewise.
41551
41552 2014-04-04  Martin Jambor  <mjambor@suse.cz>
41553
41554         PR ipa/60640
41555         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
41556         Adjust all callers.
41557         * cgraph.c (clone_of_p): Also return true if thunks match.
41558         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
41559         cgraph_function_or_thunk_node and an obsolete comment.
41560         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
41561         file.
41562         (build_function_decl_skip_args): Likewise.
41563         (set_new_clone_decl_and_node_flags): New function.
41564         (duplicate_thunk_for_node): Likewise.
41565         (redirect_edge_duplicating_thunks): Likewise.
41566         (cgraph_clone_node): New parameter args_to_skip, pass it to
41567         redirect_edge_duplicating_thunks which is called instead of
41568         cgraph_redirect_edge_callee.
41569         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
41570         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
41571
41572 2014-04-04  Jeff Law  <law@redhat.com>
41573
41574         PR target/60657
41575         * config/arm/predicates.md (const_int_I_operand): New predicate.
41576         (const_int_M_operand): Similarly.
41577         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
41578         const_int_operand.
41579         (insv_t2, extv_reg, extzv_t2): Likewise.
41580         (load_multiple_with_writeback): Similarly for const_int_I_operand.
41581         (pop_multiple_with_writeback_and_return): Likewise.
41582         (vfp_pop_multiple_with_writeback): Likewise
41583
41584 2014-04-04  Richard Biener  <rguenther@suse.de>
41585
41586         PR ipa/60746
41587         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
41588         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
41589         non-GIMPLE_LABELs.
41590         * gimplify.h (gimple_add_tmp_var_fn): Declare.
41591         * gimplify.c (gimple_add_tmp_var_fn): New function.
41592         * gimple-expr.h (create_tmp_reg_fn): Declare.
41593         * gimple-expr.c (create_tmp_reg_fn): New function.
41594         * gimple-low.c (record_vars_into): Don't change cfun.
41595         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
41596         code generation without cfun.
41597
41598 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
41599
41600         PR bootstrap/60719
41601         * Makefile.in (install-driver): Fix shell scripting.
41602
41603 2014-04-03  Cong Hou  <congh@google.com>
41604
41605         PR tree-optimization/60505
41606         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
41607         threshold of number of iterations below which no vectorization
41608         will be done.
41609         * tree-vect-loop.c (new_loop_vec_info):
41610         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
41611         * tree-vect-loop.c (vect_analyze_loop_operations):
41612         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
41613         * tree-vect-loop.c (vect_transform_loop):
41614         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
41615         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
41616         of iterations of the loop and see if we should build the epilogue.
41617
41618 2014-04-03  Richard Biener  <rguenther@suse.de>
41619
41620         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
41621         (streamer_tree_cache_create): Adjust.
41622         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
41623         to allow optional nodes array.
41624         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
41625         (streamer_tree_cache_append): Likewise.
41626         (streamer_tree_cache_create): Create nodes array optionally
41627         as specified by parameter.
41628         * lto-streamer-out.c (create_output_block): Avoid maintaining
41629         the node array in the writer cache.
41630         (DFS_write_tree): Remove assertion.
41631         (produce_asm_for_decls): Free the out decl state hash table early.
41632         * lto-streamer-in.c (lto_data_in_create): Adjust for
41633         streamer_tree_cache_create prototype change.
41634
41635 2014-04-03  Richard Biener  <rguenther@suse.de>
41636
41637         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
41638         set TREE_CHAIN to NULL_TREE.
41639
41640 2014-04-03  Richard Biener  <rguenther@suse.de>
41641
41642         PR tree-optimization/60740
41643         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
41644         over all GIMPLE_COND operands.
41645
41646 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
41647
41648         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
41649         (Weffc++): Remove Scott's numbering, merge lists and reference
41650         Wnon-virtual-dtor.
41651
41652 2014-04-03  Nick Clifton  <nickc@redhat.com>
41653
41654         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
41655         properly.
41656
41657 2014-04-03  Martin Jambor  <mjambor@suse.cz>
41658
41659         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
41660         mention gcc_unreachable before failing.
41661         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
41662         removed symbols.
41663
41664 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
41665
41666         PR ipa/60659
41667         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
41668         inconsistent code and instead mark the context inconsistent.
41669         (possible_polymorphic_call_targets): For inconsistent contexts
41670         return empty complete list.
41671
41672 2014-04-02  Anthony Green  <green@moxielogic.com>
41673
41674         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
41675         (extendqisi2, extendhisi2): Define.
41676         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
41677         (WCHAR_TYPE): Change to unsigned int.
41678
41679 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41680
41681         PR tree-optimization/60733
41682         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
41683         insertion point for PHI candidates to be the end of the feeding
41684         block for the PHI argument.
41685
41686 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
41687
41688         PR rtl-optimization/60650
41689         * lra-constraints.c (process_alt_operands): Decrease reject for
41690         earlyclobber matching.
41691
41692 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
41693
41694         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
41695
41696 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
41697
41698         * config/spu/spu.c (pad_bb): Do not crash when the last
41699         insn is CODE_FOR_blockage.
41700
41701 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
41702
41703         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
41704         lies outside the target mode.
41705
41706 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
41707
41708         PR target/60735
41709         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
41710         software floating point or no floating point registers, do not
41711         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
41712         in GPRs that occurs after we tested for GPRs that would never be
41713         true.
41714
41715         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
41716         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
41717         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
41718         specifically allow DDmode, since that does not use the SPE SIMD
41719         instructions.
41720
41721 2014-04-02  Richard Biener  <rguenther@suse.de>
41722
41723         PR middle-end/60729
41724         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
41725         MODE_INTs.  Properly use negv_optab.
41726         (expand_abs): Likewise.
41727
41728 2014-04-02  Richard Biener  <rguenther@suse.de>
41729
41730         PR bootstrap/60719
41731         * Makefile.in (install-driver): Guard extra installs with special
41732         names properly.
41733
41734 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
41735
41736         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
41737         Document vec_vgbbd.
41738
41739 2014-04-01  Richard Henderson  <rth@redhat.com>
41740
41741         PR target/60704
41742         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
41743         alternative enabled before register allocation.
41744
41745 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
41746
41747         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
41748         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
41749         typo.
41750         (nios2_large_got_address): Remove unneeded 'sym' parameter.
41751         (nios2_got_address): Update nios2_large_got_address call site.
41752         (nios2_delegitimize_address): New function.
41753         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
41754         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
41755         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
41756
41757 2014-04-01  Martin Husemann  <martin@duskware.de>
41758
41759         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
41760         for -mabi=32.
41761
41762 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
41763
41764         PR rtl-optimization/60604
41765         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
41766         check from register_operand.
41767         (register_operand): Redefine in terms of general_operand.
41768         (nonmemory_operand): Use register_operand for the non-constant cases.
41769
41770 2014-04-01  Richard Biener  <rguenther@suse.de>
41771
41772         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
41773
41774 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41775
41776         * doc/invoke.texi (mapp-regs): Clarify.
41777
41778 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
41779
41780         * config/i386/avx512fintrin.h (__v32hi): Define type.
41781         (__v64qi): Likewise.
41782         (_mm512_set1_epi8): Define.
41783         (_mm512_set1_epi16): Define.
41784         (_mm512_set4_epi32): Define.
41785         (_mm512_set4_epi64): Define.
41786         (_mm512_set4_pd): Define.
41787         (_mm512_set4_ps): Define.
41788         (_mm512_setr4_epi64): Define.
41789         (_mm512_setr4_epi32): Define.
41790         (_mm512_setr4_pd): Define.
41791         (_mm512_setr4_ps): Define.
41792         (_mm512_setzero_epi32): Define.
41793
41794 2014-03-31  Martin Jambor  <mjambor@suse.cz>
41795
41796         PR middle-end/60647
41797         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
41798         callsite_arguments_match_p.  Updated all callers.  Also check types of
41799         corresponding formal parameters and actual arguments.
41800         (not_all_callers_have_enough_arguments_p) Renamed to
41801         some_callers_have_mismatched_arguments_p.
41802
41803 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
41804
41805         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
41806
41807 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
41808
41809         PR target/60034
41810         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
41811         section anchor.
41812
41813 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
41814
41815         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
41816         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
41817         Split out
41818         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
41819         Use FMAMODE_NOVF512 mode iterator.
41820         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
41821         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
41822         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
41823         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
41824         Split out
41825         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
41826         Use VF_128_256 mode iterator.
41827         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
41828         Ditto.
41829
41830 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
41831
41832         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
41833         static chain if needed.
41834
41835 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
41836
41837         PR target/60697
41838         * lra-constraints.c (index_part_to_reg): New.
41839         (process_address): Use it.
41840
41841 2014-03-27  Jeff Law  <law@redhat.com>
41842             Jakub Jelinek  <jakub@redhat.com>
41843
41844         PR target/60648
41845         * expr.c (do_tablejump): Use simplify_gen_binary rather than
41846         gen_rtx_{PLUS,MULT} to build up the address expression.
41847
41848         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
41849         creating non-canonical RTL.
41850
41851 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
41852
41853         PR ipa/60243
41854         * ipa-inline.c (want_inline_small_function_p): Short circuit large
41855         functions; reorganize to make cheap checks first.
41856         (inline_small_functions): Do not estimate growth when dumping;
41857         it is expensive.
41858         * ipa-inline.h (inline_summary): Add min_size.
41859         (growth_likely_positive): New function.
41860         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
41861         (set_cond_stmt_execution_predicate): Cleanup.
41862         (estimate_edge_size_and_time): Compute min_size.
41863         (estimate_calls_size_and_time): Likewise.
41864         (estimate_node_size_and_time): Likewise.
41865         (inline_update_overall_summary): Update min_size.
41866         (do_estimate_edge_time): Likewise.
41867         (do_estimate_edge_size): Update.
41868         (do_estimate_edge_hints): Update.
41869         (growth_likely_positive): New function.
41870
41871 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
41872
41873         PR target/60693
41874         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
41875         also if addr has VOIDmode.
41876
41877 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41878
41879         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
41880         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
41881         Declare extern.
41882         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
41883         instructions as well as AdvancedSIMD loads.
41884
41885 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41886
41887         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
41888         Use crypto_aese type.
41889         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
41890         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
41891         crypto_aese, crypto_aesmc.  Move to types.md.
41892         * config/arm/types.md (crypto_aes): Split into crypto_aese,
41893         crypto_aesmc.
41894         * config/arm/iterators.md (crypto_type): Likewise.
41895
41896 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
41897
41898         * cgraph.c: Include expr.h and tree-dfa.h.
41899         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
41900         remove LHS.
41901
41902 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
41903
41904         PR target/60675
41905         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
41906         regs from checking multi-reg pseudos.
41907
41908 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41909
41910         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
41911
41912 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
41913
41914         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
41915         if it would clobber the stack pointer, even temporarily.
41916
41917 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
41918
41919         * mode-switching.c: Make small adjustments to the top comment.
41920
41921 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
41922
41923         * config/rs6000/constraints.md (wD constraint): New constraint to
41924         match the constant integer to get the top DImode/DFmode out of a
41925         vector in a VSX register.
41926
41927         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
41928         match the constant integer to get the top DImode/DFmode out of a
41929         vector in a VSX register.
41930
41931         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
41932         for ISA 2.07.
41933
41934         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
41935         vbpermq builtins.
41936
41937         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
41938         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
41939
41940         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
41941         Optimize vec_extract of 64-bit values, where the value being
41942         extracted is in the top word, where we can use scalar
41943         instructions.  Add direct move and store support.  Combine the big
41944         endian/little endian vector select load support into a single insn.
41945         (vsx_extract_<mode>_internal1): Likewise.
41946         (vsx_extract_<mode>_internal2): Likewise.
41947         (vsx_extract_<mode>_load): Likewise.
41948         (vsx_extract_<mode>_store): Likewise.
41949         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
41950         combined into vsx_extract_<mode>_load.
41951         (vsx_extract_<mode>_one_le): Likewise.
41952
41953         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
41954         define the top 64-bit vector element.
41955
41956         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
41957         constraint.
41958
41959         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
41960         Document vec_vbpermq builtin.
41961
41962         PR target/60672
41963         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
41964         enable use of xxsldwi and xxpermdi builtin functions.
41965         (vec_xxpermdi): Likewise.
41966
41967         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
41968         Document use of vec_xxsldwi and vec_xxpermdi builtins.
41969
41970 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
41971
41972         PR rtl-optimization/60650
41973         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
41974         first_p.  Use it.
41975         (find_spills_for): New.
41976         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
41977         Spill all pseudos on the second iteration.
41978
41979 2014-03-27  Marek Polacek  <polacek@redhat.com>
41980
41981         PR c/50347
41982         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
41983         types.
41984
41985 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
41986
41987         * config/s390/s390.c (s390_can_use_return_insn): Check for
41988         call-saved FPRs on 31 bit.
41989
41990 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
41991
41992         PR middle-end/60682
41993         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
41994         if they need regimplification, just drop them instead of
41995         calling gimple_regimplify_operands on them.
41996
41997 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41998
41999         PR target/60580
42000         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
42001         (aarch64_frame_pointer_required): Adjust logic.
42002         (aarch64_can_eliminate): Adjust logic.
42003         (aarch64_override_options_after_change): Adjust logic.
42004
42005 2014-03-27  Dehao Chen  <dehao@google.com>
42006
42007         * ipa-inline.c (early_inliner): Update node's inline info.
42008
42009 2014-03-26  Dehao Chen  <dehao@google.com>
42010
42011         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
42012         compiler inserted conditional jumps for NAN float check.
42013
42014 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
42015
42016         * ubsan.h (ubsan_create_data): Change second argument's type
42017         to const location_t *.
42018         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
42019         _("<unknown>").
42020         (ubsan_create_data): Change second argument to const location_t *PLOC.
42021         Create Loc field whenever PLOC is non-NULL.
42022         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
42023         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
42024         callers.
42025
42026         PR other/59545
42027         * real.c (real_to_integer2): Change type of low to UHWI.
42028
42029 2014-03-26  Tobias Burnus  <burnus@net-b.de>
42030
42031         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
42032         (CILK_SELF_SPECS): New define.
42033         (driver_self_specs): Use it.
42034
42035 2014-03-26  Richard Biener  <rguenther@suse.de>
42036
42037         * tree-pretty-print.c (percent_K_format): Implement special
42038         case for LTO and its stripped down BLOCK tree.
42039
42040 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
42041
42042         PR sanitizer/60636
42043         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
42044
42045         * tree-vrp.c (simplify_internal_call_using_ranges): If only
42046         one range is range_int_cst_p, but not both, at least optimize
42047         addition/subtraction of 0 and multiplication by 0 or 1.
42048         * gimple-fold.c (gimple_fold_call): Fold
42049         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
42050         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
42051         INTEGER_CSTs, try to fold at least x * 0 and y - y.
42052
42053 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
42054
42055         PR rtl-optimization/60452
42056         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
42057         <case REG>: Return 1 for invalid offsets from the frame pointer.
42058
42059 2014-03-26  Marek Polacek  <polacek@redhat.com>
42060
42061         PR c/37428
42062         * doc/extend.texi (C Extensions): Mention variable-length arrays in
42063         a structure/union.
42064
42065 2014-03-26  Marek Polacek  <polacek@redhat.com>
42066
42067         PR c/39525
42068         * doc/extend.texi (Designated Inits): Describe what happens to omitted
42069         field members.
42070
42071 2014-03-26  Marek Polacek  <polacek@redhat.com>
42072
42073         PR other/59545
42074         * ira-color.c (update_conflict_hard_regno_costs): Perform the
42075         multiplication in unsigned type.
42076
42077 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
42078
42079         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
42080
42081 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
42082
42083         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
42084
42085 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
42086
42087         PR ipa/60315
42088         * cif-code.def (UNREACHABLE) New code.
42089         * ipa-inline.c (inline_small_functions): Skip edges to
42090         __builtlin_unreachable.
42091         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
42092         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
42093         predicate to __bulitin_unreachable.
42094         (set_cond_stmt_execution_predicate): Fix issue when
42095         invert_tree_comparison returns ERROR_MARK.
42096         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
42097         propagate to inline clones.
42098         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
42099         to unreachable.
42100         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
42101         * cgraphclones.c (cgraph_clone_node): If call destination is already
42102         ureachable, do not redirect it back.
42103         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
42104         unreachable.
42105
42106 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
42107
42108         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
42109         Do not modify inline clones.
42110
42111 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
42112
42113         * config/i386/i386.md (general_sext_operand): New mode attr.
42114         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
42115         don't generate (sign_extend (const_int)).
42116         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
42117         operands[2].  Use We constraint instead of <i> and
42118         <general_sext_operand> predicate instead of <general_operand>.
42119         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
42120         * config/i386/constraints.md (We): New constraint.
42121         * config/i386/predicates.md (x86_64_sext_operand,
42122         sext_operand): New predicates.
42123
42124 2014-03-25  Martin Jambor  <mjambor@suse.cz>
42125
42126         PR ipa/60600
42127         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
42128         inconsistent devirtualizations to __builtin_unreachable.
42129
42130 2014-03-25  Marek Polacek  <polacek@redhat.com>
42131
42132         PR c/35449
42133         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
42134
42135 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
42136
42137         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
42138         order of elements for big-endian.
42139
42140 2014-03-25  Richard Biener  <rguenther@suse.de>
42141
42142         PR middle-end/60635
42143         * gimplify-me.c (gimple_regimplify_operands): Update the
42144         re-gimplifed stmt.
42145
42146 2014-03-25  Martin Jambor  <mjambor@suse.cz>
42147
42148         PR ipa/59176
42149         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
42150         (lto_output_varpool_node): Likewise.
42151         (input_overwrite_node): Likewise.
42152         (input_varpool_node): Likewise.
42153
42154 2014-03-25  Richard Biener  <rguenther@suse.de>
42155
42156         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
42157         (run_gcc): Likewise.
42158
42159 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
42160
42161         * combine.c (simplify_compare_const): Add MODE argument.
42162         Handle mode_width 0 as very large mode_width.
42163         (try_combine, simplify_comparison): Adjust callers.
42164
42165         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
42166         type to avoid signed integer overflow.
42167         * explow.c (plus_constant): Likewise.
42168
42169 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
42170
42171         * doc/generic.texi: Correct typos.
42172
42173 2014-03-24  Tobias Burnus  <burnus@net-b.de>
42174
42175         * doc/invoke.texi (-flto): Expand section about
42176         using static libraries with LTO.
42177
42178 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42179
42180         PR rtl-optimization/60501
42181         * optabs.def (addptr3_optab): New optab.
42182         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
42183         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
42184         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
42185
42186         * lra.c (emit_add3_insn): Use the addptr pattern if available.
42187
42188         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
42189
42190 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
42191
42192         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
42193         _mm512_set1_pd.
42194
42195         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
42196         (_mm256_undefined_ps): Define.
42197         (_mm256_undefined_pd): Define.
42198         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
42199         (_mm_undefined_pd): Define.
42200         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
42201         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
42202         (_mm512_undefined_ps): Define.
42203         (_mm512_undefined_pd): Define.
42204         Use _mm*_undefined_*.
42205         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
42206
42207 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
42208
42209         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
42210         (lshr_simd): DI mode added.
42211         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
42212         (aarch64_ushr_simddi): Likewise.
42213         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
42214         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
42215         (vshrd_n_u64): Likewise.
42216
42217 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42218
42219         * Makefile.in (s-macro_list): Depend on cc1.
42220
42221 2014-03-23  Teresa Johnson  <tejohnson@google.com>
42222
42223         * ipa-utils.c (ipa_print_order): Use specified dump file.
42224
42225 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
42226
42227         PR rtl-optimization/60601
42228         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
42229
42230         * gcc.c (eval_spec_function): Initialize save_growing_value.
42231
42232 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
42233
42234         PR sanitizer/60613
42235         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
42236         code == MINUS_EXPR, never swap op0 with op1.
42237
42238         * toplev.c (init_local_tick): Avoid signed integer multiplication
42239         overflow.
42240         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
42241         shift by first operand's bitsize.
42242
42243 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
42244
42245         PR target/60610
42246         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
42247         redefine to 1 or 0.
42248         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
42249         TARGET_ISA_64BIT_P(x).
42250
42251 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42252
42253         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
42254         pattern for vector nor instead of subtract from splat(-1).
42255         (altivec_expand_vec_perm_const_le): Likewise.
42256
42257 2014-03-21  Richard Henderson  <rth@twiddle.net>
42258
42259         PR target/60598
42260         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
42261         related insns after epilogue_completed.
42262
42263 2014-03-21  Martin Jambor  <mjambor@suse.cz>
42264
42265         PR ipa/59176
42266         * cgraph.h (symtab_node): New flag body_removed.
42267         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
42268         when removing bodies.
42269         * symtab.c (dump_symtab_base): Dump body_removed flag.
42270         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
42271         had their bodies removed.
42272
42273 2014-03-21  Martin Jambor  <mjambor@suse.cz>
42274
42275         PR ipa/60419
42276         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
42277         in the border.
42278
42279 2014-03-21  Richard Biener  <rguenther@suse.de>
42280
42281         PR tree-optimization/60577
42282         * tree-core.h (struct tree_base): Document nothrow_flag use
42283         in DECL_NONALIASED.
42284         * tree.h (DECL_NONALIASED): New.
42285         (may_be_aliased): Adjust.
42286         * coverage.c (build_var): Set DECL_NONALIASED.
42287
42288 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
42289
42290         * expr.c (expand_expr_real_1): Remove outdated comment.
42291
42292 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
42293
42294         PR middle-end/60597
42295         * ira.c (adjust_cleared_regs): Call copy_rtx on
42296         *reg_equiv[REGNO (loc)].src_p before passing it to
42297         simplify_replace_fn_rtx.
42298
42299         PR target/60568
42300         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
42301         into CONST, put pic register as first operand of PLUS.  Use
42302         gen_const_mem for both 32-bit and 64-bit PIC got loads.
42303
42304 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42305
42306         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
42307
42308 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
42309
42310         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
42311         around for store forwarding issue in the FPU on the UT699.
42312         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
42313         loads and operations if -mfix-ut699 is specified.
42314         (divtf3_hq): Tweak attribute.
42315         (sqrttf2_hq): Likewise.
42316
42317 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
42318
42319         * calls.c (store_one_arg): Remove incorrect const qualification on the
42320         type of the temporary.
42321         * cfgexpand.c (expand_return): Likewise.
42322         * expr.c (expand_constructor): Likewise.
42323         (expand_expr_real_1): Likewise.
42324
42325 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
42326
42327         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
42328         of parts.
42329
42330 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
42331
42332         PR target/60039
42333         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
42334
42335 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
42336
42337         * config/arm/aarch-common-protos.h
42338         (alu_cost_table): Fix spelling of "extend".
42339         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
42340
42341 2014-03-19  Richard Biener  <rguenther@suse.de>
42342
42343         PR middle-end/60553
42344         * tree-core.h (tree_type_common): Re-order pointer members
42345         to reduce recursion depth during GC walks.
42346
42347 2014-03-19  Marek Polacek  <polacek@redhat.com>
42348
42349         PR sanitizer/60569
42350         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
42351         before accessing it.
42352
42353 2014-03-19  Richard Biener  <rguenther@suse.de>
42354
42355         PR lto/59543
42356         * lto-streamer-in.c (input_function): In WPA stage do not drop
42357         debug stmts.
42358
42359 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
42360
42361         PR tree-optimization/60559
42362         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
42363         with build_zero_cst assignment.
42364
42365 2014-03-18  Kai Tietz  <ktietz@redhat.com>
42366
42367         PR rtl-optimization/56356
42368         * sdbout.c (sdbout_parms): Verify that parms'
42369         incoming argument is valid.
42370         (sdbout_reg_parms): Likewise.
42371
42372 2014-03-18  Richard Henderson  <rth@redhat.com>
42373
42374         PR target/60562
42375         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
42376         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
42377         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
42378
42379 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
42380
42381         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
42382         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
42383         Italicize plugin event names in description.  Explain that
42384         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
42385         Remind that no GCC functions should be called after PLUGIN_FINISH.
42386         Explain what pragmas with expansion are.
42387
42388 2014-03-18  Martin Liska  <mliska@suse.cz>
42389
42390         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
42391         gimple call statement is update.
42392         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
42393         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
42394
42395 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
42396
42397         PR sanitizer/60557
42398         * ubsan.c (ubsan_instrument_unreachable): Call
42399         initialize_sanitizer_builtins.
42400         (ubsan_pass): Likewise.
42401
42402         PR sanitizer/60535
42403         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
42404         varpool_finalize_decl instead of rest_of_decl_compilation.
42405
42406 2014-03-18  Richard Biener  <rguenther@suse.de>
42407
42408         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
42409         by using bitmap_and_compl instead of bitmap_and_compl_into.
42410         (df_rd_transfer_function): Likewise.
42411
42412 2014-03-18  Richard Biener  <rguenther@suse.de>
42413
42414         * doc/lto.texi (fresolution): Fix typo.
42415
42416 2014-03-18  Richard Biener  <rguenther@suse.de>
42417
42418         * doc/invoke.texi (flto): Update for changes in 4.9.
42419
42420 2014-03-18  Richard Biener  <rguenther@suse.de>
42421
42422         * doc/loop.texi: Remove section on the removed lambda framework.
42423         Update loop docs with recent changes in preserving loop structure.
42424
42425 2014-03-18  Richard Biener  <rguenther@suse.de>
42426
42427         * doc/lto.texi (-fresolution): Document.
42428
42429 2014-03-18  Richard Biener  <rguenther@suse.de>
42430
42431         * doc/contrib.texi: Adjust my name.
42432
42433 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
42434
42435         PR ipa/58721
42436         * internal-fn.c: Include diagnostic-core.h.
42437         (expand_BUILTIN_EXPECT): New function.
42438         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
42439         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
42440         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
42441         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
42442         IFN_BUILTIN_EXPECT.
42443         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
42444         Revert 3 argument __builtin_expect code.
42445         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
42446         * gimple-fold.c (gimple_fold_call): Likewise.
42447         * tree.h (fold_builtin_expect): New prototype.
42448         * builtins.c (build_builtin_expect_predicate): Add predictor
42449         argument, if non-NULL, create 3 argument __builtin_expect.
42450         (fold_builtin_expect): No longer static.  Add ARG2 argument,
42451         pass it through to build_builtin_expect_predicate.
42452         (fold_builtin_2): Adjust caller.
42453         (fold_builtin_3): Handle BUILT_IN_EXPECT.
42454         * internal-fn.def (BUILTIN_EXPECT): New.
42455
42456 2014-03-18  Tobias Burnus  <burnus@net-b.de>
42457
42458         PR ipa/58721
42459         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
42460         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
42461         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
42462
42463 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
42464
42465         PR ipa/58721
42466         * predict.c (combine_predictions_for_bb): Fix up formatting.
42467         (expr_expected_value_1, expr_expected_value): Add predictor argument,
42468         fill what it points to if non-NULL.
42469         (tree_predict_by_opcode): Adjust caller, use the predictor.
42470         * predict.def (PRED_COMPARE_AND_SWAP): Add.
42471
42472 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
42473
42474         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
42475         proper constant for the store mode.
42476
42477 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
42478
42479         * symtab.c (change_decl_assembler_name): Fix transparent alias
42480         chain construction.
42481
42482 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
42483
42484         * config/aarch64/aarch64.c: Correct the comments about the
42485         aarch64 stack layout.
42486
42487 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
42488
42489         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
42490         check for GF_OMP_FOR_KIND_FOR.
42491
42492 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
42493
42494         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
42495         ymm and zmm register names.
42496
42497 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
42498
42499         PR target/60516
42500         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
42501         note creation for the 2010-08-31 changes.
42502
42503 2014-03-17  Marek Polacek  <polacek@redhat.com>
42504
42505         PR middle-end/60534
42506         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
42507         as -fno-tree-loop-vectorize.
42508         (expand_omp_simd): Likewise.
42509
42510 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
42511
42512         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
42513         (eligible_for_call_delay): New prototype.
42514         * config/sparc/sparc.c (tls_call_delay): Rename into...
42515         (eligible_for_call_delay): ...this.  Return false if the instruction
42516         cannot be put in the delay slot of a branch.
42517         (eligible_for_restore_insn): Simplify.
42518         (eligible_for_return_delay): Return false if the instruction cannot be
42519         put in the delay slot of a branch and simplify.
42520         (eligible_for_sibcall_delay): Return false if the instruction cannot be
42521         put in the delay slot of a branch.
42522         * config/sparc/sparc.md (fix_ut699): New attribute.
42523         (tls_call_delay): Delete.
42524         (in_call_delay): Reimplement.
42525         (eligible_for_sibcall_delay): Rename into...
42526         (in_sibcall_delay): ...this.
42527         (eligible_for_return_delay): Rename into...
42528         (in_return_delay): ...this.
42529         (in_branch_delay): Reimplement.
42530         (in_uncond_branch_delay): Delete.
42531         (in_annul_branch_delay): Delete.
42532
42533 2014-03-14  Richard Henderson  <rth@redhat.com>
42534
42535         PR target/60525
42536         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
42537         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
42538         (*floathi<X87MODEF>2_i387_with_temp): Remove.
42539         (floathi splitters): Remove.
42540         (float<SWI48x>xf2): New pattern.
42541         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
42542         code that tried to handle DImode for 32-bit, but which was excluded
42543         by the pattern's condition.  Drop allocation of stack temporary.
42544         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
42545         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
42546         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
42547         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
42548         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
42549         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
42550         (*float<SWI48><MODEF>2_sse_interunit): Remove.
42551         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
42552         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
42553         (*float<SWI48x><X87MODEF>2_i387): Remove.
42554         (all float _with_temp splitters): Remove.
42555         (*float<SWI48x><MODEF>2_i387): New pattern.
42556         (*float<SWI48><MODEF>2_sse): New pattern.
42557         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
42558         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
42559
42560 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
42561             Marek Polacek  <polacek@redhat.com>
42562
42563         PR middle-end/60484
42564         * common.opt (dump_base_name_prefixed): New Variable.
42565         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
42566         if x_dump_base_name_prefixed is already set, set it at the end.
42567
42568 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
42569
42570         PR rtl-optimization/60508
42571         * lra-constraints.c (get_reload_reg): Add new parameter
42572         in_subreg_p.
42573         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
42574         Pass the new parameter values.
42575
42576 2014-03-14  Richard Biener  <rguenther@suse.de>
42577
42578         * common.opt: Revert unintented changes from r205065.
42579         * opts.c: Likewise.
42580
42581 2014-03-14  Richard Biener  <rguenther@suse.de>
42582
42583         PR middle-end/60518
42584         * cfghooks.c (split_block): Properly adjust all loops the
42585         block was a latch of.
42586
42587 2014-03-14  Martin Jambor  <mjambor@suse.cz>
42588
42589         PR lto/60461
42590         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
42591         and simplify it.
42592
42593 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
42594
42595         PR target/59396
42596         * config/avr/avr.c (avr_set_current_function): Pass function name
42597         through default_strip_name_encoding before sanity checking instead
42598         of skipping the first char of the assembler name.
42599
42600 2014-03-13  Richard Henderson  <rth@redhat.com>
42601
42602         PR debug/60438
42603         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
42604         (ix86_force_to_memory, ix86_free_from_memory): Remove.
42605         * config/i386/i386-protos.h: Likewise.
42606         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
42607         in the expander instead of a splitter.
42608         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
42609         any possibility of requiring a memory.
42610         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
42611         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
42612         (fp branch splitters): Update for ix86_split_fp_branch.
42613         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
42614         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
42615         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
42616         (*fop_<MODEF>_2_i387): Remove f/r alternative.
42617         (*fop_<MODEF>_3_i387): Likewise.
42618         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
42619         (splitters for the fop_* register patterns): Remove.
42620         (fscalexf4_i387): Rename from *fscalexf4_i387.
42621         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
42622
42623 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
42624
42625         PR tree-optimization/59779
42626         * tree-dfa.c (get_ref_base_and_extent): Use double_int
42627         type for bitsize and maxsize instead of HOST_WIDE_INT.
42628
42629 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
42630
42631         PR rtl-optimization/57320
42632         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
42633         the CFG after thread_prologue_and_epilogue_insns.
42634
42635 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
42636
42637         PR rtl-optimization/57189
42638         * lra-constraints.c (process_alt_operands): Disfavor spilling
42639         vector pseudos.
42640
42641 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
42642
42643         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
42644
42645 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
42646
42647         PR tree-optimization/59025
42648         PR middle-end/60418
42649         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
42650         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
42651
42652 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
42653
42654         PR target/60486
42655         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
42656         calls of avr_out_plus_1.
42657
42658 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
42659
42660         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
42661         BB's single pred and update the father loop's latch info later.
42662
42663 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
42664
42665         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
42666         (VEC_M): Likewise.
42667         (VEC_N): Likewise.
42668         (VEC_R): Likewise.
42669         (VEC_base): Likewise.
42670         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
42671         registers, we need to swap double words in little endian mode.
42672
42673         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
42674         to be a container mode for 128-bit integer operations added in ISA
42675         2.07.  Unlike TImode and PTImode, the preferred register set is
42676         the Altivec/VMX registers for the 128-bit operations.
42677
42678         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
42679         declarations.
42680         (rs6000_split_128bit_ok_p): Likewise.
42681
42682         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
42683         macros for creating ISA 2.07 normal and overloaded builtin
42684         functions with 3 arguments.
42685         (BU_P8V_OVERLOAD_3): Likewise.
42686         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
42687         for use as overloaded functions.
42688         (VPERM_1TI_UNS): Likewise.
42689         (VSEL_1TI): Likewise.
42690         (VSEL_1TI_UNS): Likewise.
42691         (ST_INTERNAL_1ti): Likewise.
42692         (LD_INTERNAL_1ti): Likewise.
42693         (XXSEL_1TI): Likewise.
42694         (XXSEL_1TI_UNS): Likewise.
42695         (VPERM_1TI): Likewise.
42696         (VPERM_1TI_UNS): Likewise.
42697         (XXPERMDI_1TI): Likewise.
42698         (SET_1TI): Likewise.
42699         (LXVD2X_V1TI): Likewise.
42700         (STXVD2X_V1TI): Likewise.
42701         (VEC_INIT_V1TI): Likewise.
42702         (VEC_SET_V1TI): Likewise.
42703         (VEC_EXT_V1TI): Likewise.
42704         (EQV_V1TI): Likewise.
42705         (NAND_V1TI): Likewise.
42706         (ORC_V1TI): Likewise.
42707         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
42708         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
42709         overloaded builtin.
42710         (VADDUQM): Likewise.
42711         (VSUBCUQ): Likewise.
42712         (VADDEUQM): Likewise.
42713         (VADDECUQ): Likewise.
42714         (VSUBEUQM): Likewise.
42715         (VSUBECUQ): Likewise.
42716
42717         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
42718         __int128_t and __uint128_t types.
42719         (__uint128_type): Likewise.
42720         (altivec_categorize_keyword): Add support for vector __int128_t,
42721         vector __uint128_t, vector __int128, and vector unsigned __int128
42722         as a container type for TImode operations that need to be done in
42723         VSX/Altivec registers.
42724         (rs6000_macro_to_expand): Likewise.
42725         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
42726         to support 128-bit integer instructions vaddcuq, vadduqm,
42727         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
42728         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
42729
42730         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
42731         for V1TImode, and set up preferences to use VSX/Altivec registers.
42732         Setup VSX reload handlers.
42733         (rs6000_debug_reg_global): Likewise.
42734         (rs6000_init_hard_regno_mode_ok): Likewise.
42735         (rs6000_preferred_simd_mode): Likewise.
42736         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
42737         (easy_altivec_constant): Likewise.
42738         (output_vec_const_move): Likewise.
42739         (rs6000_expand_vector_set): Convert V1TImode set and extract to
42740         simple move.
42741         (rs6000_expand_vector_extract): Likewise.
42742         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
42743         addressing.
42744         (rs6000_const_vec): Add support for V1TImode.
42745         (rs6000_emit_le_vsx_load): Swap double words when loading or
42746         storing TImode/V1TImode.
42747         (rs6000_emit_le_vsx_store): Likewise.
42748         (rs6000_emit_le_vsx_move): Likewise.
42749         (rs6000_emit_move): Add support for V1TImode.
42750         (altivec_expand_ld_builtin): Likewise.
42751         (altivec_expand_st_builtin): Likewise.
42752         (altivec_expand_vec_init_builtin): Likewise.
42753         (altivec_expand_builtin): Likewise.
42754         (rs6000_init_builtins): Add support for V1TImode type.  Add
42755         support for ISA 2.07 128-bit integer builtins.  Define type names
42756         for the VSX/Altivec vector types.
42757         (altivec_init_builtins): Add support for overloaded vector
42758         functions with V1TImode type.
42759         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
42760         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
42761         external function.
42762         (rs6000_split_128bit_ok_p): Likewise.
42763         (rs6000_handle_altivec_attribute): Create V1TImode from vector
42764         __int128_t and vector __uint128_t.
42765
42766         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
42767         and mode attributes.
42768         (VSX_M): Likewise.
42769         (VSX_M2): Likewise.
42770         (VSm): Likewise.
42771         (VSs): Likewise.
42772         (VSr): Likewise.
42773         (VSv): Likewise.
42774         (VS_scalar): Likewise.
42775         (VS_double): Likewise.
42776         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
42777
42778         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
42779         we support the ISA 2.07 128-bit integer arithmetic instructions.
42780         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
42781         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
42782         and TImode types for use with the builtin functions.
42783         (V1TI_type_node): Likewise.
42784         (unsigned_V1TI_type_node): Likewise.
42785         (intTI_type_internal_node): Likewise.
42786         (uintTI_type_internal_node): Likewise.
42787
42788         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
42789         128-bit builtin functions.
42790         (UNSPEC_VADDEUQM): Likewise.
42791         (UNSPEC_VADDECUQ): Likewise.
42792         (UNSPEC_VSUBCUQ): Likewise.
42793         (UNSPEC_VSUBEUQM): Likewise.
42794         (UNSPEC_VSUBECUQ): Likewise.
42795         (VM): Add V1TImode to vector mode iterators.
42796         (VM2): Likewise.
42797         (VI_unit): Likewise.
42798         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
42799         (altivec_vaddcuq): Likewise.
42800         (altivec_vsubuqm): Likewise.
42801         (altivec_vsubcuq): Likewise.
42802         (altivec_vaddeuqm): Likewise.
42803         (altivec_vaddecuq): Likewise.
42804         (altivec_vsubeuqm): Likewise.
42805         (altivec_vsubecuq): Likewise.
42806
42807         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
42808         mode iterators.
42809         (BOOL_128): Likewise.
42810         (BOOL_REGS_OUTPUT): Likewise.
42811         (BOOL_REGS_OP1): Likewise.
42812         (BOOL_REGS_OP2): Likewise.
42813         (BOOL_REGS_UNARY): Likewise.
42814         (BOOL_REGS_AND_CR0): Likewise.
42815
42816         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
42817         128-bit integer builtin support.
42818         (vec_vadduqm): Likewise.
42819         (vec_vaddecuq): Likewise.
42820         (vec_vaddeuqm): Likewise.
42821         (vec_vsubecuq): Likewise.
42822         (vec_vsubeuqm): Likewise.
42823         (vec_vsubcuq): Likewise.
42824         (vec_vsubuqm): Likewise.
42825
42826         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42827         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
42828         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
42829         128-bit integer add/subtract to ISA 2.07.
42830
42831 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
42832
42833         * config/arc/arc.c (arc_predicate_delay_insns):
42834         Fix third argument passed to conditionalize_nonjump.
42835
42836 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
42837
42838         * config/aarch64/aarch64-builtins.c
42839         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
42840         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
42841         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
42842         instead of __builtin_lfloor.
42843         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
42844
42845 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
42846
42847         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
42848         (tree_ssa_ifcombine_bb_1): New function.
42849         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
42850         is an empty forwarder block to then_bb or vice versa and then_bb
42851         and else_bb are effectively swapped.
42852
42853 2014-03-12  Christian Bruel  <christian.bruel@st.com>
42854
42855         PR target/60264
42856         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
42857         REG_CFA_DEF_CFA note.
42858         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
42859         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
42860
42861 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
42862
42863         PR tree-optimization/60454
42864         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
42865
42866 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42867
42868         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
42869         Do not define target_cpu_default2 to generic.
42870         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
42871         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
42872         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
42873
42874 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
42875             Marc Glisse  <marc.glisse@inria.fr>
42876
42877         PR tree-optimization/60502
42878         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
42879         instead of build_low_bits_mask.
42880
42881 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
42882
42883         PR middle-end/60482
42884         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
42885         if there are multiple uses, but op doesn't live on E edge.
42886         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
42887         clobber stmts before __builtin_unreachable.
42888
42889 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
42890
42891         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
42892         hard_frame_pointer_rtx.
42893         * cse.c (cse_insn): Remove volatile check.
42894         * cselib.c (cselib_process_insn): Likewise.
42895         * dse.c (scan_insn): Likewise.
42896
42897 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42898
42899         * config/arc/arc.c (conditionalize_nonjump): New function,
42900         broken out of ...
42901         (arc_ifcvt): ... this.
42902         (arc_predicate_delay_insns): Use it.
42903
42904 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42905
42906         * config/arc/predicates.md (extend_operand): During/after reload,
42907         allow const_int_operand.
42908         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
42909         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
42910         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
42911         to "i".
42912         (umulsi3_highpart_i): Likewise.
42913
42914 2014-03-11  Richard Biener  <rguenther@suse.de>
42915
42916         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
42917         Add asserts to guard possible wrong-code bugs.
42918
42919 2014-03-11  Richard Biener  <rguenther@suse.de>
42920
42921         PR tree-optimization/60429
42922         PR tree-optimization/60485
42923         * tree-ssa-structalias.c (set_union_with_increment): Properly
42924         take into account all fields that overlap the shifted vars.
42925         (do_sd_constraint): Likewise.
42926         (do_ds_constraint): Likewise.
42927         (get_constraint_for_ptr_offset): Likewise.
42928
42929 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
42930
42931         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
42932         (nios2_compute_frame_layout):
42933         Add calculation of cfun->machine->fp_save_offset.
42934         (nios2_expand_prologue): Correct setting of frame pointer register
42935         in prologue.
42936         (nios2_expand_epilogue): Update recovery of stack pointer from
42937         frame pointer accordingly.
42938         (nios2_initial_elimination_offset): Update calculation of offset
42939         for eliminating to HARD_FRAME_POINTER_REGNUM.
42940
42941 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
42942
42943         PR ipa/60457
42944         * ipa.c (symtab_remove_unreachable_nodes): Don't call
42945         cgraph_get_create_node on VAR_DECLs.
42946
42947 2014-03-10  Richard Biener  <rguenther@suse.de>
42948
42949         PR middle-end/60474
42950         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
42951
42952 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
42953
42954         * config/vms/vms.opt (vms_float_format): New variable.
42955
42956 2014-03-08  Tobias Burnus  <burnus@net-b.de>
42957
42958         * doc/invoke.texi (-fcilkplus): Update implementation status.
42959
42960 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
42961             Richard Biener  <rguenther@suse.de>
42962
42963         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
42964         consistently accross all TUs.
42965         (run_gcc): Enable -fshort-double automatically at link at link-time
42966         and disallow override.
42967
42968 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
42969
42970         PR target/58271
42971         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
42972         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
42973         if they can't be used.
42974
42975 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42976
42977         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
42978         for Solaris 11/x86 ld.
42979         * configure: Regenerate.
42980
42981 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42982
42983         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
42984         (LIB_TLS_SPEC): Save as ld_tls_libs.
42985         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
42986         (HAVE_AS_IX86_TLSLDM): New test.
42987         * configure, config.in: Regenerate.
42988         * config/i386/i386.c (legitimize_tls_address): Fall back to
42989         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
42990         cannot support TLS_MODEL_LOCAL_DYNAMIC.
42991         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
42992         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
42993
42994 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
42995
42996         * common.opt (fira-loop-pressure): Mark as optimization.
42997
42998 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
42999
43000         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
43001         an OpenMP mappable type.
43002
43003 2014-03-06  Matthias Klose  <doko@ubuntu.com>
43004
43005         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
43006         MULTILIB_OSDIRNAMES is not defined.
43007
43008 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
43009             Meador Inge  <meadori@codesourcery.com>
43010
43011         PR target/58595
43012         * config/arm/arm.c (arm_tls_symbol_p): Remove.
43013         (arm_legitimize_address): Call legitimize_tls_address for any
43014         arm_tls_referenced_p expression, handle constant addend.  Call it
43015         before testing for !TARGET_ARM.
43016         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
43017
43018 2014-03-06  Richard Biener  <rguenther@suse.de>
43019
43020         PR middle-end/60445
43021         PR lto/60424
43022         PR lto/60427
43023         Revert
43024         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
43025
43026         * tree-streamer.c (record_common_node): Assert we don't record
43027         nodes with type double.
43028         (preload_common_node): Skip type double, complex double and double
43029         pointer since it is now frontend dependent due to fshort-double option.
43030
43031 2014-03-06  Richard Biener  <rguenther@suse.de>
43032
43033         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
43034         or -fno-lto is specified and the linker has full plugin support.
43035         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
43036         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
43037         * lto-wrapper.c (merge_and_complain): Merge compile-time
43038         optimization levels.
43039         (run_gcc): And pass it through to the link options.
43040
43041 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
43042
43043         PR debug/60381
43044         Revert:
43045         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
43046         PR debug/59992
43047         * cselib.c (remove_useless_values): Skip to avoid quadratic
43048         behavior if the condition moved from...
43049         (cselib_process_insn): ... here holds.
43050
43051 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
43052
43053         PR plugins/59335
43054         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
43055         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
43056
43057         PR plugins/59335
43058         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
43059         (TM_H): Add x86-tune.def.
43060
43061 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43062
43063         * config/aarch64/aarch64.c (generic_tunings):
43064         Use cortexa57_extra_costs.
43065
43066 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
43067
43068         PR lto/60404
43069         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
43070         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
43071         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
43072         cost for in_lto_p.
43073
43074 2014-03-04  Heiher  <r@hev.cc>
43075
43076         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
43077         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
43078
43079 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
43080
43081         * config/i386/predicates.md (const2356_operand): Change to ...
43082         (const2367_operand): ... this.
43083         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
43084         const2367_operand.
43085         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43086         (*avx512pf_scatterpf<mode>sf): Ditto.
43087         (avx512pf_scatterpf<mode>df): Ditto.
43088         (*avx512pf_scatterpf<mode>df_mask): Ditto.
43089         (*avx512pf_scatterpf<mode>df): Ditto.
43090         * config/i386/i386.c (ix86_expand_builtin): Update
43091         incorrect hint operand error message.
43092
43093 2014-03-04  Richard Biener  <rguenther@suse.de>
43094
43095         * lto-section-in.c (lto_get_section_data): Fix const cast.
43096
43097 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
43098
43099         * tree-streamer.c (record_common_node): Assert we don't record
43100         nodes with type double.
43101         (preload_common_node): Skip type double, complex double and double
43102         pointer since it is now frontend dependent due to fshort-double option.
43103
43104 2014-03-04  Richard Biener  <rguenther@suse.de>
43105
43106         PR lto/60405
43107         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
43108         (lto_input_toplevel_asms): Likewise.
43109         * lto-section-in.c (lto_get_section_data): Instead do it here
43110         for every section.
43111
43112 2014-03-04  Richard Biener  <rguenther@suse.de>
43113
43114         PR tree-optimization/60382
43115         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
43116         dead PHIs a reduction.
43117
43118 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
43119
43120         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
43121         hint value.
43122         (_mm_prefetch): Move out of GCC target("sse") pragma.
43123         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
43124         GCC target("prfchw") pragma.
43125         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
43126         for locality <= 2.
43127         * config/i386/i386.c (ix86_option_override_internal): Enable
43128         -mprfchw with -mprefetchwt1.
43129
43130 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
43131
43132         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
43133         Mark as varying.
43134
43135 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
43136
43137         * opts.h (CL_PCH_IGNORE): Define.
43138         * targhooks.c (option_affects_pch_p):
43139         Return false for options that have CL_PCH_IGNORE set.
43140         * opt-functions.awk: Process PchIgnore.
43141         * doc/options.texi: Document PchIgnore.
43142
43143         * config/arc/arc.opt (misize): Add PchIgnore property.
43144
43145 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43146
43147         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
43148         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
43149         constraint on constants to permit them being loaded into
43150         GENERAL_REGS or BASE_REGS.
43151
43152 2014-03-03  Nick Clifton  <nickc@redhat.com>
43153
43154         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
43155         anti-cacnonical alternatives.
43156         (negandhi3_real): New pattern.
43157         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
43158
43159 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
43160
43161         * config/avr/avr-mcus.def: Remove atxmega16x1.
43162         * config/avr/avr-tables.opt: Regenerate.
43163         * config/avr/t-multilib: Regenerate.
43164         * doc/avr-mmcu.texi: Regenerate.
43165
43166 2014-03-03  Tobias Grosser  <tobias@grosser.es>
43167             Mircea Namolaru  <mircea.namolaru@inria.fr>
43168
43169         PR tree-optimization/58028
43170         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
43171         scalar dimensions.
43172
43173 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43174
43175         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
43176         not handled by recognizers.
43177
43178 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
43179
43180         PR middle-end/60175
43181         * function.c (expand_function_end): Don't emit
43182         clobber_return_register sequence if clobber_after is a BARRIER.
43183         * cfgexpand.c (construct_exit_block): Append instructions before
43184         return_label to prev_bb.
43185
43186 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43187
43188         * config/rs6000/constraints.md: Document reserved use of "wc".
43189
43190 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
43191
43192         PR ipa/60150
43193         * ipa.c (function_and_variable_visibility): When dissolving comdat
43194         group, also set all symbols to local.
43195
43196 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
43197
43198         PR ipa/60306
43199
43200         Revert:
43201         2013-12-14  Jan Hubicka  <jh@suse.cz>
43202         PR middle-end/58477
43203         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
43204
43205 2014-03-02  Jon Beniston  <jon@beniston.com>
43206
43207         PR bootstrap/48230
43208         PR bootstrap/50927
43209         PR bootstrap/52466
43210         PR target/46898
43211         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
43212         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
43213         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
43214         (simple_return, *simple_return): New patterns
43215         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
43216         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
43217
43218 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
43219
43220         * dwarf2out.c (gen_subprogram_die): Tidy.
43221
43222 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
43223
43224         PR target/60071
43225         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
43226         (*mov_t_msb_neg_negc): ... this new insn.
43227
43228 2014-02-28  Jason Merrill  <jason@redhat.com>
43229
43230         PR c++/58678
43231         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
43232         function.
43233
43234 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
43235
43236         PR c++/60314
43237         * dwarf2out.c (decltype_auto_die): New static.
43238         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
43239         (gen_type_die_with_usage): Handle 'decltype(auto)'.
43240         (is_cxx_auto): Likewise.
43241
43242 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
43243
43244         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
43245         we are not using general regs only.
43246
43247 2014-02-28  Richard Biener  <rguenther@suse.de>
43248
43249         PR target/60280
43250         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
43251         previous fix and only allow to remove trivial pre-headers
43252         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
43253         (remove_forwarder_block): Properly update the latch of a loop.
43254
43255 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
43256
43257         PR debug/59992
43258         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
43259         (cselib_preserved_hash_table): New.
43260         (preserve_constants_and_equivs): Move preserved vals to it.
43261         (cselib_find_slot): Look it up first.
43262         (cselib_init): Initialize it.
43263         (cselib_finish): Release it.
43264         (dump_cselib_table): Dump it.
43265
43266 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
43267
43268         PR debug/59992
43269         * cselib.c (remove_useless_values): Skip to avoid quadratic
43270         behavior if the condition moved from...
43271         (cselib_process_insn): ... here holds.
43272
43273 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
43274
43275         PR debug/57232
43276         * var-tracking.c (vt_initialize): Apply the same condition to
43277         preserve the CFA base value.
43278
43279 2014-02-28  Joey Ye  <joey.ye@arm.com>
43280
43281         PR target/PR60169
43282         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
43283         if reload in progress or completed.
43284
43285 2014-02-28  Tobias Burnus  <burnus@net-b.de>
43286
43287         PR middle-end/60147
43288         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
43289         NAMELIST_DECL.
43290
43291 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
43292
43293         * doc/tm.texi.in (Condition Code Status): Update documention for
43294         relative locations of cc0-setter and cc0-user.
43295
43296 2014-02-27  Jeff Law  <law@redhat.com>
43297
43298         PR rtl-optimization/52714
43299         * combine.c (try_combine): When splitting an unrecognized PARALLEL
43300         into two independent simple sets, if I3 is a jump, ensure the
43301         pattern we place into I3 is a (set (pc) ...).
43302
43303 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
43304             Jeff Law  <law@redhat.com>
43305
43306         PR rtl-optimization/49847
43307         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
43308         are in different blocks.
43309         * doc/tm.texi (Condition Code Status): Update documention for
43310         relative locations of cc0-setter and cc0-user.
43311
43312 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
43313
43314         PR target/59222
43315         * lra.c (lra_emit_add): Check SUBREG too.
43316
43317 2014-02-27  Andreas Schwab  <schwab@suse.de>
43318
43319         * config/m68k/m68k.c (m68k_option_override): Disable
43320         -flive-range-shrinkage for classic m68k.
43321         (m68k_override_options_after_change): Likewise.
43322
43323 2014-02-27  Marek Polacek  <polacek@redhat.com>
43324
43325         PR middle-end/59223
43326         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
43327         -Wmaybe-uninitialized.
43328
43329 2014-02-27  Alan Modra  <amodra@gmail.com>
43330
43331         PR target/57936
43332         * reload1.c (emit_input_reload_insns): When reload_override_in,
43333         set old to rl->in_reg when rl->in_reg is a subreg.
43334
43335 2014-02-26  Richard Biener  <rguenther@suse.de>
43336
43337         PR bootstrap/60343
43338         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
43339
43340 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
43341
43342         * common/config/i386/predicates.md (const1256_operand): Remove.
43343         (const2356_operand): New.
43344         (const_1_to_2_operand): Remove.
43345         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
43346         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
43347         (*avx512pf_gatherpf<mode>sf): Ditto.
43348         (avx512pf_gatherpf<mode>df): Ditto.
43349         (*avx512pf_gatherpf<mode>df_mask): Ditto.
43350         (*avx512pf_gatherpf<mode>df): Ditto.
43351         (avx512pf_scatterpf<mode>sf): Ditto.
43352         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43353         (*avx512pf_scatterpf<mode>sf): Ditto.
43354         (avx512pf_scatterpf<mode>df): Ditto.
43355         (*avx512pf_scatterpf<mode>df_mask): Ditto.
43356         (*avx512pf_scatterpf<mode>df): Ditto.
43357         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
43358
43359 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
43360
43361         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
43362         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
43363         (_mm512_mask_testn_epi64_mask): Move to ...
43364         * config/i386/avx512cdintrin.h: Here.
43365         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
43366         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
43367         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
43368         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
43369         TARGET_AVX512F from TARGET_AVX512CD.
43370
43371 2014-02-26  Richard Biener  <rguenther@suse.de>
43372
43373         PR ipa/60327
43374         * ipa.c (walk_polymorphic_call_targets): Properly guard
43375         call to inline_update_overall_summary.
43376
43377 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
43378
43379         PR target/60280
43380         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
43381         and latches only if requested.  Fix latch if it is removed.
43382         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
43383         LOOPS_HAVE_PREHEADERS.
43384
43385 2014-02-25  Andrew Pinski  <apinski@cavium.com>
43386
43387         * builtins.c (expand_builtin_thread_pointer): Create a new target
43388         when the target is NULL.
43389
43390 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
43391
43392         PR rtl-optimization/60317
43393         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
43394         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
43395         * lra-assigns.c: Include params.h.
43396         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
43397         other reload pseudos considerations.
43398
43399 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43400
43401         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
43402         to use canonical form for nor<mode>3.
43403
43404 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43405
43406         PR target/55426
43407         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
43408         conversions.
43409
43410 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
43411
43412         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
43413         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
43414         (ix86_handle_option): Handle OPT_mprefetchwt1.
43415         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
43416         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
43417         PREFETCHWT1 CPUID.
43418         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
43419         OPTION_MASK_ISA_PREFETCHWT1.
43420         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
43421         (PTA_PREFETCHWT1): New.
43422         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
43423         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
43424         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
43425         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
43426         (*prefetch_avx512pf_<mode>_: Change into ...
43427         (*prefetch_prefetchwt1_<mode>: This.
43428         * config/i386/i386.opt (mprefetchwt1): New.
43429         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
43430         (_mm_prefetch): Handle intent to write.
43431         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
43432
43433 2014-02-25  Richard Biener  <rguenther@suse.de>
43434
43435         PR middle-end/60291
43436         * emit-rtl.c (mem_attrs_htab): Remove.
43437         (mem_attrs_htab_hash): Likewise.
43438         (mem_attrs_htab_eq): Likewise.
43439         (set_mem_attrs): Always allocate new mem-attrs when something changed.
43440         (init_emit_once): Do not allocate mem_attrs_htab.
43441
43442 2014-02-25  Richard Biener  <rguenther@suse.de>
43443
43444         PR lto/60319
43445         * lto-opts.c (lto_write_options): Output non-explicit conservative
43446         -fwrapv, -fno-trapv and -fno-strict-overflow.
43447         * lto-wrapper.c (merge_and_complain): Handle merging those options.
43448         (run_gcc): And pass them through.
43449
43450 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
43451
43452         * sel-sched.c (calculate_new_fences): New parameter ptime.
43453         Calculate it as a maximum over all fence cycles.
43454         (sel_sched_region_2): Adjust the call to calculate_new_fences.
43455         Print the final schedule timing when sched_verbose.
43456
43457 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
43458
43459         PR rtl-optimization/60292
43460         * sel-sched.c (fill_vec_av_set): Do not reset target availability
43461         bit fot the fence instruction.
43462
43463 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
43464
43465         * calls.h: Fix typo in comment.
43466
43467 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
43468
43469         * config/pa/pa.c (pa_output_move_double): Don't valididate when
43470         adjusting offsetable addresses.
43471
43472 2014-02-24  Guozhi Wei  <carrot@google.com>
43473
43474         * sparseset.h (sparseset_pop): Fix the wrong index.
43475
43476 2014-02-24  Walter Lee  <walt@tilera.com>
43477
43478         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
43479         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
43480         triplet.
43481         * common/config/tilegx/tilegx-common.c
43482         (TARGET_DEFAULT_TARGET_FLAGS): Define.
43483         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
43484         (LINK_SPEC): Ditto.
43485         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
43486         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
43487         (tilegx_gimplify_va_arg_expr): Handle big endian.
43488         (tilegx_expand_unaligned_load): Ditto.
43489         (tilegx_expand_unaligned_store): Ditto.
43490         (TARGET_RETURN_IN_MSB): New.
43491         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
43492         (TARGET_ENDIAN_DEFAULT): New.
43493         (TARGET_BIG_ENDIAN): Handle big endian.
43494         (BYTES_BIG_ENDIAN): Ditto.
43495         (WORDS_BIG_ENDIAN): Ditto.
43496         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
43497         (ENDIAN_SPEC): New.
43498         (EXTRA_SPECS): New.
43499         * config/tilegx/tilegx.md (extv): Handle big endian.
43500         (extzv): Ditto.
43501         (insn_st<n>): Ditto.
43502         (insn_st<n>_add<bitsuffix>): Ditto.
43503         (insn_stnt<n>): Ditto.
43504         (insn_stnt<n>_add<bitsuffix>):Ditto.
43505         (vec_interleave_highv8qi): Handle big endian.
43506         (vec_interleave_highv8qi_be): New.
43507         (vec_interleave_highv8qi_le): New.
43508         (insn_v1int_h): Handle big endian.
43509         (vec_interleave_lowv8qi): Handle big endian.
43510         (vec_interleave_lowv8qi_be): New.
43511         (vec_interleave_lowv8qi_le): New.
43512         (insn_v1int_l): Handle big endian.
43513         (vec_interleave_highv4hi): Handle big endian.
43514         (vec_interleave_highv4hi_be): New.
43515         (vec_interleave_highv4hi_le): New.
43516         (insn_v2int_h): Handle big endian.
43517         (vec_interleave_lowv4hi): Handle big endian.
43518         (vec_interleave_lowv4hi_be): New.
43519         (vec_interleave_lowv4hi_le): New.
43520         (insn_v2int_l): Handle big endian.
43521         (vec_interleave_highv2si): Handle big endian.
43522         (vec_interleave_highv2si_be): New.
43523         (vec_interleave_highv2si_le): New.
43524         (insn_v4int_h): Handle big endian.
43525         (vec_interleave_lowv2si): Handle big endian.
43526         (vec_interleave_lowv2si_be): New.
43527         (vec_interleave_lowv2si_le): New.
43528         (insn_v4int_l): Handle big endian.
43529         * config/tilegx/tilegx.opt (mbig-endian): New option.
43530         (mlittle-endian): New option.
43531         * doc/install.texi: Document tilegxbe-linux.
43532         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
43533
43534 2014-02-24  Martin Jambor  <mjambor@suse.cz>
43535
43536         PR ipa/60266
43537         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
43538         there are no parameter descriptors.
43539
43540 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
43541
43542         PR rtl-optimization/60268
43543         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
43544         initialization to ...
43545         (sched_rgn_init): ... here.
43546         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
43547
43548 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
43549
43550         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
43551         names.
43552
43553 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
43554
43555         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
43556         definition.
43557
43558 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
43559
43560         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
43561         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
43562
43563 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
43564
43565         * config/microblaze/predicates.md: Add cmp_op predicate.
43566         * config/microblaze/microblaze.md: Add branch_compare instruction
43567         which uses cmp_op predicate and emits cmp insn before branch.
43568         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
43569         to microblaze_expand_conditional_branch and consolidate logic.
43570         (microblaze_expand_conditional_branch): emit branch_compare
43571         insn instead of handling cmp op separate from branch insn.
43572
43573 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43574
43575         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
43576         to permit subregs.
43577
43578 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43579
43580         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
43581         define_insn with define_expand and new define_insn
43582         *altivec_lve<VI_char>x_internal.
43583         (altivec_stve<VI_char>x): Replace define_insn with define_expand
43584         and new define_insn *altivec_stve<VI_char>x_internal.
43585         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
43586         prototype.
43587         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
43588         lve*x built-ins.
43589         (altivec_expand_stvex_be): New function.
43590
43591 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
43592
43593         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
43594         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
43595         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
43596         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
43597
43598 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
43599
43600         PR target/60298
43601         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
43602         instead of emit_move_insn.
43603
43604 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43605
43606         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
43607         vspltw with vsldoi.
43608         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
43609         gen_altivec_vsumsws.
43610
43611 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43612
43613         * config/rs6000/altivec.md (altivec_lvxl): Rename as
43614         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
43615         (altivec_lvxl_<mode>): New define_expand incorporating
43616         -maltivec=be semantics where needed.
43617         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
43618         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
43619         semantics where needed.
43620         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
43621         (altivec_stvx_<mode>): New define_expand incorporating
43622         -maltivec=be semantics where needed.
43623         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
43624         VM2 iterator instead of V4SI.
43625         (altivec_stvxl_<mode>): New define_expand incorporating
43626         -maltivec=be semantics where needed.
43627         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
43628         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
43629         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
43630         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
43631         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
43632         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
43633         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
43634         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
43635         ALTIVEC_BUILTIN_STVXL.
43636         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
43637         (altivec_expand_stvx_be): Likewise.
43638         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
43639         (altivec_expand_lvx_be): Likewise.
43640         (altivec_expand_stvx_be): Likewise.
43641         (altivec_expand_builtin): Add cases for
43642         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
43643         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
43644         (altivec_init_builtins): Add definitions for
43645         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
43646         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
43647
43648 2014-02-21  Catherine Moore  <clm@codesourcery.com>
43649
43650         * doc/invoke.texi (mvirt, mno-virt): Document.
43651         * config/mips/mips.opt (mvirt): New option.
43652         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
43653
43654 2014-02-21  Richard Biener  <rguenther@suse.de>
43655
43656         PR tree-optimization/60276
43657         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
43658         (STMT_VINFO_MIN_NEG_DIST): New macro.
43659         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
43660         STMT_VINFO_MIN_NEG_DIST.
43661         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
43662         made for negative dependence distances still hold.
43663
43664 2014-02-21  Richard Biener  <rguenther@suse.de>
43665
43666         PR middle-end/60291
43667         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
43668         DECL_INITIAL for globals not in the current function context.
43669
43670 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
43671
43672         PR tree-optimization/56490
43673         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
43674         * tree-ssa-uninit.c: Include params.h.
43675         (compute_control_dep_chain): Add num_calls argument, return false
43676         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
43677         num_calls to recursive call.
43678         (find_predicates): Change dep_chain into normal array,
43679         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
43680         variable and adjust compute_control_dep_chain caller.
43681         (find_def_preds): Likewise.
43682
43683 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
43684
43685         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
43686         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
43687
43688 2014-02-21  Nick Clifton  <nickc@redhat.com>
43689
43690         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
43691         (pushhi1): Likewise.
43692         (popqi1): Add mode to pre_dec.
43693         (pophi1): Likewise.
43694
43695 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
43696
43697         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
43698         mode for mask of V8SFmode permutation.
43699
43700 2014-02-20  Richard Henderson  <rth@redhat.com>
43701
43702         PR c++/60272
43703         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
43704         a new pseudo for OLDVAL.
43705
43706 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
43707
43708         PR target/57896
43709         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
43710         gen_reg_rtx if d->testing_p.
43711         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
43712         if d->testing_p and we will certainly return true.
43713         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
43714         if d->testing_p.
43715
43716 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
43717
43718         * emit-rtl.c (gen_reg_rtx): Assert that
43719         crtl->emit.regno_pointer_align_length is non-zero.
43720
43721 2014-02-20  Richard Henderson  <rth@redhat.com>
43722
43723         PR c++/60272
43724         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
43725         on failure the store back into EXPECT.
43726
43727 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
43728             Sandra Loosemore  <sandra@codesourcery.com>
43729
43730         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
43731         * config/nios2/nios2.c (nios2_function_profiler): Add
43732         -fPIC (flag_pic == 2) support.
43733         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
43734         (nios2_large_offset_p): New function.
43735         (nios2_unspec_reloc_p): Move up position, update to use
43736         nios2_large_offset_p.
43737         (nios2_unspec_address): Remove function.
43738         (nios2_unspec_offset): New function.
43739         (nios2_large_got_address): New function.
43740         (nios2_got_address): Add large offset support.
43741         (nios2_legitimize_tls_address): Update usage of removed and new
43742         functions.
43743         (nios2_symbol_binds_local_p): New function.
43744         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
43745         (nios2_legitimize_address): Update to use nios2_large_offset_p.
43746         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
43747         (nios2_print_operand): Merge H/L processing, add hiadj/lo
43748         processing for (const (unspec ...)).
43749         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
43750
43751 2014-02-20  Richard Biener  <rguenther@suse.de>
43752
43753         * tree-cfg.c (replace_uses_by): Mark altered BBs before
43754         doing the substitution.
43755         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
43756
43757 2014-02-20  Martin Jambor  <mjambor@suse.cz>
43758
43759         PR ipa/55260
43760         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
43761         info when checking whether lattices are bottom.
43762
43763 2014-02-20  Richard Biener  <rguenther@suse.de>
43764
43765         PR middle-end/60221
43766         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
43767         regions at -O0.
43768
43769 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
43770
43771         PR ipa/58555
43772         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
43773         parameter specifying the scaling.
43774         (inline_call): Update.
43775         (want_inline_recursively): Guard division by zero.
43776         (recursive_inlining): Update.
43777         * ipa-inline.h (clone_inlined_nodes): Update.
43778
43779 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
43780
43781         PR target/60204
43782         * config/i386/i386.c (classify_argument): Pass structures of size
43783         64 bytes or less in register.
43784
43785 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
43786             Kirill Yukhin  <kirill.yukhin@intel.com>
43787
43788         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
43789         (_mm_rcp28_round_ss): Ditto.
43790         (_mm_rsqrt28_round_sd): Ditto.
43791         (_mm_rsqrt28_round_ss): Ditto.
43792         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
43793         (_mm_rcp14_round_ss): Ditto.
43794         (_mm_rsqrt14_round_sd): Ditto.
43795         (_mm_rsqrt14_round_ss): Ditto.
43796         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
43797         the first input operand, get rid of match_dup.
43798         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
43799         attribute to sse.
43800         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
43801         Ditto.
43802         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
43803         operand as the first input operand, set type attribute.
43804         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
43805         Set type attribute.
43806         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
43807         operand as the first input operand, set type attribute.
43808
43809 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43810
43811         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
43812         bit of zero.
43813
43814 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
43815
43816         PR target/60207
43817         * config/i386/i386.c (construct_container): Remove TFmode check
43818         for X86_64_INTEGER_CLASS.
43819
43820 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
43821
43822         PR target/59794
43823         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
43824         only when -Wpsabi is enabled.
43825
43826 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
43827
43828         PR target/59799
43829         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
43830         passing arrays in registers are the same as for structs, so remove the
43831         special case for them.
43832
43833 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
43834
43835         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
43836         destination type, extract only the valid bits if the source type is not
43837         integral and has a different mode.
43838
43839 2014-02-19  Richard Biener  <rguenther@suse.de>
43840
43841         PR ipa/60243
43842         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
43843         for all calls.
43844
43845 2014-02-19  Richard Biener  <rguenther@suse.de>
43846
43847         PR ipa/60243
43848         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
43849         (ipa_modify_call_arguments): Emit an argument load explicitely and
43850         preserve virtual SSA form there and for the replacement call.
43851         Do not update SSA form nor free dominance info.
43852
43853 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
43854
43855         * ipa.c (function_and_variable_visibility): Also clear WEAK
43856         flag when disolving COMDAT_GROUP.
43857
43858 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
43859
43860         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
43861         * ipa-prop.c (ipa_set_jf_known_type): Return early when
43862         not devirtualizing.
43863         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
43864         do more sanity checks.
43865         (detect_type_change): Return true when giving up early.
43866         (compute_complex_assign_jump_func): Fix type parameter of
43867         ipa_set_ancestor_jf.
43868         (compute_complex_ancestor_jump_func): Likewise.
43869         (update_jump_functions_after_inlining): Fix updating of
43870         ancestor function.
43871         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
43872
43873 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
43874
43875         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
43876         inline clones when edge disappears.
43877
43878 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
43879
43880         PR target/60203
43881         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
43882         Split 64-bit moves into 2 patterns.  Do not allow the use of
43883         direct move for TDmode in little endian, since the decimal value
43884         has little endian bytes within a word, but the 64-bit pieces are
43885         ordered in a big endian fashion, and normal subreg's of TDmode are
43886         not allowed.
43887         (mov<mode>_64bit_dm): Likewise.
43888         (movtd_64bit_nodm): Likewise.
43889
43890 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
43891
43892         PR tree-optimization/60174
43893         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
43894         statement of an SSA_NAME that occurs in an abnormal PHI node.
43895
43896 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
43897
43898         PR sanitizer/60142
43899         * final.c (SEEN_BB): Remove.
43900         (SEEN_NOTE, SEEN_EMITTED): Renumber.
43901         (final_scan_insn): Don't force_source_line on second
43902         NOTE_INSN_BASIC_BLOCK.
43903
43904 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
43905
43906         PR target/60205
43907         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
43908         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
43909         (type_natural_mode): Warn ABI change when %zmm register is not
43910         available for AVX512F vector value passing.
43911
43912 2014-02-18  Kai Tietz  <ktietz@redhat.com>
43913
43914         PR target/60193
43915         * config/i386/i386.c (ix86_expand_prologue): Use value in
43916         rax register as displacement when restoring %r10 or %rax.
43917         Fix wrong offset when restoring both registers.
43918
43919 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
43920
43921         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
43922         assertion with conditional return.
43923
43924 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
43925             Uros Bizjak  <ubizjak@gmail.com>
43926
43927         PR driver/60233
43928         * config/i386/driver-i386.c (host_detect_local_cpu): If
43929         YMM state is not saved by the OS, also clear has_f16c.  Move
43930         CPUID 0x80000001 handling before YMM state saving checking.
43931
43932 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
43933
43934         PR rtl-optimization/58960
43935         * haifa-sched.c (alloc_global_sched_pressure_data): New,
43936         factored out from ...
43937         (sched_init): ... here.
43938         (free_global_sched_pressure_data): New, factored out from ...
43939         (sched_finish): ... here.
43940         * sched-int.h (free_global_sched_pressure_data): Declare.
43941         * sched-rgn.c (nr_regions_initial): New static global.
43942         (haifa_find_rgns): Initialize it.
43943         (schedule_region): Disable sched-pressure for the newly
43944         generated regions.
43945
43946 2014-02-17  Richard Biener  <rguenther@suse.de>
43947
43948         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
43949         release SSA defs of pattern stmts.
43950
43951 2014-02-17  Richard Biener  <rguenther@suse.de>
43952
43953         * tree-inline.c (expand_call_inline): Release the virtual
43954         operand defined by the call we are about to inline.
43955
43956 2014-02-17  Richard Biener  <rguenther@suse.de>
43957
43958         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
43959
43960 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
43961             Ilya Tocar  <ilya.tocar@intel.com>
43962
43963         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
43964         arguments order in builtin.
43965         (_mm512_permutexvar_epi64): Ditto.
43966         (_mm512_mask_permutexvar_epi64): Ditto
43967         (_mm512_maskz_permutexvar_epi32): Ditto
43968         (_mm512_permutexvar_epi32): Ditto
43969         (_mm512_mask_permutexvar_epi32): Ditto
43970
43971 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43972
43973         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
43974         (p8_vmrgow): Likewise.
43975
43976 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43977
43978         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
43979         endian targets.
43980
43981 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
43982
43983         PR target/60203
43984         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
43985         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
43986         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
43987         using direct move instructions on ISA 2.07.  Also adjust
43988         instruction length for 64-bit.
43989         (mov<mode>_64bit, TFmode/TDmode): Likewise.
43990         (mov<mode>_32bit, TFmode/TDmode): Likewise.
43991
43992 2014-02-15  Alan Modra  <amodra@gmail.com>
43993
43994         PR target/58675
43995         PR target/57935
43996         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
43997         find_replacement on parts of insn rtl that might be reloaded.
43998
43999 2014-02-15  Richard Biener  <rguenther@suse.de>
44000
44001         PR tree-optimization/60183
44002         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
44003         (tree_ssa_phiprop): Calculate and free post-dominators.
44004
44005 2014-02-14  Jeff Law  <law@redhat.com>
44006
44007         PR rtl-optimization/60131
44008         * ree.c (get_extended_src_reg): New function.
44009         (combine_reaching_defs): Use it rather than assuming location of REG.
44010         (find_and_remove_re): Verify first operand of extension is
44011         a REG before adding the insns to the copy list.
44012
44013 2014-02-14  Roland McGrath  <mcgrathr@google.com>
44014
44015         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
44016         * configure: Regenerated.
44017         * config.in: Regenerated.
44018         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
44019         instead of ASM_SHORT.
44020
44021 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
44022             Richard Earnshaw  <rearnsha@arm.com>
44023
44024         PR rtl-optimization/59535
44025         * lra-constraints.c (process_alt_operands): Encourage alternative
44026         when unassigned pseudo class is superset of the alternative class.
44027         (inherit_reload_reg): Don't inherit when optimizing for code size.
44028         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
44029         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
44030         modes not less than 4 for Thumb1.
44031
44032 2014-02-14  Kyle McMartin  <kyle@redhat.com>
44033
44034         PR pch/60010
44035         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
44036
44037 2014-02-14  Richard Biener  <rguenther@suse.de>
44038
44039         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
44040         (get_frame_arg): Drop the assert with langhook types_compatible_p.
44041         Do not strip INDIRECT_REFs.
44042
44043 2014-02-14  Richard Biener  <rguenther@suse.de>
44044
44045         PR lto/60179
44046         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
44047         DECL_FUNCTION_SPECIFIC_TARGET.
44048         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
44049         * tree-streamer-out.c (pack_ts_target_option): Remove.
44050         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
44051         (write_ts_function_decl_tree_pointers): Do not stream
44052         DECL_FUNCTION_SPECIFIC_TARGET.
44053         * tree-streamer-in.c (unpack_ts_target_option): Remove.
44054         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
44055         (lto_input_ts_function_decl_tree_pointers): Do not stream
44056         DECL_FUNCTION_SPECIFIC_TARGET.
44057
44058 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
44059
44060         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
44061         (get_initial_def_for_induction, vectorizable_induction): Ignore
44062         debug stmts when looking for exit_phi.
44063         (vectorizable_live_operation): Fix up condition.
44064
44065 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
44066
44067         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
44068         nreverse() because it changes the content of original tree list.
44069
44070 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
44071
44072         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
44073         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
44074
44075 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
44076
44077         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
44078         GNU coding standards.
44079
44080 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
44081
44082         PR debug/60152
44083         * dwarf2out.c (gen_subprogram_die): Don't call
44084         add_calling_convention_attribute if subr_die is old_die.
44085
44086 2014-02-13  Sharad Singhai  <singhai@google.com>
44087
44088         * doc/optinfo.texi: Fix order of nodes.
44089
44090 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
44091
44092         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
44093         operands[2], not operands[3].
44094
44095 2014-02-13  Richard Biener  <rguenther@suse.de>
44096
44097         PR bootstrap/59878
44098         * doc/install.texi (ISL): Update recommended version to 0.12.2,
44099         mention the possibility of an in-tree build.
44100         (CLooG): Update recommended version to 0.18.1, mention the
44101         possibility of an in-tree build and clarify that the ISL
44102         bundled with CLooG does not work.
44103
44104 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
44105
44106         PR target/43546
44107         * expr.c (compress_float_constant): If x is a hard register,
44108         extend into a pseudo and then move to x.
44109
44110 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
44111
44112         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
44113         caused by bad second argument to warning_at() with -mhotpatch and
44114         nested functions (e.g. with gfortran).
44115
44116 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
44117
44118         * opts.c (option_name): Remove "enabled by default" rider.
44119
44120 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
44121
44122         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
44123
44124 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
44125             Uros Bizjak  <ubizjak@gmail.com>
44126
44127         PR target/60151
44128         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
44129         * configure: Regenerated.
44130
44131 2014-02-12  Richard Biener  <rguenther@suse.de>
44132
44133         * vec.c (vec_prefix::calculate_allocation): Move as
44134         inline variant to vec.h.
44135         (vec_prefix::calculate_allocation_1): New out-of-line version.
44136         * vec.h (vec_prefix::calculate_allocation_1): Declare.
44137         (vec_prefix::m_has_auto_buf): Rename to ...
44138         (vec_prefix::m_using_auto_storage): ... this.
44139         (vec_prefix::calculate_allocation): Inline the easy cases
44140         and dispatch to calculate_allocation_1 which doesn't need the
44141         prefix address.
44142         (va_heap::reserve): Use gcc_checking_assert.
44143         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
44144         m_using_auto_storage.
44145         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
44146         member and adjust.
44147         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
44148         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
44149         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
44150
44151 2014-02-12  Richard Biener  <rguenther@suse.de>
44152
44153         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
44154         when we found a dependence.
44155
44156 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
44157
44158         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
44159         common code...
44160         (maybe_fold_stmt): ... into this new function.
44161         * omp-low.c (lower_omp): Update comment.
44162
44163         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
44164         last use.
44165
44166         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
44167         dereference.
44168
44169 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
44170
44171         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
44172         identifiers in comments.
44173         (cortexa53_extra_costs): Likewise.
44174         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
44175         (cortexa7_extra_costs): Likewise.
44176         (cortexa12_extra_costs): Likewise.
44177         (cortexa15_extra_costs): Likewise.
44178         (v7m_extra_costs): Likewise.
44179
44180 2014-02-12  Richard Biener  <rguenther@suse.de>
44181
44182         PR middle-end/60092
44183         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
44184         of posix_memalign being successful.
44185         (lower_stmt): Restrict lowering of posix_memalign to when
44186         -ftree-bit-ccp is enabled.
44187
44188 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
44189
44190         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
44191         arg_loc.
44192         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
44193
44194 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
44195
44196         PR rtl-optimization/60116
44197         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
44198         other_insn once the combination has been validated.
44199
44200 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
44201
44202         PR lto/59468
44203         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
44204         and wrapper.
44205         * ipa-devirt.c: Include demangle.h
44206         (odr_violation_reported): New static variable.
44207         (add_type_duplicate): Update odr_violations.
44208         (maybe_record_node): Add completep parameter; update it.
44209         (record_target_from_binfo): Add COMPLETEP parameter;
44210         update it as needed.
44211         (possible_polymorphic_call_targets_1): Likewise.
44212         (struct polymorphic_call_target_d): Add nonconstruction_targets;
44213         rename FINAL to COMPLETE.
44214         (record_targets_from_bases): Sanity check we found the binfo;
44215         fix COMPLETEP updating.
44216         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
44217         parameter, fix computing of COMPLETEP.
44218         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
44219         at LTO time do demangling.
44220         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
44221         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
44222         parameter.
44223         (gimple_get_virt_method_for_binfo): Likewise.
44224         * gimple-fold.h (gimple_get_virt_method_for_binfo,
44225         gimple_get_virt_method_for_vtable): Update prototypes.
44226
44227 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
44228
44229         PR target/49008
44230         * genautomata.c (add_presence_absence): Fix typo with
44231         {final_}presence_list.
44232
44233 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
44234
44235         PR target/60137
44236         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
44237         for VSX/Altivec vectors that land in GPR registers.
44238
44239 2014-02-11  Richard Henderson  <rth@redhat.com>
44240             Jakub Jelinek  <jakub@redhat.com>
44241
44242         PR debug/59776
44243         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
44244         around drhs if type conversion to lacc->type is not useless.
44245
44246 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44247
44248         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
44249         tuning struct.
44250         (cortex-a57.cortex-a53): Likewise.
44251         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
44252
44253 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44254
44255         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
44256         arm_restrict_it.
44257
44258 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
44259
44260         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
44261         add_options_for_arm_vfp3.
44262
44263 2014-02-11  Jeff Law  <law@redhat.com>
44264
44265         PR middle-end/54041
44266         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
44267         object with an undesirable mode.
44268
44269 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44270
44271         PR libgomp/60107
44272         * config/i386/sol2-9.h: New file.
44273         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
44274         *-*-solaris2.9*): Use it.
44275
44276 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
44277
44278         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
44279         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
44280
44281 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
44282
44283         * config/microblaze/microblaze.c: Extend mcpu version format
44284
44285 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
44286
44287         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
44288
44289 2014-02-10  Richard Henderson  <rth@redhat.com>
44290
44291         PR target/59927
44292         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
44293         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
44294         ms-abi vs -mno-accumulate-outgoing-args.
44295         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
44296         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
44297         respect to ms-abi.
44298
44299 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
44300
44301         PR middle-end/60080
44302         * cfgexpand.c (expand_asm_operands): Attach source location to
44303         ASM_INPUT rtx objects.
44304         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
44305
44306 2014-02-10  Nick Clifton  <nickc@redhat.com>
44307
44308         * config/mn10300/mn10300.c (popcount): New function.
44309         (mn10300_expand_prologue): Include saved registers in stack usage
44310         count.
44311
44312 2014-02-10  Jeff Law  <law@redhat.com>
44313
44314         PR middle-end/52306
44315         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
44316         when changing the SET_DEST of a prior insn to avoid an input reload.
44317
44318 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
44319
44320         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
44321         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
44322         -mcall-openbsd, or -mcall-linux.
44323         (CC1_ENDIAN_BIG_SPEC): Remove.
44324         (CC1_ENDIAN_LITTLE_SPEC): Remove.
44325         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
44326         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
44327         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
44328         and %cc1_endian_default.
44329         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
44330
44331 2014-02-10  Richard Biener  <rguenther@suse.de>
44332
44333         PR tree-optimization/60115
44334         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
44335         MEM_REF handling.  Properly verify that the accesses are not
44336         out of the objects bound.
44337
44338 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44339
44340         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
44341         coretex to cortex.
44342
44343 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
44344
44345         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
44346         proper constants and fix formatting.
44347         (possible_polymorphic_call_targets): Fix formatting.
44348
44349 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
44350             Ilya Tocar  <ilya.tocar@intel.com>
44351
44352         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
44353         (_mm512_loadu_epi32): Renamed into...
44354         (_mm512_loadu_si512): This.
44355         (_mm512_storeu_epi32): Renamed into...
44356         (_mm512_storeu_si512): This.
44357         (_mm512_maskz_ceil_ps): Removed.
44358         (_mm512_maskz_ceil_pd): Ditto.
44359         (_mm512_maskz_floor_ps): Ditto.
44360         (_mm512_maskz_floor_pd): Ditto.
44361         (_mm512_floor_round_ps): Ditto.
44362         (_mm512_floor_round_pd): Ditto.
44363         (_mm512_ceil_round_ps): Ditto.
44364         (_mm512_ceil_round_pd): Ditto.
44365         (_mm512_mask_floor_round_ps): Ditto.
44366         (_mm512_mask_floor_round_pd): Ditto.
44367         (_mm512_mask_ceil_round_ps): Ditto.
44368         (_mm512_mask_ceil_round_pd): Ditto.
44369         (_mm512_maskz_floor_round_ps): Ditto.
44370         (_mm512_maskz_floor_round_pd): Ditto.
44371         (_mm512_maskz_ceil_round_ps): Ditto.
44372         (_mm512_maskz_ceil_round_pd): Ditto.
44373         (_mm512_expand_pd): Ditto.
44374         (_mm512_expand_ps): Ditto.
44375         * config/i386/i386.c (ix86_builtins): Remove
44376         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
44377         (bdesc_args): Ditto.
44378         * config/i386/predicates.md (const1256_operand): New.
44379         (const_1_to_2_operand): Ditto.
44380         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44381         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44382         (*avx512pf_gatherpf<mode>sf): Ditto.
44383         (avx512pf_gatherpf<mode>df): Ditto.
44384         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44385         (*avx512pf_gatherpf<mode>df): Ditto.
44386         (avx512pf_scatterpf<mode>sf): Ditto.
44387         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44388         (*avx512pf_scatterpf<mode>sf): Ditto.
44389         (avx512pf_scatterpf<mode>df): Ditto.
44390         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44391         (*avx512pf_scatterpf<mode>df): Ditto.
44392         (avx512f_expand<mode>): Removed.
44393         (<shift_insn><mode>3<mask_name>): Change predicate type.
44394
44395 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
44396
44397         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
44398         not at the end of datarefs vector use ordered_remove to avoid
44399         reordering datarefs vector.
44400
44401         PR c/59984
44402         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
44403         mark local addressable non-static vars as GOVD_PRIVATE
44404         instead of GOVD_LOCAL.
44405         * omp-low.c (lower_omp_for): Move gimple_bind_vars
44406         and BLOCK_VARS of gimple_bind_block to new_stmt rather
44407         than copying them.
44408
44409         PR middle-end/60092
44410         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
44411         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
44412         assume_aligned or alloc_align attributes.
44413         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
44414         arguments.  Handle also assume_aligned and alloc_align attributes.
44415         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
44416         calls to functions with assume_aligned or alloc_align attributes.
44417         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
44418
44419 2014-02-08  Terry Guo  <terry.guo@arm.com>
44420
44421         * doc/invoke.texi: Document ARM -march=armv7e-m.
44422
44423 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
44424
44425         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
44426         flag on __cilkrts_rethrow builtin.
44427
44428         PR ipa/60026
44429         * ipa-cp.c (determine_versionability): Fail at -O0
44430         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
44431         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
44432
44433         Revert:
44434         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
44435
44436         PR ipa/60026
44437         * tree-inline.c (copy_forbidden): Fail for
44438         __attribute__((optimize (0))) functions.
44439
44440 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
44441
44442         * varpool.c: Include pointer-set.h.
44443         (varpool_remove_unreferenced_decls): Variables in other partitions
44444         will not be output; be however careful to not lose information
44445         about partitioning.
44446
44447 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
44448
44449         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
44450         lookup in the vtable constructor.
44451
44452 2014-02-07  Jeff Law  <law@redhat.com>
44453
44454         PR target/40977
44455         * config/m68k/m68k.md (ashldi_extsi): Turn into a
44456         define_insn_and_split.
44457
44458         * ipa-inline.c (inline_small_functions): Fix typos.
44459
44460 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
44461
44462         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
44463         (s390_can_use_return_insn): Declare.
44464         * config/s390/s390.h (EPILOGUE_USES): Define.
44465         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
44466         instructions.
44467         (s390_chunkify_start): Handle return JUMP_LABELs.
44468         (s390_early_mach): Emit a main_pool instruction on the entry edge.
44469         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
44470         (s390_can_use_return_insn): New functions.
44471         (s390_fix_long_loop_prediction): Handle conditional returns.
44472         (TARGET_SET_UP_BY_PROLOGUE): Define.
44473         * config/s390/s390.md (ANY_RETURN): New code iterator.
44474         (*creturn, *csimple_return, return, simple_return): New patterns.
44475
44476 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
44477
44478         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
44479         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
44480         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
44481         REG_CFA_RESTORE list when deciding not to restore a register.
44482
44483 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
44484
44485         * config/s390/s390.c: Include tree-pass.h and context.h.
44486         (s390_early_mach): New function, split out from...
44487         (s390_emit_prologue): ...here.
44488         (pass_data_s390_early_mach): New pass structure.
44489         (pass_s390_early_mach): New class.
44490         (s390_option_override): Create and register early_mach pass.
44491         Move to end of file.
44492
44493 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
44494
44495         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
44496         to match for the exit block.
44497
44498 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
44499
44500         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
44501         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
44502         Reject misaligned operands.
44503
44504 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
44505
44506         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
44507
44508 2014-02-07  Richard Biener  <rguenther@suse.de>
44509
44510         PR middle-end/60092
44511         * gimple-low.c (lower_builtin_posix_memalign): New function.
44512         (lower_stmt): Call it to lower posix_memalign in a way
44513         to make alignment info accessible.
44514
44515 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
44516
44517         PR c++/60082
44518         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
44519         __builtin_setjmp_receiver.
44520
44521 2014-02-07  Richard Biener  <rguenther@suse.de>
44522
44523         PR middle-end/60092
44524         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
44525         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
44526         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
44527         Handle BUILT_IN_POSIX_MEMALIGN.
44528         (find_func_clobbers): Likewise.
44529         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
44530         (call_may_clobber_ref_p_1): Likewise.
44531
44532 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
44533
44534         PR ipa/59918
44535         * ipa-devirt.c (record_target_from_binfo): Remove overactive
44536         sanity check.
44537
44538 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
44539
44540         PR ipa/59469
44541         * lto-cgraph.c (lto_output_node): Use
44542         symtab_get_symbol_partitioning_class.
44543         (lto_output_varpool_node): likewise.
44544         (symtab_get_symbol_partitioning_class): Move here from
44545         lto/lto-partition.c
44546         * cgraph.h (symbol_partitioning_class): Likewise.
44547         (symtab_get_symbol_partitioning_class): Declare.
44548
44549 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
44550
44551         * ggc.h (ggc_internal_cleared_alloc): New macro.
44552         * vec.h (vec_safe_copy): Handle memory stats.
44553         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
44554         * target-globals.c (save_target_globals): Likewise.
44555
44556 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
44557
44558         PR target/60077
44559         * expr.c (emit_move_resolve_push): Export; be bit more selective
44560         on when to clear alias set.
44561         * expr.h (emit_move_resolve_push): Declare.
44562         * function.h (struct function): Add tail_call_marked.
44563         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
44564         * config/i386/i386-protos.h (ix86_expand_push): Remove.
44565         * config/i386/i386.md (TImode move expander): De not call
44566         ix86_expand_push.
44567         (FP push expanders): Preserve memory attributes.
44568         * config/i386/sse.md (push<mode>1): Remove.
44569         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
44570         (ix86_expand_push): Remove.
44571         * config/i386/mmx.md (push<mode>1): Remove.
44572
44573 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
44574
44575         PR rtl-optimization/60030
44576         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
44577         lopart with paradoxical subreg before shifting it up by hprec.
44578
44579 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44580
44581         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
44582         Remove extra newline at end of file.
44583         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
44584         (arm_issue_rate): Handle cortexa57.
44585         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
44586         (cortex-a57.cortex-a53): Likewise.
44587
44588 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
44589
44590         PR target/59575
44591         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
44592         don't record in REG_FRAME_RELATED_EXPR registers not set in that
44593         bitmask.
44594         (arm_expand_prologue): Adjust all callers.
44595         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
44596         info, registers also at the lowest numbered registers side.  Use
44597         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
44598         XEXP.
44599
44600         PR debug/59992
44601         * var-tracking.c (adjust_mems): Before adding a SET to
44602         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
44603
44604 2014-02-06  Alan Modra  <amodra@gmail.com>
44605
44606         PR target/60032
44607         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
44608         change SDmode to DDmode when lra_in_progress.
44609
44610 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
44611
44612         PR middle-end/59150
44613         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
44614         free_data_ref on the dr first, and before goto again also set dr
44615         to the next dr.  For simd_lane_access, free old datarefs[i] before
44616         overwriting it.  For get_vectype_for_scalar_type failure, don't
44617         free_data_ref if simd_lane_access.
44618
44619         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
44620
44621         PR target/60062
44622         * tree.h (opts_for_fn): New inline function.
44623         (opt_for_fn): Define.
44624         * config/i386/i386.c (ix86_function_regparm): Use
44625         opt_for_fn (decl, optimize) instead of optimize.
44626
44627 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
44628
44629         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
44630         for SYMBOL_REF in large memory model.
44631
44632 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44633
44634         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
44635         and crypto support.
44636         (cortex-a57): Likewise.
44637         (cortex-a57.cortex-a53): Likewise.
44638
44639 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
44640             Kugan Vivekanandarajah  <kuganv@linaro.org>
44641
44642         * config/arm/arm.c (arm_vector_alignment_reachable): Check
44643         unaligned_access.
44644         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
44645
44646 2014-02-06  Richard Biener  <rguenther@suse.de>
44647
44648         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
44649         set_loop_copy and initialize_original_copy_tables.
44650
44651 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
44652
44653         * config/aarch64/aarch64-simd.md
44654         (aarch64_ashr_simddi): Change QI to SI.
44655
44656 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
44657             Jakub Jelinek  <jakub@redhat.com>
44658
44659         PR middle-end/60013
44660         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
44661         of the dataflow.
44662
44663 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44664
44665         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
44666         CODE_FOR_altivec_vpku[hw]um to
44667         CODE_FOR_altivec_vpku[hw]um_direct.
44668         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
44669         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
44670         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
44671         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
44672
44673 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44674
44675         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
44676         generation for -maltivec=be.
44677         (altivec_vsumsws): Simplify redundant test.
44678
44679 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44680
44681         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
44682         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
44683         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
44684         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
44685         gen_altivec_vpkuwum.
44686         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
44687         BYTES_BIG_ENDIAN.
44688         (altivec_vpks<VI_char>ss): Likewise.
44689         (altivec_vpks<VI_char>us): Likewise.
44690         (altivec_vpku<VI_char>us): Likewise.
44691         (altivec_vpku<VI_char>um): Likewise.
44692         (altivec_vpku<VI_char>um_direct): New (copy of
44693         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
44694         internal use).
44695         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
44696         target is little endian and -maltivec=be is not specified.
44697         (*altivec_vupkhs<VU_char>_direct): New (copy of
44698         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
44699         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
44700         target is little endian and -maltivec=be is not specified.
44701         (*altivec_vupkls<VU_char>_direct): New (copy of
44702         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
44703         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
44704         little endian and -maltivec=be is not specified.
44705         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
44706         little endian and -maltivec=be is not specified.
44707
44708 2014-02-05  Richard Henderson  <rth@redhat.com>
44709
44710         PR debug/52727
44711         * combine-stack-adj.c: Revert r206943.
44712         * sched-int.h (struct deps_desc): Add last_args_size.
44713         * sched-deps.c (init_deps): Initialize it.
44714         (sched_analyze_insn): Add OUTPUT dependencies between insns that
44715         contain REG_ARGS_SIZE notes.
44716
44717 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
44718
44719         * lto-cgraph.c (asm_nodes_output): Make global.
44720         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
44721         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
44722         (driver_handle_option): Handle OPT_fwpa.
44723
44724 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
44725
44726         PR ipa/59947
44727         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
44728         a comment typo and formatting issue.  If odr_hash hasn't been
44729         created, return vNULL and set *completep to false.
44730
44731         PR middle-end/57499
44732         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
44733         bb with no successors.
44734
44735 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
44736
44737         PR target/59718
44738         * doc/invoke.texi (-march): Clarify documentation for ARM.
44739         (-mtune): Likewise.
44740         (-mcpu): Likewise.
44741
44742 2014-02-05  Richard Biener  <rguenther@suse.de>
44743
44744         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
44745         when not vectorizing because of too many alias checks.
44746         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
44747         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
44748
44749 2014-02-05  Nick Clifton  <nickc@redhat.com>
44750
44751         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
44752         accept extended registers in any mode when compiling for the MN10300.
44753
44754 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
44755
44756         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
44757         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
44758         sanitization attributes.
44759         (can_inline_edge_p): Likewise.
44760         (sanitize_attrs_match_for_inline_p): New function.
44761
44762 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
44763
44764         * ipa-prop.c (detect_type_change): Shor circuit testing of
44765         type changes on THIS pointer.
44766
44767 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
44768
44769         PR target/59777
44770         * config/pa/pa.c (legitimize_tls_address): Return original address
44771         if not passed a SYMBOL_REF rtx.
44772         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
44773         addresses.
44774         (pa_emit_move_sequence): Simplify TLS source operands.
44775         (pa_legitimate_constant_p): Reject all TLS constants.
44776         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
44777         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
44778
44779 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
44780
44781         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
44782         groups when we know they are controlled by LTO.
44783         * varasm.c (default_binds_local_p_1): If object is in other partition,
44784         it will be resolved locally.
44785
44786 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
44787
44788         * config/host-linux.c (linux_gt_pch_use_address): Don't
44789         use SSIZE_MAX because it is not always defined.
44790
44791 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
44792
44793         PR bootstrap/59913
44794         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
44795         threshold for pseudo splitting.
44796         (update_ebb_live_info): Process call argument hard registers and
44797         hard registers from insn definition too.
44798         (max_small_class_regs_num): New constant.
44799         (inherit_in_ebb): Update live hard regs through EBBs.  Update
44800         reloads_num only for small register classes.  Don't split for
44801         outputs of jumps.
44802
44803 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
44804
44805         PR ipa/60058
44806         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
44807         is non-null.
44808
44809 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
44810
44811         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
44812         visibility is safe.
44813
44814 2014-02-04  Marek Polacek  <polacek@redhat.com>
44815
44816         * gdbinit.in (pel): Define.
44817
44818 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
44819
44820         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
44821         behavior.
44822
44823 2014-02-04  Richard Biener  <rguenther@suse.de>
44824
44825         PR lto/59723
44826         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
44827         in function context local.
44828         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
44829         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
44830         similar to LTO_imported_decl_ref.
44831
44832 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
44833
44834         PR tree-optimization/60002
44835         * cgraphclones.c (build_function_decl_skip_args): Clear
44836         DECL_LANG_SPECIFIC.
44837
44838         PR tree-optimization/60023
44839         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
44840         false to gsi_replace.
44841         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
44842         has been in some EH region and vec_stmt could throw, add
44843         vec_stmt into the same EH region.
44844         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
44845         has no lhs, ignore it.
44846         * internal-fn.c (expand_MASK_LOAD): Likewise.
44847
44848         PR ipa/60026
44849         * tree-inline.c (copy_forbidden): Fail for
44850         __attribute__((optimize (0))) functions.
44851
44852         PR other/58712
44853         * omp-low.c (simd_clone_struct_copy): If from->inbranch
44854         is set, copy one less argument.
44855         (expand_simd_clones): Don't subtract clone_info->inbranch
44856         from simd_clone_struct_alloc argument.
44857
44858         PR rtl-optimization/57915
44859         * recog.c (simplify_while_replacing): If all unary/binary/relational
44860         operation arguments are constant, attempt to simplify those.
44861
44862         PR middle-end/59261
44863         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
44864         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
44865
44866 2014-02-04  Richard Biener  <rguenther@suse.de>
44867
44868         PR tree-optimization/60012
44869         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
44870         TBAA disambiguation to all DDRs.
44871
44872 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44873
44874         PR target/59788
44875         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
44876         (LINK_SPEC): Use it for -shared, -shared-libgcc.
44877
44878 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
44879
44880         PR ipa/59882
44881         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
44882
44883 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
44884
44885         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
44886         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
44887
44888 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
44889
44890         PR ipa/59831
44891         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
44892         to figure out targets of polymorphic calls with known decl.
44893         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
44894         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
44895         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
44896         (get_polymorphic_call_info): ... here.
44897         (get_polymorphic_call_info_from_invariant): New function.
44898
44899 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
44900
44901         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
44902         lookup via vtable pointer; check for type consistency
44903         and turn inconsitent facts into UNREACHABLE.
44904         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
44905         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
44906         type inconsistent querries; return UNREACHABLE instead.
44907
44908 2014-02-03  Richard Henderson  <rth@twiddle.net>
44909
44910         PR tree-opt/59924
44911         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
44912         already processed this node.
44913         (normalize_one_pred_1): Pass along mark_set.
44914         (normalize_one_pred): Create and destroy a pointer_set_t.
44915         (normalize_one_pred_chain): Likewise.
44916
44917 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
44918
44919         PR gcov-profile/58602
44920         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
44921
44922 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
44923
44924         PR ipa/59831
44925         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
44926         -fno-devirtualize; try to devirtualize by the knowledge of
44927         virtual table pointer given by aggregate propagation.
44928         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
44929         (ipa_print_node_jump_functions): Dump also offset that
44930         is relevant for polymorphic calls.
44931         (determine_known_aggregate_parts): Add arg_type parameter; use it
44932         instead of determining the type from pointer type.
44933         (ipa_compute_jump_functions_for_edge): Update call of
44934         determine_known_aggregate_parts.
44935         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
44936         (gimple_get_virt_method_for_binfo): ... here; simplify using
44937         vtable_pointer_value_to_vtable.
44938         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
44939         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
44940         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
44941         (vtable_pointer_value_to_vtable): Break out from ...; handle also
44942         POINTER_PLUS_EXPR.
44943         (vtable_pointer_value_to_binfo): ... here.
44944         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
44945
44946 2014-02-03  Teresa Johnson  <tejohnson@google.com>
44947
44948         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
44949         redef of outer loop index variable.
44950
44951 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
44952
44953         PR c++/53017
44954         PR c++/59211
44955         * doc/extend.texi (Function Attributes): Typo.
44956
44957 2014-02-03  Cong Hou  <congh@google.com>
44958
44959         PR tree-optimization/60000
44960         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
44961         if the vectorized statement is a store.  A store statement can only
44962         appear at the end of pattern statements.
44963
44964 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
44965
44966         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
44967         (ix86_option_override_internal): Default long double to 64-bit for
44968         32-bit Bionic and to 128-bit for 64-bit Bionic.
44969
44970         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
44971         TARGET_LONG_DOUBLE_128 is true.
44972         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
44973
44974         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
44975         (mlong-double-64): Negate -mlong-double-128.
44976         (mlong-double-128): New option.
44977
44978         * config/i386/i386-c.c (ix86_target_macros): Define
44979         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
44980
44981         * doc/invoke.texi: Document -mlong-double-128.
44982
44983 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
44984
44985         PR rtl-optimization/60024
44986         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
44987
44988 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
44989
44990         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
44991
44992 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
44993
44994         PR rtl-optimization/57662
44995         * sel-sched.c (code_motion_path_driver): Do not mark already not
44996         existing blocks in the visiting bitmap.
44997
44998 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
44999
45000         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
45001         on the insn being emitted.
45002
45003 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
45004             Will Deacon  <will.deacon@arm.com>
45005
45006         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
45007
45008 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45009
45010         * config/arm/arm-tables.opt: Regenerate.
45011
45012 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45013
45014         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
45015         for vector types other than V16QImode.
45016         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
45017         define_expand, and call altivec_expand_vec_perm_le when producing
45018         code with little endian element order.
45019         (*altivec_vperm_<mode>_internal): New insn having previous
45020         behavior of altivec_vperm_<mode>.
45021         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
45022         altivec_expand_vec_perm_le when producing code with little endian
45023         element order.
45024         (*altivec_vperm_<mode>_uns_internal): New insn having previous
45025         behavior of altivec_vperm_<mode>_uns.
45026
45027 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45028
45029         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
45030         (altivec_vsumsws): Add handling for -maltivec=be with a little
45031         endian target.
45032         (altivec_vsumsws_direct): New.
45033         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
45034         gen_altivec_vsumsws.
45035
45036 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
45037
45038         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
45039         vtable_pointer_value_to_binfo): New functions.
45040         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
45041         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
45042
45043 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
45044
45045         * config/nios2/nios2.md (load_got_register): Initialize GOT
45046         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
45047         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
45048
45049 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
45050
45051         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
45052         preserverd by passthrough, do not propagate the type.
45053
45054 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
45055
45056         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
45057         (mips_atomic_assign_expand_fenv): New function.
45058         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
45059
45060 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
45061
45062         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
45063         (__builtin_mips_set_fcsr): Likewise.
45064         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
45065         MIPS_USI_FTYPE_VOID.
45066         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
45067         (mips16_expand_set_fcsr): Likewise.
45068         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
45069         (mips16_set_fcsr_stub): Likewise.
45070         (mips16_get_fcsr_one_only_stub): New class.
45071         (mips16_set_fcsr_one_only_stub): Likewise.
45072         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
45073         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
45074         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
45075         (hard_float): New availability predicate.
45076         (mips_builtins): Add get_fcsr and set_fcsr.
45077         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
45078         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
45079         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
45080         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
45081         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
45082         patterns.
45083
45084 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
45085
45086         * config/mips/mips.c (mips_one_only_stub): New class.
45087         (mips_need_mips16_rdhwr_p): Replace with...
45088         (mips16_rdhwr_stub): ...this new variable.
45089         (mips16_stub_call_address): New function.
45090         (mips16_rdhwr_one_only_stub): New class.
45091         (mips_expand_thread_pointer): Use mips16_stub_call_address.
45092         (mips_output_mips16_rdhwr): Delete.
45093         (mips_finish_stub): New function.
45094         (mips_code_end): Use it to handle rdhwr stubs.
45095
45096 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
45097
45098         PR target/60017
45099         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
45100         when calculating size of integer atomic types.
45101
45102 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
45103
45104         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
45105
45106 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
45107
45108         PR tree-optimization/60003
45109         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
45110         * profile.c (branch_prob): Use gimple_call_builtin_p
45111         to check for BUILT_IN_SETJMP_RECEIVER.
45112         * tree-inline.c (copy_bb): Call notice_special_calls.
45113
45114 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
45115
45116         PR bootstrap/59985
45117         * lra-constraints.c (process_alt_operands): Update reload_sum only
45118         on the first pass.
45119
45120 2014-01-31  Richard Henderson  <rth@redhat.com>
45121
45122         PR middle-end/60004
45123         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
45124         until after else_eh is processed.
45125
45126 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
45127
45128         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
45129         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
45130         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
45131         in smmintrin.h, remove them.
45132         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
45133         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
45134         * config/i386/i386.md (ROUND_SAE): Fix value.
45135         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
45136         (const48_operand): New.
45137         * config/i386/subst.md (round), (round_expand): Use
45138         const_4_or_8_to_11_operand.
45139         (round_saeonly), (round_saeonly_expand): Use const48_operand.
45140
45141 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
45142
45143         * config/i386/constraints.md (Yk): Swap meaning with k.
45144         * config/i386/i386.md (movhi_internal): Change Yk to k.
45145         (movqi_internal): Ditto.
45146         (*k<logic><mode>): Ditto.
45147         (*andhi_1): Ditto.
45148         (*andqi_1): Ditto.
45149         (kandn<mode>): Ditto.
45150         (*<code>hi_1): Ditto.
45151         (*<code>qi_1): Ditto.
45152         (kxnor<mode>): Ditto.
45153         (kortestzhi): Ditto.
45154         (kortestchi): Ditto.
45155         (kunpckhi): Ditto.
45156         (*one_cmplhi2_1): Ditto.
45157         (*one_cmplqi2_1): Ditto.
45158         * config/i386/sse.md (): Change k to Yk.
45159         (avx512f_load<mode>_mask): Ditto.
45160         (avx512f_blendm<mode>): Ditto.
45161         (avx512f_store<mode>_mask): Ditto.
45162         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
45163         (avx512f_storedqu<mode>_mask): Ditto.
45164         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
45165         Ditto.
45166         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
45167         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
45168         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
45169         (avx512f_maskcmp<mode>3): Ditto.
45170         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
45171         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
45172         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
45173         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
45174         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
45175         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
45176         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
45177         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
45178         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
45179         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
45180         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
45181         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
45182         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
45183         (vec_extract_lo_<mode>_maskm): Ditto.
45184         (vec_extract_hi_<mode>_maskm): Ditto.
45185         (avx512f_vternlog<mode>_mask): Ditto.
45186         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
45187         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
45188         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
45189         (avx512f_<code>v8div16qi2_mask): Ditto.
45190         (avx512f_<code>v8div16qi2_mask_store): Ditto.
45191         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
45192         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
45193         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
45194         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
45195         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45196         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45197         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45198         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45199         (avx512cd_maskb_vec_dupv8di): Ditto.
45200         (avx512cd_maskw_vec_dupv16si): Ditto.
45201         (avx512f_vpermi2var<mode>3_maskz): Ditto.
45202         (avx512f_vpermi2var<mode>3_mask): Ditto.
45203         (avx512f_vpermi2var<mode>3_mask): Ditto.
45204         (avx512f_vpermt2var<mode>3_maskz): Ditto.
45205         (*avx512f_gathersi<mode>): Ditto.
45206         (*avx512f_gathersi<mode>_2): Ditto.
45207         (*avx512f_gatherdi<mode>): Ditto.
45208         (*avx512f_gatherdi<mode>_2): Ditto.
45209         (*avx512f_scattersi<mode>): Ditto.
45210         (*avx512f_scatterdi<mode>): Ditto.
45211         (avx512f_compress<mode>_mask): Ditto.
45212         (avx512f_compressstore<mode>_mask): Ditto.
45213         (avx512f_expand<mode>_mask): Ditto.
45214         * config/i386/subst.md (mask): Change k to Yk.
45215         (mask_scalar_merge): Ditto.
45216         (sd): Ditto.
45217
45218 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
45219
45220         * doc/extend.texi (Vector Extensions): Document ?: in C++.
45221
45222 2014-01-31  Richard Biener  <rguenther@suse.de>
45223
45224         PR middle-end/59990
45225         * builtins.c (fold_builtin_memory_op): Make sure to not
45226         use a floating-point mode or a boolean or enumeral type for
45227         the copy operation.
45228
45229 2014-01-30  DJ Delorie  <dj@redhat.com>
45230
45231         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
45232         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
45233         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
45234         whenever main() has an epilogue.
45235
45236 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45237
45238         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
45239         unused variable "field".
45240         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
45241         (vsx_mergeh_<mode>): Likewise.
45242         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
45243         (altivec_vmrghh): Likewise.
45244         (altivec_vmrghw): Likewise.
45245         (altivec_vmrglb): Likewise.
45246         (altivec_vmrglh): Likewise.
45247         (altivec_vmrglw): Likewise.
45248         (altivec_vspltb): Add missing uses.
45249         (altivec_vsplth): Likewise.
45250         (altivec_vspltw): Likewise.
45251         (altivec_vspltsf): Likewise.
45252
45253 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
45254
45255         PR target/59923
45256         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
45257         frame related instructions.
45258
45259 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
45260
45261         PR rtl-optimization/59959
45262         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
45263         any reload of register whose subreg is invalid.
45264
45265 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
45266
45267         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
45268         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
45269         Add missing return type - void.
45270
45271 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45272
45273         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
45274         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
45275         remove element index adjustment for endian (now handled in vsx.md
45276         and altivec.md).
45277         (altivec_expand_vec_perm_const): Use
45278         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
45279         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
45280         (vsx_xxspltw_<mode>): Adjust element index for little endian.
45281         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
45282         define_expand and a new define_insn *altivec_vspltb_internal;
45283         adjust for -maltivec=be on a little endian target.
45284         (altivec_vspltb_direct): New.
45285         (altivec_vsplth): Divide into a define_expand and a new
45286         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
45287         little endian target.
45288         (altivec_vsplth_direct): New.
45289         (altivec_vspltw): Divide into a define_expand and a new
45290         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
45291         little endian target.
45292         (altivec_vspltw_direct): New.
45293         (altivec_vspltsf): Divide into a define_expand and a new
45294         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
45295         a little endian target.
45296
45297 2014-01-30  Richard Biener  <rguenther@suse.de>
45298
45299         PR tree-optimization/59993
45300         * tree-ssa-forwprop.c (associate_pointerplus): Check we
45301         can propagate form the earlier stmt and avoid the transform
45302         when the intermediate result is needed.
45303
45304 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
45305
45306         * README.Portability: Fix typo.
45307
45308 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
45309
45310         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
45311         comparison_operator with ordered_comparison_operator.
45312
45313 2014-01-30  Nick Clifton  <nickc@redhat.com>
45314
45315         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
45316         Rename to mn10300_store_multiple_regs.
45317         * config/mn10300/mn10300.c: Likewise.
45318         * config/mn10300/mn10300.md (store_movm): Fix typo: call
45319         store_multiple_regs.
45320         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
45321         Call mn10300_store_multiple_regs.
45322
45323 2014-01-30  Nick Clifton  <nickc@redhat.com>
45324             DJ Delorie  <dj@redhat.com>
45325
45326         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
45327         %fp 2 to keep registers after it properly word-aligned.
45328         (rl78_alloc_physical_registers_umul): Handle the case where both
45329         input operands are the same.
45330
45331 2014-01-30  Richard Biener  <rguenther@suse.de>
45332
45333         PR tree-optimization/59903
45334         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
45335         check properly.
45336
45337 2014-01-30  Jason Merrill  <jason@redhat.com>
45338
45339         PR c++/59633
45340         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
45341
45342         PR c++/59645
45343         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
45344
45345 2014-01-30  Richard Biener  <rguenther@suse.de>
45346
45347         PR tree-optimization/59951
45348         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
45349
45350 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
45351
45352         PR target/59784
45353         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
45354         SFmode to DFmode case.
45355
45356 2014-01-29  DJ Delorie  <dj@redhat.com>
45357
45358         * config/msp430/msp430.opt (-minrt): New.
45359         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
45360         if -minrt given.
45361         (ENDFILE_SPEC): Likewise.
45362
45363 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
45364
45365         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
45366         (estimate_function_body_sizes): Use it.
45367
45368 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
45369
45370         PR c++/58561
45371         * dwarf2out.c (is_cxx_auto): New.
45372         (is_base_type): Use it.
45373         (gen_type_die_with_usage): Likewise.
45374
45375 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45376
45377         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
45378         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
45379         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
45380         -maltivec=be with LE targets.
45381         (vsx_mergeh_<mode>): Likewise.
45382         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
45383         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
45384         (altivec_vmrghb): Replace with define_expand and new
45385         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
45386         (altivec_vmrghb_direct): New define_insn.
45387         (altivec_vmrghh): Replace with define_expand and new
45388         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
45389         (altivec_vmrghh_direct): New define_insn.
45390         (altivec_vmrghw): Replace with define_expand and new
45391         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
45392         (altivec_vmrghw_direct): New define_insn.
45393         (*altivec_vmrghsf): Adjust for endianness.
45394         (altivec_vmrglb): Replace with define_expand and new
45395         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
45396         (altivec_vmrglb_direct): New define_insn.
45397         (altivec_vmrglh): Replace with define_expand and new
45398         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
45399         (altivec_vmrglh_direct): New define_insn.
45400         (altivec_vmrglw): Replace with define_expand and new
45401         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
45402         (altivec_vmrglw_direct): New define_insn.
45403         (*altivec_vmrglsf): Adjust for endianness.
45404         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
45405         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
45406         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
45407         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
45408         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
45409         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
45410         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
45411         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
45412
45413 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
45414
45415         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
45416         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
45417         whitespace.
45418
45419 2014-01-29  Richard Biener  <rguenther@suse.de>
45420
45421         PR tree-optimization/58742
45422         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
45423         associate_pointerplus_align.
45424         (associate_pointerplus_diff): New function.
45425         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
45426         and associate_pointerplus_diff.
45427
45428 2014-01-29  Richard Biener  <rguenther@suse.de>
45429
45430         * lto-streamer.h (LTO_major_version): Bump to 3.
45431         (LTO_minor_version): Reset to 0.
45432
45433 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
45434
45435         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
45436         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
45437         (arm_file_start): Generate correct asm header for armv7ve.
45438         * config/arm/bpabi.h: Add multilib support for armv7ve.
45439         * config/arm/driver-arm.c: Change the architectures of cortex-a7
45440         and cortex-a15 to armv7ve.
45441         * config/arm/t-aprofile: Add multilib support for armv7ve.
45442         * doc/invoke.texi: Document -march=armv7ve.
45443
45444 2014-01-29  Richard Biener  <rguenther@suse.de>
45445
45446         PR tree-optimization/58742
45447         * tree-ssa-forwprop.c (associate_plusminus): Return true
45448         if we changed sth, defer EH cleanup to ...
45449         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
45450         (simplify_mult): New function.
45451
45452 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
45453
45454         PR middle-end/59917
45455         PR tree-optimization/59920
45456         * tree.c (build_common_builtin_nodes): Remove
45457         __builtin_setjmp_dispatcher initialization.
45458         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
45459         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
45460         instead of gsi_after_labels + manually skipping debug stmts.
45461         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
45462         ignore bbs with IFN_ABNORMAL_DISPATCHER.
45463         * tree-inline.c (copy_edges_for_bb): Remove
45464         can_make_abnormal_goto argument, instead add abnormal_goto_dest
45465         argument.  Ignore computed_goto_p stmts.  Don't call
45466         make_abnormal_goto_edges.  If a call might need abnormal edges
45467         for non-local gotos, see if it already has an edge to
45468         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
45469         with true argument, don't do anything then, otherwise add
45470         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
45471         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
45472         caller.
45473         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
45474         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
45475         (lower_stmt): Don't set data->calls_builtin_setjmp.
45476         (lower_builtin_setjmp): Adjust comment.
45477         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
45478         * tree-cfg.c (found_computed_goto): Remove.
45479         (factor_computed_gotos): Remove.
45480         (make_goto_expr_edges): Return bool, true for computed gotos.
45481         Don't call make_abnormal_goto_edges.
45482         (build_gimple_cfg): Don't set found_computed_goto, don't call
45483         factor_computed_gotos.
45484         (computed_goto_p): No longer static.
45485         (make_blocks): Don't set found_computed_goto.
45486         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
45487         (make_edges): If make_goto_expr_edges returns true, push bb
45488         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
45489         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
45490         vector.  Record mapping between bbs and OpenMP regions if there
45491         are any, adjust make_gimple_omp_edges caller.  Call
45492         handle_abnormal_edges.
45493         (make_abnormal_goto_edges): Remove.
45494         * tree-cfg.h (make_abnormal_goto_edges): Remove.
45495         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
45496         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
45497         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
45498         * internal-fn.def (ABNORMAL_DISPATCHER): New.
45499         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
45500         filling *region also set *region_idx to (*region)->entry->index.
45501
45502         PR other/58712
45503         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
45504         For REGs set ORIGINAL_REGNO.
45505
45506 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
45507
45508         * doc/md.texi: Mention that a target shouldn't implement
45509         vec_widen_(s|u)mul_even/odd pair if it is less efficient
45510         than hi/lo pair.
45511
45512 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
45513
45514         PR tree-optimization/59594
45515         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
45516         a copy of the datarefs vector rather than the vector itself.
45517
45518 2014-01-28  Jason Merrill  <jason@redhat.com>
45519
45520         PR c++/53756
45521         * dwarf2out.c (auto_die): New static.
45522         (gen_type_die_with_usage): Handle C++1y 'auto'.
45523         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
45524         on definition.
45525
45526 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
45527
45528         PR target/59672
45529         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
45530         (SPEC_X32): Likewise.
45531         (SPEC_64): Likewise.
45532         * config/i386/i386.c (ix86_option_override_internal): Turn off
45533         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
45534         for TARGET_16BIT.
45535         (x86_file_start): Output .code16gcc for TARGET_16BIT.
45536         * config/i386/i386.h (TARGET_16BIT): New macro.
45537         (TARGET_16BIT_P): Likewise.
45538         * config/i386/i386.opt: Add m16.
45539         * doc/invoke.texi: Document -m16.
45540
45541 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
45542
45543         PR preprocessor/59935
45544         * input.c (location_get_source_line): Bail out on when line number
45545         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
45546
45547 2014-01-28  Richard Biener  <rguenther@suse.de>
45548
45549         PR tree-optimization/58742
45550         * tree-ssa-forwprop.c (associate_plusminus): Handle
45551         pointer subtraction of the form (T)(P + A) - (T)P.
45552
45553 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45554
45555         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
45556         at const_int_cost.
45557
45558 2014-01-28  Richard Biener  <rguenther@suse.de>
45559
45560         Revert
45561         2014-01-28  Richard Biener  <rguenther@suse.de>
45562
45563         PR rtl-optimization/45364
45564         PR rtl-optimization/59890
45565         * var-tracking.c (local_get_addr_clear_given_value): Handle
45566         already cleared slot.
45567         (val_reset): Handle not allocated local_get_addr_cache.
45568         (vt_find_locations): Use post-order on the inverted CFG.
45569
45570 2014-01-28  Richard Biener  <rguenther@suse.de>
45571
45572         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
45573
45574 2014-01-28  Richard Biener  <rguenther@suse.de>
45575
45576         PR rtl-optimization/45364
45577         PR rtl-optimization/59890
45578         * var-tracking.c (local_get_addr_clear_given_value): Handle
45579         already cleared slot.
45580         (val_reset): Handle not allocated local_get_addr_cache.
45581         (vt_find_locations): Use post-order on the inverted CFG.
45582
45583 2014-01-28  Alan Modra  <amodra@gmail.com>
45584
45585         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
45586         * configure.ac <recursive call for build != host>: Define
45587         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
45588         and LD_FOR_BUILD too.
45589         * configure: Regenerate.
45590
45591 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
45592
45593         * config/i386/i386.c (get_builtin_code_for_version): Separate
45594         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
45595         Broadwell from Haswell.
45596
45597 2014-01-27  Steve Ellcey  <sellcey@mips.com>
45598
45599         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
45600         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
45601         * config/mips/mips.c (mips_option_override): Change setting
45602         of TARGET_DSP.
45603         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
45604         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
45605         Change from Mask to Var.
45606
45607 2014-01-27  Jeff Law  <law@redhat.com>
45608
45609         * ipa-inline.c (inline_small_functions): Fix typo.
45610
45611 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
45612
45613         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
45614         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
45615         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
45616         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
45617         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
45618         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
45619         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
45620         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
45621         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
45622         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
45623         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
45624         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
45625         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
45626         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
45627         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
45628         (_mm512_storeu_epi64): Ditto.
45629         (_mm512_cmpge_epi32_mask): Ditto.
45630         (_mm512_cmpge_epu32_mask): Ditto.
45631         (_mm512_cmpge_epi64_mask): Ditto.
45632         (_mm512_cmpge_epu64_mask): Ditto.
45633         (_mm512_cmple_epi32_mask): Ditto.
45634         (_mm512_cmple_epu32_mask): Ditto.
45635         (_mm512_cmple_epi64_mask): Ditto.
45636         (_mm512_cmple_epu64_mask): Ditto.
45637         (_mm512_cmplt_epi32_mask): Ditto.
45638         (_mm512_cmplt_epu32_mask): Ditto.
45639         (_mm512_cmplt_epi64_mask): Ditto.
45640         (_mm512_cmplt_epu64_mask): Ditto.
45641         (_mm512_cmpneq_epi32_mask): Ditto.
45642         (_mm512_cmpneq_epu32_mask): Ditto.
45643         (_mm512_cmpneq_epi64_mask): Ditto.
45644         (_mm512_cmpneq_epu64_mask): Ditto.
45645         (_mm512_expand_pd): Ditto.
45646         (_mm512_expand_ps): Ditto.
45647         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
45648         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
45649         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
45650         * config/i386/i386.c (ix86_builtins): Add
45651         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
45652         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
45653         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
45654         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
45655         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
45656         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
45657         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
45658         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
45659         IX86_BUILTIN_PMOVUSQW512_MEM.
45660         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
45661         __builtin_ia32_pmovsqd512mem_mask,
45662         __builtin_ia32_pmovqd512mem_mask,
45663         __builtin_ia32_pmovusqw512mem_mask,
45664         __builtin_ia32_pmovsqw512mem_mask,
45665         __builtin_ia32_pmovqw512mem_mask,
45666         __builtin_ia32_pmovusdw512mem_mask,
45667         __builtin_ia32_pmovsdw512mem_mask,
45668         __builtin_ia32_pmovdw512mem_mask,
45669         __builtin_ia32_pmovqb512mem_mask,
45670         __builtin_ia32_pmovusqb512mem_mask,
45671         __builtin_ia32_pmovsqb512mem_mask,
45672         __builtin_ia32_pmovusdb512mem_mask,
45673         __builtin_ia32_pmovsdb512mem_mask,
45674         __builtin_ia32_pmovdb512mem_mask.
45675         (bdesc_args): Add __builtin_ia32_expanddf512,
45676         __builtin_ia32_expandsf512.
45677         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
45678         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
45679         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
45680         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
45681         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
45682         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
45683         (avx512f_<code>v8div16qi2_mask_store): This.
45684         (avx512f_expand<mode>): New.
45685
45686 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
45687
45688         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
45689         New.
45690         (_mm512_mask_prefetch_i64gather_pd): Ditto.
45691         (_mm512_prefetch_i32scatter_pd): Ditto.
45692         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
45693         (_mm512_prefetch_i64scatter_pd): Ditto.
45694         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
45695         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
45696         (_mm512_mask_prefetch_i64gather_ps): Ditto.
45697         (_mm512_prefetch_i32scatter_ps): Ditto.
45698         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
45699         (_mm512_prefetch_i64scatter_ps): Ditto.
45700         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
45701         * config/i386/i386-builtin-types.def: Define
45702         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
45703         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
45704         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
45705         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
45706         IX86_BUILTIN_SCATTERPFQPD.
45707         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
45708         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
45709         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
45710         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
45711         __builtin_ia32_scatterpfqps.
45712         (ix86_expand_builtin): Expand new built-ins.
45713         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
45714         fix memory access data type.
45715         (*avx512pf_gatherpf<mode>_mask): Ditto.
45716         (*avx512pf_gatherpf<mode>): Ditto.
45717         (avx512pf_scatterpf<mode>): Ditto.
45718         (*avx512pf_scatterpf<mode>_mask): Ditto.
45719         (*avx512pf_scatterpf<mode>): Ditto.
45720         (GATHER_SCATTER_SF_MEM_MODE): New.
45721         (avx512pf_gatherpf<mode>df): Ditto.
45722         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45723         (*avx512pf_scatterpf<mode>df): Ditto.
45724
45725 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
45726
45727         PR bootstrap/59934
45728         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
45729         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
45730         reached.
45731
45732 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
45733
45734         * common/config/arm/arm-common.c
45735         (arm_rewrite_mcpu): Handle multiple names.
45736         * config/arm/arm.h
45737         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
45738
45739 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
45740
45741         * gimple-builder.h (create_gimple_tmp): Delete.
45742
45743 2014-01-27  Christian Bruel  <christian.bruel@st.com>
45744
45745         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
45746         words comparisons.
45747
45748 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
45749
45750         * config/pa/pa.md (call): Generate indirect long calls to non-local
45751         functions when outputing 32-bit code.
45752         (call_value): Likewise except for special call to buggy powf function.
45753
45754         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
45755         portable runtime and PIC indirect calls.
45756         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
45757         and PIC call sequences.  Use ldo instead of blr to set return register
45758         in PIC call sequence.
45759
45760 2014-01-25  Walter Lee  <walt@tilera.com>
45761
45762         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
45763         avoid clobbering a live register.
45764
45765 2014-01-25  Walter Lee  <walt@tilera.com>
45766
45767         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
45768         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
45769         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
45770         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
45771
45772 2014-01-25  Walter Lee  <walt@tilera.com>
45773
45774         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
45775         arguments on even registers.
45776         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
45777         STACK_BOUNDARY.
45778         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
45779         (BIGGEST_ALIGNMENT): Ditto.
45780         (BIGGEST_FIELD_ALIGNMENT): Ditto.
45781
45782 2014-01-25  Walter Lee  <walt@tilera.com>
45783
45784         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
45785         insns before bundling.
45786         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
45787
45788 2014-01-25  Walter Lee  <walt@tilera.com>
45789
45790         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
45791         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
45792         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
45793
45794 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
45795
45796         * config/mips/constraints.md (kl): Delete.
45797         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
45798         define expands, using...
45799         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
45800         instructions for MIPS16.
45801         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
45802         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
45803
45804 2014-01-25  Walter Lee  <walt@tilera.com>
45805
45806         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
45807         (clzdi2): Ditto.
45808         (ffsdi2): Ditto.
45809
45810 2014-01-25  Walter Lee  <walt@tilera.com>
45811
45812         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
45813         (TARGET_EXPAND_TO_RTL_HOOK): Define.
45814
45815 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
45816
45817         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
45818         Handle XOR.
45819
45820 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
45821
45822         * print-rtl.c (in_call_function_usage): New var.
45823         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
45824         EXPR_LIST mode as mode and not as reg note name.
45825
45826         PR middle-end/59561
45827         * cfgloopmanip.c (copy_loop_info): If
45828         loop->warned_aggressive_loop_optimizations, make sure
45829         the flag is set in target loop too.
45830
45831 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
45832
45833         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
45834         flag_cilkplus.
45835         * builtins.def: Likewise.
45836         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
45837         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
45838         * ira.c (ira_setup_eliminable_regset): Likewise.
45839         * omp-low.c (gate_expand_omp): Likewise.
45840         (execute_lower_omp): Likewise.
45841         (diagnose_sb_0): Likewise.
45842         (gate_diagnose_omp_blocks): Likewise.
45843         (simd_clone_clauses_extract): Likewise.
45844         (gate): Likewise.
45845
45846 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45847
45848         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
45849         correction for little endian...
45850         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
45851         here.
45852
45853 2014-01-24  Jeff Law  <law@redhat.com>
45854
45855         PR tree-optimization/59919
45856         * tree-vrp.c (find_assert_locations_1): Do not register asserts
45857         for non-returning calls.
45858
45859 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
45860
45861         * common/config/aarch64/aarch64-common.c
45862         (aarch64_rewrite_mcpu): Handle multiple names.
45863         * config/aarch64/aarch64.h
45864         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
45865
45866 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
45867
45868         * input.c (add_file_to_cache_tab): Handle the case where fopen
45869         returns NULL.
45870
45871 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
45872
45873         PR target/59929
45874         * config/i386/i386.md (pushsf splitter): Get stack adjustment
45875         from push operand if code of push isn't PRE_DEC.
45876
45877 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
45878
45879         PR target/59909
45880         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
45881         -mquad-memory-atomic.  Update -mquad-memory documentation to say
45882         it is only used for non-atomic loads/stores.
45883
45884         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
45885         -mquad-memory or -mquad-memory-atomic switches.
45886
45887         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
45888         -mquad-memory-atomic to ISA 2.07 support.
45889
45890         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
45891         to separate support of normal quad word memory operations (ldq, stq)
45892         from the atomic quad word memory operations.
45893
45894         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
45895         support to separate non-atomic quad word operations from atomic
45896         quad word operations.  Disable non-atomic quad word operations in
45897         little endian mode so that we don't have to swap words after the
45898         load and before the store.
45899         (quad_load_store_p): Add comment about atomic quad word support.
45900         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
45901         options printed with -mdebug=reg.
45902
45903         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
45904         -mquad-memory-atomic as the test for whether we have quad word
45905         atomic instructions.
45906         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
45907         or -mp8-vector are used, allow byte/half-word atomic operations.
45908
45909         * config/rs6000/sync.md (load_lockedti): Insure that the address
45910         is a proper indexed or indirect address for the lqarx instruction.
45911         On little endian systems, swap the hi/lo registers after the lqarx
45912         instruction.
45913         (load_lockedpti): Use indexed_or_indirect_operand predicate to
45914         insure the address is valid for the lqarx instruction.
45915         (store_conditionalti): Insure that the address is a proper indexed
45916         or indirect address for the stqcrx. instruction.  On little endian
45917         systems, swap the hi/lo registers before doing the stqcrx.
45918         instruction.
45919         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
45920         insure the address is valid for the stqcrx. instruction.
45921
45922         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
45923         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
45924         type of quad memory support is available.
45925
45926 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
45927
45928         PR regression/59915
45929         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
45930         there is a danger of looping.
45931
45932 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
45933
45934         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
45935         force flag_ira_loop_pressure if set via command line.
45936
45937 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
45938
45939         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
45940         (ashr_simd): New builtin handling DI mode.
45941         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
45942         (aarch64_sshr_simddi): New match pattern.
45943         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
45944         (vshrd_n_s64): Likewise.
45945         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
45946
45947 2014-01-23  Nick Clifton  <nickc@redhat.com>
45948
45949         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
45950         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
45951         favour of mcu specific scripts.
45952         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
45953         430x multilibs.
45954
45955 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
45956             Alex Velenko  <Alex.Velenko@arm.com>
45957
45958         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
45959         (vaddv_s16): Likewise.
45960         (vaddv_s32): Likewise.
45961         (vaddv_u8): Likewise.
45962         (vaddv_u16): Likewise.
45963         (vaddv_u32): Likewise.
45964         (vaddvq_s8): Likewise.
45965         (vaddvq_s16): Likewise.
45966         (vaddvq_s32): Likewise.
45967         (vaddvq_s64): Likewise.
45968         (vaddvq_u8): Likewise.
45969         (vaddvq_u16): Likewise.
45970         (vaddvq_u32): Likewise.
45971         (vaddvq_u64): Likewise.
45972         (vaddv_f32): Likewise.
45973         (vaddvq_f32): Likewise.
45974         (vaddvq_f64): Likewise.
45975         (vmaxv_f32): Likewise.
45976         (vmaxv_s8): Likewise.
45977         (vmaxv_s16): Likewise.
45978         (vmaxv_s32): Likewise.
45979         (vmaxv_u8): Likewise.
45980         (vmaxv_u16): Likewise.
45981         (vmaxv_u32): Likewise.
45982         (vmaxvq_f32): Likewise.
45983         (vmaxvq_f64): Likewise.
45984         (vmaxvq_s8): Likewise.
45985         (vmaxvq_s16): Likewise.
45986         (vmaxvq_s32): Likewise.
45987         (vmaxvq_u8): Likewise.
45988         (vmaxvq_u16): Likewise.
45989         (vmaxvq_u32): Likewise.
45990         (vmaxnmv_f32): Likewise.
45991         (vmaxnmvq_f32): Likewise.
45992         (vmaxnmvq_f64): Likewise.
45993         (vminv_f32): Likewise.
45994         (vminv_s8): Likewise.
45995         (vminv_s16): Likewise.
45996         (vminv_s32): Likewise.
45997         (vminv_u8): Likewise.
45998         (vminv_u16): Likewise.
45999         (vminv_u32): Likewise.
46000         (vminvq_f32): Likewise.
46001         (vminvq_f64): Likewise.
46002         (vminvq_s8): Likewise.
46003         (vminvq_s16): Likewise.
46004         (vminvq_s32): Likewise.
46005         (vminvq_u8): Likewise.
46006         (vminvq_u16): Likewise.
46007         (vminvq_u32): Likewise.
46008         (vminnmv_f32): Likewise.
46009         (vminnmvq_f32): Likewise.
46010         (vminnmvq_f64): Likewise.
46011
46012 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46013
46014         * config/aarch64/aarch64-simd.md
46015         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
46016         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
46017         (*aarch64_mul3_elt<mode>): Likewise.
46018         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
46019         (*aarch64_mul3_elt_to_64v2df): Likewise.
46020         (*aarch64_mla_elt<mode>): Likewise.
46021         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
46022         (*aarch64_mls_elt<mode>): Likewise.
46023         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
46024         (*aarch64_fma4_elt<mode>): Likewise.
46025         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
46026         (*aarch64_fma4_elt_to_64v2df): Likewise.
46027         (*aarch64_fnma4_elt<mode>): Likewise.
46028         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
46029         (*aarch64_fnma4_elt_to_64v2df): Likewise.
46030         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
46031         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
46032         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46033         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46034         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
46035         (aarch64_sqdmull_lane<mode>_internal): Likewise.
46036         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
46037
46038 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46039
46040         * config/aarch64/aarch64-simd.md
46041         (aarch64_be_checked_get_lane<mode>): New define_expand.
46042         * config/aarch64/aarch64-simd-builtins.def
46043         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
46044         New builtin definition.
46045         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
46046         Use new safe be builtin.
46047
46048 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46049
46050         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
46051         New define_insn.
46052         (aarch64_be_st1<mode>): Likewise.
46053         (aarch_ld1<VALL:mode>): Define_expand modified.
46054         (aarch_st1<VALL:mode>): Likewise.
46055         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
46056         (UNSPEC_ST1): Likewise.
46057
46058 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
46059
46060         * config/microblaze/microblaze.md: Add trap insn and attribute
46061
46062 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
46063
46064         PR preprocessor/58580
46065         * input.h (location_get_source_line): Take an additional line_size
46066         parameter.
46067         (void diagnostics_file_cache_fini): Declare new function.
46068         * input.c (struct fcache): New type.
46069         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
46070         New static constants.
46071         (diagnostic_file_cache_init, total_lines_num)
46072         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
46073         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
46074         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
46075         (get_next_line, read_next_line, goto_next_line, read_line_num):
46076         New static function definitions.
46077         (diagnostic_file_cache_fini): New function.
46078         (location_get_source_line): Take an additional output line_len
46079         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
46080         read_line_num.
46081         * diagnostic.c (diagnostic_finish): Call
46082         diagnostic_file_cache_fini.
46083         (adjust_line): Take an additional input parameter for the length
46084         of the line, rather than calculating it with strlen.
46085         (diagnostic_show_locus): Adjust the use of
46086         location_get_source_line and adjust_line with respect to their new
46087         signature.  While displaying a line now, do not stop at the first
46088         null byte.  Rather, display the zero byte as a space and keep
46089         going until we reach the size of the line.
46090         * Makefile.in: Add vec.o to OBJS-libcommon
46091
46092 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
46093             Ilya Tocar  <ilya.tocar@intel.com>
46094
46095         * config/i386/avx512fintrin.h (_mm512_kmov): New.
46096         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
46097         (__builtin_ia32_kmov16): Ditto.
46098         * config/i386/i386.md (UNSPEC_KMOV): New.
46099         (kmovw): Ditto.
46100
46101 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
46102
46103         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
46104         (_mm512_storeu_si512): Ditto.
46105
46106 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
46107
46108         PR target/52125
46109         * rtl.h (get_referenced_operands): Declare.
46110         * recog.c (get_referenced_operands): New function.
46111         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
46112         operands have been referenced when recording LO_SUM references.
46113
46114 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
46115
46116         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
46117
46118 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
46119
46120         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
46121         Enable for generic and recent AMD targets.
46122
46123 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
46124
46125         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
46126         ARG_SIZE note when adjustment was eliminated.
46127
46128 2014-01-22  Jeff Law  <law@redhat.com>
46129
46130         PR tree-optimization/59597
46131         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
46132         in file.  Accept new argument REGISTERING and use it to modify
46133         dump output appropriately.
46134         (register_jump_thread): Corresponding changes.
46135         (mark_threaded_blocks): Reinstate code to cancel unprofitable
46136         thread paths involving joiner blocks.  Add code to dump cancelled
46137         jump threading paths.
46138
46139 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
46140
46141         PR rtl-optimization/59477
46142         * lra-constraints.c (inherit_in_ebb): Process call for living hard
46143         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
46144
46145 2014-01-22  Tom Tromey  <tromey@redhat.com>
46146
46147         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
46148         PARAMS.
46149         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
46150
46151 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
46152
46153         PR rtl-optimization/59896
46154         * lra-constraints.c (process_alt_operands): Check unused note for
46155         matched operands of insn with no output reloads.
46156
46157 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
46158
46159         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
46160         (mips_move_from_gpr_cost): Likewise.
46161
46162 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
46163
46164         PR rtl-optimization/59858
46165         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
46166         ira_class_hard_regs_num.
46167         (process_alt_operands): Increase reject for dying matched operand.
46168
46169 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
46170
46171         PR target/59003
46172         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
46173         smaller than size, perform several stores or loads and stores
46174         at dst + count - size to store or copy all of size bytes, rather
46175         than just last modesize bytes.
46176
46177 2014-01-20  DJ Delorie  <dj@redhat.com>
46178
46179         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
46180         that CLOBBERs are REGs before propogating their values.
46181
46182 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
46183
46184         PR middle-end/59789
46185         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
46186         (cgraph_inline_failed_type): New function.
46187         * cgraph.h (DEFCIFCODE): Add type.
46188         (cgraph_inline_failed_type_t): New enum.
46189         (cgraph_inline_failed_type): New prototype.
46190         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
46191         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
46192         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
46193         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
46194         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
46195         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
46196         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
46197         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
46198         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
46199         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
46200         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
46201         OPTIMIZATION_MISMATCH.
46202         * tree-inline.c (expand_call_inline): Emit errors during
46203         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
46204
46205 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
46206
46207         PR target/59685
46208         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
46209         mode attribute in insn output.
46210
46211 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
46212
46213         * output.h (output_constant): Delete.
46214         * varasm.c (output_constant): Make private.
46215
46216 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
46217
46218         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
46219
46220 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
46221
46222         PR middle-end/59860
46223         * tree.h (fold_builtin_strcat): New prototype.
46224         * builtins.c (fold_builtin_strcat): No longer static.  Add len
46225         argument, if non-NULL, don't call c_strlen.  Optimize
46226         directly into __builtin_memcpy instead of __builtin_strcpy.
46227         (fold_builtin_2): Adjust fold_builtin_strcat caller.
46228         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
46229
46230 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
46231
46232         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
46233         for SImode_address_operand operands, having only a REG argument.
46234
46235 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46236
46237         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
46238         loader name using mbig-endian.
46239         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
46240
46241 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
46242
46243         * doc/invoke.texi (-march): Clarify documentation for AArch64.
46244         (-mtune): Likewise.
46245         (-mcpu): Likewise.
46246
46247 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
46248
46249         * config/aarch64/aarch64-protos.h
46250         (aarch64_cannot_change_mode_class_ptr): Declare.
46251         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
46252         aarch64_cannot_change_mode_class_ptr): New.
46253         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
46254         backend hook aarch64_cannot_change_mode_class.
46255
46256 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
46257
46258         * common/config/aarch64/aarch64-common.c
46259         (aarch64_handle_option): Don't handle any option order logic here.
46260         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
46261         selected_cpu, warn on architecture version mismatch.
46262         (aarch64_override_options): Fix parsing order for option strings.
46263
46264 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
46265             Iain Sandoe  <iain@codesourcery.com>
46266
46267         PR bootstrap/59496
46268         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
46269         warning.  Amend comment to reflect current functionality.
46270
46271 2014-01-20  Richard Biener  <rguenther@suse.de>
46272
46273         PR middle-end/59860
46274         * builtins.c (fold_builtin_strcat): Remove case better handled
46275         by tree-ssa-strlen.c.
46276
46277 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
46278
46279         * config/aarch64/aarch64.opt
46280         (mcpu, march, mtune): Make case-insensitive.
46281
46282 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
46283
46284         PR target/59880
46285         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
46286         if operands[1] is a REG or ZERO_EXTEND of a REG.
46287
46288 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
46289
46290         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
46291
46292 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
46293
46294         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
46295         long non-pic millicode calls.
46296
46297 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
46298
46299         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
46300
46301 2014-01-19  Kito Cheng  <kito@0xlab.org>
46302
46303         * builtins.c (expand_movstr): Check movstr expand done or fail.
46304
46305 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
46306             H.J. Lu  <hongjiu.lu@intel.com>
46307
46308         PR target/59379
46309         * config/i386/i386.md (*lea<mode>): Zero-extend return register
46310         to DImode for zero-extended addresses.
46311
46312 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
46313
46314         PR rtl-optimization/57763
46315         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
46316         on the new indirect jump_insn and increment LABEL_NUSES (label).
46317
46318 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
46319
46320         PR bootstrap/59580
46321         PR bootstrap/59583
46322         * config.gcc (x86_archs): New variable.
46323         (x86_64_archs): Likewise.
46324         (x86_cpus): Likewise.
46325         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
46326         --with-arch/--with-cpu= options.
46327         Support --with-arch=/--with-cpu={nehalem,westmere,
46328         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
46329
46330 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
46331
46332         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
46333         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
46334
46335 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
46336
46337         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
46338
46339 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
46340
46341         PR target/58944
46342         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
46343         clear cpp_get_options (parse_in)->warn_unused_macros for
46344         ix86_target_macros_internal with cpp_define.
46345
46346 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
46347
46348         * jump.c (delete_related_insns): Keep (use (insn))s.
46349         * reorg.c (redundant_insn): Check for barriers too.
46350
46351 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
46352
46353         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
46354
46355 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
46356
46357         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
46358         call to $$dyncall when TARGET_LONG_CALLS is true.
46359
46360 2014-01-17  Jeff Law  <law@redhat.com>
46361
46362         * ree.c (combine_set_extension): Temporarily disable test for
46363         changing number of hard registers.
46364
46365 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
46366
46367         PR middle-end/58125
46368         * ipa-inline-analysis.c (inline_free_summary):
46369         Do not free summary of aliases.
46370
46371 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
46372
46373         PR middle-end/59706
46374         * gimplify.c (gimplify_expr): Use create_tmp_var
46375         instead of create_tmp_var_raw.  If cond doesn't have
46376         integral type, don't add the IFN_ANNOTATE builtin at all.
46377
46378 2014-01-17  Martin Jambor  <mjambor@suse.cz>
46379
46380         PR ipa/59736
46381         * ipa-cp.c (prev_edge_clone): New variable.
46382         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
46383         Also resize prev_edge_clone vector.
46384         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
46385         (ipcp_edge_removal_hook): New function.
46386         (ipcp_driver): Register ipcp_edge_removal_hook.
46387
46388 2014-01-17  Andrew Pinski  <apinski@cavium.com>
46389             Steve Ellcey  <sellcey@mips.com>
46390
46391         PR target/59462
46392         * config/mips/mips.c (mips_print_operand): Check operand mode instead
46393         of operator mode.
46394
46395 2014-01-17  Jeff Law  <law@redhat.com>
46396
46397         PR middle-end/57904
46398         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
46399         so that pass_ccp runs first.
46400
46401 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
46402
46403         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
46404         (ix86_adjust_cost): Use !TARGET_XXX.
46405         (do_reorder_for_imul): Likewise.
46406         (swap_top_of_ready_list): Likewise.
46407         (ix86_sched_reorder): Likewise.
46408
46409 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
46410
46411         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
46412         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
46413         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
46414         (intel_memset): New.  Duplicate slm_memset.
46415         (intel_cost): New.  Duplicate slm_cost.
46416         (m_INTEL): New macro.
46417         (processor_target_table): Add "intel".
46418         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
46419         with PROCESSOR_INTEL for "intel".
46420         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
46421         PROCESSOR_SILVERMONT.
46422         (ix86_issue_rate): Likewise.
46423         (ix86_adjust_cost): Likewise.
46424         (ia32_multipass_dfa_lookahead): Likewise.
46425         (swap_top_of_ready_list): Likewise.
46426         (ix86_sched_reorder): Likewise.
46427         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
46428         instead of TARGET_OPT_AGU.
46429         * config/i386/i386.h (TARGET_INTEL): New.
46430         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
46431         (processor_type): Add PROCESSOR_INTEL.
46432         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
46433         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
46434
46435 2014-01-17  Marek Polacek  <polacek@redhat.com>
46436
46437         PR c/58346
46438         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
46439         size is zero.
46440
46441 2014-01-17  Richard Biener  <rguenther@suse.de>
46442
46443         PR tree-optimization/46590
46444         * opts.c (default_options_table): Add entries for
46445         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
46446         all enabled at -O1 but not for -Og.
46447         * common.opt (fbranch-count-reg): Remove Init(1).
46448         (fmove-loop-invariants): Likewise.
46449         (ftree-pta): Likewise.
46450
46451 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
46452
46453         * config/i386/i386.c (ix86_data_alignment): For compatibility with
46454         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
46455         decls to at least the GCC 4.8 used alignments.
46456
46457         PR fortran/59440
46458         * tree-nested.c (convert_nonlocal_reference_stmt,
46459         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
46460         of GIMPLE_BIND stmts, adjust associated decls.
46461
46462 2014-01-17  Richard Biener  <rguenther@suse.de>
46463
46464         PR tree-optimization/46590
46465         * vec.h (vec<>::bseach): New member function implementing
46466         binary search according to C89 bsearch.
46467         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
46468         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
46469         bitmap pointer again.  Make accesses_in_loop a flat array.
46470         (mem_ref_obstack): New global.
46471         (outermost_indep_loop): Adjust for mem_ref->stored changes.
46472         (mark_ref_stored): Likewise.
46473         (ref_indep_loop_p_2): Likewise.
46474         (set_ref_stored_in_loop): New helper function.
46475         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
46476         (memref_free): Adjust.
46477         (record_mem_ref_loc): Simplify.
46478         (gather_mem_refs_stmt): Adjust.
46479         (sort_locs_in_loop_postorder_cmp): New function.
46480         (analyze_memory_references): Sort accesses_in_loop after
46481         loop postorder number.
46482         (find_ref_loc_in_loop_cmp): New function.
46483         (for_all_locs_in_loop): Find relevant cluster of locs in
46484         accesses_in_loop and iterate without recursion.
46485         (execute_sm): Avoid uninit warning.
46486         (struct ref_always_accessed): Simplify.
46487         (ref_always_accessed::operator ()): Likewise.
46488         (ref_always_accessed_p): Likewise.
46489         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
46490         loop postorder numbers here.
46491         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
46492         numbers.
46493
46494 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
46495
46496         PR c++/57945
46497         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
46498         on decls for which assemble_alias has been called.
46499
46500 2014-01-17  Nick Clifton  <nickc@redhat.com>
46501
46502         * config/msp430/msp430.opt: (mcpu): New option.
46503         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
46504         (msp430_option_override): Parse target_cpu.  If the MCU name
46505         matches a generic string, clear target_mcu.
46506         (msp430_attr): Allow numeric interrupt values up to 63.
46507         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
46508         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
46509         option.
46510         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
46511         Add mcpu matches.
46512         * config/msp430/msp430.md (popm): Use %J rather than %I.
46513         (addsi3): Use msp430_nonimmediate_operand for operand 2.
46514         (addhi_cy_i): Use immediate_operand for operand 2.
46515         * doc/invoke.texi: Document -mcpu option.
46516
46517 2014-01-17  Richard Biener  <rguenther@suse.de>
46518
46519         PR rtl-optimization/38518
46520         * df.h (df_analyze_loop): Declare.
46521         * df-core.c: Include cfgloop.h.
46522         (df_analyze_1): Split out main part of df_analyze.
46523         (df_analyze): Adjust.
46524         (loop_inverted_post_order_compute): New function.
46525         (loop_post_order_compute): Likewise.
46526         (df_analyze_loop): New function avoiding whole-function
46527         postorder computes.
46528         * loop-invariant.c (find_defs): Use df_analyze_loop.
46529         (find_invariants): Adjust.
46530         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
46531
46532 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
46533
46534         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
46535         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
46536
46537 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
46538
46539         * ipa-ref.c (ipa_remove_stmt_references): Fix references
46540         traversal when removing references.
46541
46542 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
46543
46544         PR ipa/59775
46545         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
46546
46547 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
46548
46549         PR middle-end/56791
46550         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
46551         pushing a reload for an autoinc when we had previously reloaded an
46552         inner part of the address.
46553
46554 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
46555
46556         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
46557         field.
46558         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
46559         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
46560         when not giving up or versioning for alias only because of
46561         loop->safelen.
46562         (vect_analyze_data_ref_dependences): Set to true.
46563         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
46564         is a GIMPLE_PHI.
46565         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
46566         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
46567         to the condition.
46568
46569         PR middle-end/58344
46570         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
46571
46572         PR target/59839
46573         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
46574         operand 0 predicate for gathers, use a new pseudo as subtarget.
46575
46576 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
46577
46578         PR middle-end/59609
46579         * lra-constraints.c (process_alt_operands): Add printing debug info.
46580         Check absence of input/output reloads for matched operands too.
46581
46582 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
46583
46584         PR rtl-optimization/59835
46585         * ira.c (ira_init_register_move_cost): Increase cost for
46586         impossible modes.
46587
46588 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
46589
46590         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
46591
46592 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
46593
46594         PR target/59780
46595         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
46596         non-register objects.  Use gen_(high/low)part more consistently.
46597         Fix assertions.
46598
46599 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
46600
46601         PR target/59844
46602         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
46603         endian support, remove tests for WORDS_BIG_ENDIAN.
46604         (p8_mfvsrd_3_<mode>): Likewise.
46605         (reload_gpr_from_vsx<mode>): Likewise.
46606         (reload_gpr_from_vsxsf): Likewise.
46607         (p8_mfvsrd_4_disf): Likewise.
46608
46609 2014-01-16  Richard Biener  <rguenther@suse.de>
46610
46611         PR rtl-optimization/46590
46612         * lcm.c (compute_antinout_edge): Use postorder iteration.
46613         (compute_laterin): Use inverted postorder iteration.
46614
46615 2014-01-16  Nick Clifton  <nickc@redhat.com>
46616
46617         PR middle-end/28865
46618         * varasm.c (output_constant): Return the number of bytes actually
46619         emitted.
46620         (output_constructor_array_range): Update the field size with the
46621         number of bytes emitted by output_constant.
46622         (output_constructor_regular_field): Likewise.  Also do not
46623         complain if the total number of bytes emitted is now greater
46624         than the expected fieldpos.
46625         * output.h (output_constant): Update prototype and descriptive comment.
46626
46627 2014-01-16  Marek Polacek  <polacek@redhat.com>
46628
46629         PR middle-end/59827
46630         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
46631         it is error_mark_node.
46632
46633 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
46634
46635         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
46636         VALID_AVX256_REG_OR_OI_MODE.
46637
46638 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
46639
46640         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
46641         current procedure should be profiled.
46642
46643 2014-01-15  Andrew Pinski  <apinski@cavium.com>
46644
46645         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
46646         of moving from/to the STACK_REG register class.
46647
46648 2014-01-15  Richard Henderson  <rth@redhat.com>
46649
46650         PR debug/54694
46651         * reginfo.c (global_regs_decl): Globalize.
46652         * rtl.h (global_regs_decl): Declare.
46653         * ira.c (do_reload): Diagnose frame_pointer_needed and it
46654         reserved via global_regs.
46655
46656 2014-01-15  Teresa Johnson  <tejohnson@google.com>
46657
46658         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
46659
46660 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
46661
46662         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
46663         and vmulosh rather than call gen_vec_widen_smult_*.
46664         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
46665         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
46666         (vec_widen_smult_even_v16qi): Likewise.
46667         (vec_widen_umult_even_v8hi): Likewise.
46668         (vec_widen_smult_even_v8hi): Likewise.
46669         (vec_widen_umult_odd_v16qi): Likewise.
46670         (vec_widen_smult_odd_v16qi): Likewise.
46671         (vec_widen_umult_odd_v8hi): Likewise.
46672         (vec_widen_smult_odd_v8hi): Likewise.
46673         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
46674         vmuloub rather than call gen_vec_widen_umult_*.
46675         (vec_widen_umult_lo_v16qi): Likewise.
46676         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
46677         vmulosb rather than call gen_vec_widen_smult_*.
46678         (vec_widen_smult_lo_v16qi): Likewise.
46679         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
46680         rather than call gen_vec_widen_umult_*.
46681         (vec_widen_umult_lo_v8hi): Likewise.
46682         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
46683         rather than call gen_vec_widen_smult_*.
46684         (vec_widen_smult_lo_v8hi): Likewise.
46685
46686 2014-01-15  Jeff Law  <law@redhat.com>
46687
46688         PR tree-optimization/59747
46689         * ree.c (find_and_remove_re): Properly handle case where a second
46690         eliminated extension requires widening a copy created for elimination
46691         of a prior extension.
46692         (combine_set_extension): Ensure that the number of hard regs needed
46693         for a destination register does not change when we widen it.
46694
46695 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
46696
46697         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
46698         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
46699         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
46700         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
46701         (avr-*-rtems*): Likewise.
46702         (bfin*-rtems*): Likewise.
46703         (moxie-*-rtems*): Likewise.
46704         (h8300-*-rtems*): Likewise.
46705         (i[34567]86-*-rtems*): Likewise.
46706         (lm32-*-rtems*): Likewise.
46707         (m32r-*-rtems*): Likewise.
46708         (m68k-*-rtems*): Likewise.
46709         (microblaze*-*-rtems*): Likewise.
46710         (mips*-*-rtems*): Likewise.
46711         (powerpc-*-rtems*): Likewise.
46712         (sh-*-rtems*): Likewise.
46713         (sparc-*-rtems*): Likewise.
46714         (sparc64-*-rtems*): Likewise.
46715         (v850-*-rtems*): Likewise.
46716         (m32c-*-rtems*): Likewise.
46717
46718 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
46719
46720         PR rtl-optimization/59511
46721         * ira.c (ira_init_register_move_cost): Use memory costs for some
46722         cases of register move cost calculations.
46723         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
46724         instead of BB frequency.
46725         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
46726         * lra-assigns.c (find_hard_regno_for): Ditto.
46727
46728 2014-01-15  Richard Biener  <rguenther@suse.de>
46729
46730         PR tree-optimization/59822
46731         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
46732         (vectorizable_load): Use it to hoist defs of uses of invariant
46733         loads out of the loop.
46734
46735 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
46736             Kugan Vivekanandarajah  <kuganv@linaro.org>
46737
46738         PR target/59695
46739         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
46740         truncation.
46741
46742 2014-01-15  Richard Biener  <rguenther@suse.de>
46743
46744         PR rtl-optimization/59802
46745         * lcm.c (compute_available): Use inverted postorder to seed
46746         the initial worklist.
46747
46748 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
46749
46750         PR target/59803
46751         * config/s390/s390.c (s390_preferred_reload_class): Don't return
46752         ADDR_REGS for invalid symrefs in non-PIC code.
46753
46754 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
46755
46756         PR other/58712
46757         * builtins.c (determine_block_size): Initialize *probable_max_size
46758         even if len_rtx is CONST_INT.
46759
46760 2014-01-14  Andrew Pinski  <apinski@cavium.com>
46761
46762         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
46763         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
46764         (cortexa53_tunings): Likewise.
46765         (aarch64_sched_issue_rate): New function.
46766         (TARGET_SCHED_ISSUE_RATE): Define.
46767
46768 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
46769
46770         * ira-costs.c (find_costs_and_classes): Add missed
46771         ira_init_register_move_cost_if_necessary.
46772
46773 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
46774
46775         PR target/59787
46776         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
46777
46778 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
46779
46780         PR target/59794
46781         * config/i386/i386.c (type_natural_mode): Add a bool parameter
46782         to indicate if type is used for function return value.  Warn ABI
46783         change if the vector mode isn't available for function return value.
46784         (ix86_function_arg_advance): Pass false to type_natural_mode.
46785         (ix86_function_arg): Likewise.
46786         (ix86_gimplify_va_arg): Likewise.
46787         (function_arg_32): Don't warn ABI change.
46788         (ix86_function_value): Pass true to type_natural_mode.
46789         (ix86_return_in_memory): Likewise.
46790         (ix86_struct_value_rtx): Removed.
46791         (TARGET_STRUCT_VALUE_RTX): Likewise.
46792
46793 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
46794
46795         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
46796         converting a conditional jump into a conditional return.
46797
46798 2014-01-14  Richard Biener  <rguenther@suse.de>
46799
46800         PR tree-optimization/58921
46801         PR tree-optimization/59006
46802         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
46803         hoisting invariant stmts.
46804         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
46805         invariant loads on the preheader edge if possible.
46806
46807 2014-01-14  Joey Ye  <joey.ye@arm.com>
46808
46809         * doc/plugin.texi (Building GCC plugins): Update to C++.
46810
46811 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
46812
46813         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
46814         (_mm_rcp28_round_ss): Ditto.
46815         (_mm_rsqrt28_round_sd): Ditto.
46816         (_mm_rsqrt28_round_ss): Ditto.
46817         (_mm_rcp28_sd): Ditto.
46818         (_mm_rcp28_ss): Ditto.
46819         (_mm_rsqrt28_sd): Ditto.
46820         (_mm_rsqrt28_ss): Ditto.
46821         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
46822         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
46823         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
46824         (IX86_BUILTIN_RCP28SD): Ditto.
46825         (IX86_BUILTIN_RCP28SS): Ditto.
46826         (IX86_BUILTIN_RSQRT28SD): Ditto.
46827         (IX86_BUILTIN_RSQRT28SS): Ditto.
46828         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
46829         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
46830         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
46831         (ix86_expand_special_args_builtin): Expand new FTYPE.
46832         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
46833         (srcp14<mode>): Make insn unary.
46834         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
46835         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
46836         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
46837         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
46838         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
46839         Fix rounding: make it SAE only.
46840         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
46841         Ditto.
46842         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
46843         Ditto.
46844         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
46845         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
46846         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
46847         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
46848         (round_saeonly_mask_scalar_operand4): Ditto.
46849         (round_saeonly_mask_scalar_op3): Ditto.
46850         (round_saeonly_mask_scalar_op4): Ditto.
46851
46852 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46853
46854         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
46855         Implement -maltivec=be for vec_insert and vec_extract.
46856
46857 2014-01-10  DJ Delorie  <dj@redhat.com>
46858
46859         * config/msp430/msp430.md (call_internal): Don't allow memory
46860         references with SP as the base register.
46861         (call_value_internal): Likewise.
46862         * config/msp430/constraints.md (Yc): New.  For memory references
46863         that don't use SP as a base register.
46864
46865         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
46866         "an integer without a # prefix"
46867         * config/msp430/msp430.md (epilogue_helper): Use it.
46868
46869 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
46870
46871         PR target/59617
46872         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
46873         AVX512F gather builtins.
46874         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
46875         on gather decls with INTEGER_TYPE masktype.
46876         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
46877         directly into the builtin rather than hoisting it before loop.
46878
46879         PR tree-optimization/59387
46880         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
46881         (scev_const_prop): If folded_casts and type has undefined overflow,
46882         use force_gimple_operand instead of force_gimple_operand_gsi and
46883         for each added stmt if it is assign with
46884         arith_code_with_undefined_signed_overflow, call
46885         rewrite_to_defined_overflow.
46886         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
46887         gimple-fold.h instead.
46888         (arith_code_with_undefined_signed_overflow,
46889         rewrite_to_defined_overflow): Moved to ...
46890         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
46891         rewrite_to_defined_overflow): ... here.  No longer static.
46892         Include gimplify-me.h.
46893         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
46894         rewrite_to_defined_overflow): New prototypes.
46895
46896 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46897
46898         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
46899
46900 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
46901
46902         * builtins.c (get_object_alignment_2): Minor tweak.
46903         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
46904
46905 2014-01-13  Christian Bruel  <christian.bruel@st.com>
46906
46907         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
46908         optimized non constant lengths.
46909
46910 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
46911
46912         PR libgomp/59194
46913         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
46914         load as __atomic_load_N if possible.
46915
46916 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
46917
46918         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
46919         target parameter.
46920         (rs6000_expand_builtin): Adjust call.
46921
46922 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
46923
46924         PR target/58115
46925         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
46926         * config/rs6000/rs6000.c: Include target-globals.h.
46927         (rs6000_set_current_function): Instead of doing target_reinit
46928         unconditionally, use save_target_globals_default_opts and
46929         restore_target_globals.
46930
46931         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
46932         FPSCR.
46933         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
46934         (rs6000_expand_builtin): Handle mffs and mtfsf.
46935         (rs6000_init_builtins): Define mffs and mtfsf.
46936         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
46937         (rs6000_mffs): New pattern.
46938         (rs6000_mtfsf): New pattern.
46939
46940 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
46941
46942         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
46943         Start narrowing with START.  Apply candidate-use pair
46944         and check overall cost in narrowing.
46945         (iv_ca_prune): Pass new argument.
46946
46947 2014-01-10  Jeff Law  <law@redhat.com>
46948
46949         PR middle-end/59743
46950         * ree.c (combine_reaching_defs): Ensure the defining statement
46951         occurs before the extension when optimizing extensions with
46952         different source and destination hard registers.
46953
46954 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
46955
46956         PR ipa/58585
46957         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
46958         vtables into the type inheritance graph.
46959
46960 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
46961
46962         PR rtl-optimization/59754
46963         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
46964         modes in the REGNO != REGNO case.
46965
46966 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46967
46968         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
46969
46970 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
46971
46972         PR tree-optimization/59745
46973         * tree-predcom.c (tree_predictive_commoning_loop): Call
46974         free_affine_expand_cache if giving up because components is NULL.
46975
46976         * target-globals.c (save_target_globals): Allocate < 4KB structs using
46977         GC in payload of target_globals struct instead of allocating them on
46978         the heap and the larger structs separately using GC.
46979         * target-globals.h (struct target_globals): Make regs, hard_regs,
46980         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
46981         of GTY((skip)) and change type to void *.
46982         (reset_target_globals): Cast loads from those fields to corresponding
46983         types.
46984
46985 2014-01-10  Steve Ellcey  <sellcey@mips.com>
46986
46987         PR plugins/59335
46988         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
46989         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
46990         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
46991
46992 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
46993
46994         PR target/59744
46995         * aarch64-modes.def (CC_Zmode): New flags mode.
46996         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
46997         represents an equality.
46998         (aarch64_get_condition_code): Handle CC_Zmode.
46999         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
47000
47001 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47002
47003         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
47004         extraction in good case.
47005
47006 2014-01-10  Richard Biener  <rguenther@suse.de>
47007
47008         PR tree-optimization/59374
47009         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
47010         checking after SLP discovery.  Mark stmts not participating
47011         in any SLP instance properly.
47012
47013 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47014
47015         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
47016         when handling a SET rtx.
47017
47018 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47019
47020         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
47021         (cortex-a57): Likewise.
47022         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
47023
47024 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47025
47026         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
47027         non-iwmmxt builtins.
47028
47029 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47030
47031         PR ipa/58252
47032         PR ipa/59226
47033         * ipa-devirt.c record_target_from_binfo): Take as argument
47034         stack of binfos and lookup matching one for virtual inheritance.
47035         (possible_polymorphic_call_targets_1): Update.
47036
47037 2014-01-10  Huacai Chen  <chenhc@lemote.com>
47038
47039         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
47040         kernel strings for Loongson-2E/2F/3A.
47041
47042 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47043
47044         PR middle-end/59670
47045         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
47046         is_gimple_call before calling gimple_call_internal_p.
47047
47048 2014-01-09  Steve Ellcey  <sellcey@mips.com>
47049
47050         * Makefile.in (TREE_FLOW_H): Remove.
47051         (TREE_SSA_H): Add file names from tree-flow.h.
47052         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
47053         * tree.h: Remove tree-flow.h reference.
47054         * hash-table.h: Remove tree-flow.h reference.
47055         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
47056         reference with tree-ssa-loop.h.
47057
47058 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47059
47060         * doc/invoke.texi: Add -maltivec={be,le} options, and document
47061         default element-order behavior for -maltivec.
47062         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
47063         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
47064         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
47065         when targeting big endian, at least for now.
47066         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
47067
47068 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
47069
47070         PR middle-end/47735
47071         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
47072         var satisfies use_register_for_decl, just take into account type
47073         alignment, rather than decl alignment.
47074
47075         PR tree-optimization/59622
47076         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
47077         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
47078         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
47079         Don't devirtualize for inplace at all.  For targets.length () == 1,
47080         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
47081
47082 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
47083
47084         * config/i386/i386.md (cpu): Remove the unused btver1.
47085
47086 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
47087
47088         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
47089
47090 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
47091
47092         PR target/58115
47093         * tree-core.h (struct target_globals): New forward declaration.
47094         (struct tree_target_option): Add globals field.
47095         * tree.h (TREE_TARGET_GLOBALS): Define.
47096         (prepare_target_option_nodes_for_pch): New prototype.
47097         * target-globals.h (struct target_globals): Define even if
47098         !SWITCHABLE_TARGET.
47099         * tree.c (prepare_target_option_node_for_pch,
47100         prepare_target_option_nodes_for_pch): New functions.
47101         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
47102         * config/i386/i386.c: Include target-globals.h.
47103         (ix86_set_current_function): Instead of doing target_reinit
47104         unconditionally, use save_target_globals_default_opts and
47105         restore_target_globals.
47106
47107 2014-01-09  Richard Biener  <rguenther@suse.de>
47108
47109         PR tree-optimization/59715
47110         * tree-cfg.h (split_critical_edges): Declare.
47111         * tree-cfg.c (split_critical_edges): Export.
47112         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
47113
47114 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
47115
47116         * cfgexpand.c (expand_stack_vars): Optionally disable
47117         asan stack protection.
47118         (expand_used_vars): Likewise.
47119         (partition_stack_vars): Likewise.
47120         * asan.c (asan_emit_stack_protection): Optionally disable
47121         after return stack usage.
47122         (instrument_derefs): Optionally disable memory access instrumentation.
47123         (instrument_builtin_call): Likewise.
47124         (instrument_strlen_call): Likewise.
47125         (asan_protect_global): Optionally disable global variables protection.
47126         * doc/invoke.texi: Added doc for new options.
47127         * params.def: Added new options.
47128         * params.h: Likewise.
47129
47130 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
47131
47132         PR rtl-optimization/59724
47133         * ifcvt.c (cond_exec_process_if_block): Don't call
47134         flow_find_head_matching_sequence with 0 longest_match.
47135         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
47136         non-active insns if !stop_after.
47137         (try_head_merge_bb): Revert 2014-01-07 changes.
47138
47139 2014-01-08  Jeff Law  <law@redhat.com>
47140
47141         * ree.c (get_sub_rtx): New function, extracted from...
47142         (merge_def_and_ext): Here.
47143         (combine_reaching_defs): Use get_sub_rtx.
47144
47145 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
47146
47147         * cgraph.h (varpool_variable_node): Do not choke on null node.
47148
47149 2014-01-08  Catherine Moore  <clm@codesourcery.com>
47150
47151         * config/mips/mips.md (simple_return): Attempt to use JRC
47152         for microMIPS.
47153         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
47154
47155 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
47156
47157         PR rtl-optimization/59137
47158         * reorg.c (steal_delay_list_from_target): Call update_block for
47159         elided insns.
47160         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
47161
47162 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47163
47164         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
47165         two duplicate entries.
47166
47167 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
47168
47169         Revert:
47170         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
47171
47172         * config/mips/mips.c (mips_truncated_op_cost): New function.
47173         (mips_rtx_costs): Adjust test for BADDU.
47174         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
47175
47176         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
47177
47178         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
47179         (*baddu_si): ...this new pattern.
47180
47181 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
47182
47183         PR ipa/59722
47184         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
47185
47186 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
47187
47188         PR middle-end/57748
47189         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
47190         inner_reference_p.
47191         (expand_expr, expand_normal): Adjust.
47192         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
47193         inner_reference_p. Use inner_reference_p to expand inner references.
47194         (store_expr): Adjust.
47195         * cfgexpand.c (expand_call_stmt): Adjust.
47196
47197 2014-01-08  Rong Xu  <xur@google.com>
47198
47199         * gcov-io.c (gcov_var): Move from gcov-io.h.
47200         (gcov_position): Ditto.
47201         (gcov_is_error): Ditto.
47202         (gcov_rewrite): Ditto.
47203         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
47204         only part to libgcc/libgcov.h.
47205
47206 2014-01-08  Marek Polacek  <polacek@redhat.com>
47207
47208         PR middle-end/59669
47209         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
47210
47211 2014-01-08  Marek Polacek  <polacek@redhat.com>
47212
47213         PR sanitizer/59667
47214         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
47215
47216 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
47217
47218         PR rtl-optimization/59649
47219         * stor-layout.c (get_mode_bounds): For BImode return
47220         0 and STORE_FLAG_VALUE.
47221
47222 2014-01-08  Richard Biener  <rguenther@suse.de>
47223
47224         PR middle-end/59630
47225         * gimple.h (is_gimple_builtin_call): Remove.
47226         (gimple_builtin_call_types_compatible_p): New.
47227         (gimple_call_builtin_p): New overload.
47228         * gimple.c (is_gimple_builtin_call): Remove.
47229         (validate_call): Rename to ...
47230         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
47231         check return types.
47232         (validate_type): New static function.
47233         (gimple_call_builtin_p): New overload and adjust.
47234         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
47235         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
47236         (gimple_fold_stmt_to_constant_1): Likewise.
47237         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
47238
47239 2014-01-08  Richard Biener  <rguenther@suse.de>
47240
47241         PR middle-end/59471
47242         * gimplify.c (gimplify_expr): Gimplify register-register type
47243         VIEW_CONVERT_EXPRs to separate stmts.
47244
47245 2014-01-07  Jeff Law  <law@redhat.com>
47246
47247         PR middle-end/53623
47248         * ree.c (combine_set_extension): Handle case where source
47249         and destination registers in an extension insn are different.
47250         (combine_reaching_defs): Allow source and destination registers
47251         in extension to be different under limited circumstances.
47252         (add_removable_extension): Remove restriction that the
47253         source and destination registers in the extension are the same.
47254         (find_and_remove_re): Emit a copy from the extension's
47255         destination to its source after the defining insn if
47256         the source and destination registers are different.
47257
47258         PR middle-end/59285
47259         * ifcvt.c (merge_if_block): If we are merging a block with more than
47260         one successor with a block with no successors, remove any BARRIER
47261         after the second block.
47262
47263 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
47264
47265         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
47266
47267 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
47268
47269         PR target/59652
47270         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
47271         for 14-bit register offsets when INT14_OK_STRICT is false.
47272
47273 2014-01-07  Roland Stigge  <stigge@antcom.de>
47274             Michael Meissner  <meissner@linux.vnet.ibm.com>
47275
47276         PR 57386/target
47277         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
47278         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
47279
47280 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
47281
47282         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
47283         -mcpu.
47284
47285 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
47286
47287         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
47288         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
47289         rtx is const0_rtx or not.
47290
47291 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
47292
47293         PR target/58115
47294         * target-globals.c (save_target_globals): Remove this_fn_optab
47295         handling.
47296         * toplev.c: Include optabs.h.
47297         (target_reinit): Temporarily restore the global options if another
47298         set of options are in force.
47299
47300 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
47301
47302         PR rtl-optimization/58668
47303         * cfgcleanup.c (flow_find_cross_jump): Don't count
47304         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
47305         to determine what is counted.
47306         (flow_find_head_matching_sequence): Use active_insn_p to determine
47307         what is counted.
47308         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
47309         counting change.
47310         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
47311         determine what is counted.
47312
47313         PR tree-optimization/59643
47314         * tree-predcom.c (split_data_refs_to_components): If one dr is
47315         read and one write, determine_offset fails and the write isn't
47316         in the bad component, just put the read into the bad component.
47317
47318 2014-01-07  Mike Stump  <mikestump@comcast.net>
47319             Jakub Jelinek  <jakub@redhat.com>
47320
47321         PR pch/59436
47322         * tree-core.h (struct tree_optimization_option): Change optabs
47323         type from unsigned char * to void *.
47324         * optabs.c (init_tree_optimization_optabs): Adjust
47325         TREE_OPTIMIZATION_OPTABS initialization.
47326
47327 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
47328
47329         PR target/59644
47330         * config/i386/i386.h (struct machine_function): Add
47331         no_drap_save_restore field.
47332         * config/i386/i386.c (ix86_save_reg): Use
47333         !cfun->machine->no_drap_save_restore instead of
47334         crtl->stack_realign_needed.
47335         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
47336         this function clears frame_pointer_needed.  Set
47337         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
47338         and DRAP reg is needed.
47339
47340 2014-01-06  Marek Polacek  <polacek@redhat.com>
47341
47342         PR c/57773
47343         * doc/implement-c.texi: Mention that other integer types are
47344         permitted as bit-field types in strictly conforming mode.
47345
47346 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
47347
47348         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
47349         is newly allocated.
47350
47351 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
47352
47353         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
47354
47355 2014-01-06  Martin Jambor  <mjambor@suse.cz>
47356
47357         PR ipa/59008
47358         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
47359         to int.
47360         * ipa-prop.c (ipa_print_node_params): Fix indentation.
47361
47362 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
47363
47364         PR debug/59350
47365         PR debug/59510
47366         * var-tracking.c (add_stores): Preserve the value of the source even if
47367         we don't record the store.
47368
47369 2014-01-06  Terry Guo  <terry.guo@arm.com>
47370
47371         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
47372
47373 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
47374
47375         PR bootstrap/59541
47376         * config/darwin.c (darwin_function_section): Adjust return values to
47377         correspond to optimisation changes made in r206070.
47378
47379 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
47380
47381         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
47382         from prefetch_block tune setting.
47383         (nocona_cost): Correct size of prefetch block to 64.
47384
47385 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
47386
47387         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
47388         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
47389         used to save the static chain register in the computation of the offset
47390         from which the FP registers need to be restored.
47391
47392 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
47393
47394         PR tree-optimization/59519
47395         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
47396         ICE if get_current_def (current_new_name) is already non-NULL, as long
47397         as it is a phi result of some other phi in *new_exit_bb that has
47398         the same argument.
47399
47400         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
47401         or vmovdqu* for misaligned_operand.
47402         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
47403         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
47404         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
47405         aligned_mem for AVX512F masked aligned load and store builtins and for
47406         non-temporal moves.
47407
47408 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
47409
47410         PR tree-optimization/59651
47411         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
47412         Address range for negative step should be added by TYPE_SIZE_UNIT.
47413
47414 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
47415
47416         * config/m68k/m68k.c (handle_move_double): Handle pushes with
47417         overlapping registers also for registers other than the stack pointer.
47418
47419 2014-01-03  Marek Polacek  <polacek@redhat.com>
47420
47421         PR other/59661
47422         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
47423         __builtin_FILE.
47424
47425 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
47426
47427         PR target/59625
47428         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
47429         asm goto as jump.
47430
47431         * config/i386/i386.md (MODE_SIZE): New mode attribute.
47432         (push splitter): Use <P:MODE_SIZE> instead of
47433         GET_MODE_SIZE (<P:MODE>mode).
47434         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
47435         (mov -1, reg peephole2): Likewise.
47436         * config/i386/sse.md (*mov<mode>_internal,
47437         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
47438         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
47439         *<code><mode>3, *andnot<mode>3<mask_name>,
47440         <mask_codefor><code><mode>3<mask_name>): Likewise.
47441         * config/i386/subst.md (mask_mode512bit_condition,
47442         sd_mask_mode512bit_condition): Likewise.
47443
47444 2014-01-02  Xinliang David Li  <davidxl@google.com>
47445
47446         PR tree-optimization/59303
47447         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
47448         (dump_predicates): Better output format.
47449         (pred_equal_p): New function.
47450         (is_neq_relop_p): Ditto.
47451         (is_neq_zero_form_p): Ditto.
47452         (pred_expr_equal_p): Ditto.
47453         (pred_neg_p): Ditto.
47454         (simplify_pred): Ditto.
47455         (simplify_preds_2): Ditto.
47456         (simplify_preds_3): Ditto.
47457         (simplify_preds_4): Ditto.
47458         (simplify_preds): Ditto.
47459         (push_pred): Ditto.
47460         (push_to_worklist): Ditto.
47461         (get_pred_info_from_cmp): Ditto.
47462         (is_degenerated_phi): Ditto.
47463         (normalize_one_pred_1): Ditto.
47464         (normalize_one_pred): Ditto.
47465         (normalize_one_pred_chain): Ditto.
47466         (normalize_preds): Ditto.
47467         (normalize_cond_1): Remove function.
47468         (normalize_cond): Ditto.
47469         (is_gcond_subset_of): Ditto.
47470         (is_subset_of_any): Ditto.
47471         (is_or_set_subset_of): Ditto.
47472         (is_and_set_subset_of): Ditto.
47473         (is_norm_cond_subset_of): Ditto.
47474         (pred_chain_length_cmp): Ditto.
47475         (convert_control_dep_chain_into_preds): Type change.
47476         (find_predicates): Ditto.
47477         (find_def_preds): Ditto.
47478         (destroy_predicates_vecs): Ditto.
47479         (find_matching_predicates_in_rest_chains): Ditto.
47480         (use_pred_not_overlap_with_undef_path_pred): Ditto.
47481         (is_pred_expr_subset): Ditto.
47482         (is_pred_chain_subset_of): Ditto.
47483         (is_included_in): Ditto.
47484         (is_superset_of): Ditto.
47485
47486 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
47487
47488         Update copyright years.
47489
47490 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
47491
47492         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
47493         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
47494         config/arc/arc.md, config/arc/arc.opt,
47495         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
47496         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
47497         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
47498         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
47499         config/linux-protos.h, config/linux.c, config/winnt-c.c,
47500         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
47501         vtable-verify.c, vtable-verify.h: Use the standard form for the
47502         copyright notice.
47503
47504 2014-01-02  Tobias Burnus  <burnus@net-b.de>
47505
47506         * gcc.c (process_command): Update copyright notice dates.
47507         * gcov-dump.c: Ditto.
47508         * gcov.c: Ditto.
47509         * doc/cpp.texi: Bump @copying's copyright year.
47510         * doc/cppinternals.texi: Ditto.
47511         * doc/gcc.texi: Ditto.
47512         * doc/gccint.texi: Ditto.
47513         * doc/gcov.texi: Ditto.
47514         * doc/install.texi: Ditto.
47515         * doc/invoke.texi: Ditto.
47516
47517 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47518
47519         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
47520
47521 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
47522
47523         * config/i386/sse.md (*mov<mode>_internal): Guard
47524         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
47525
47526         PR rtl-optimization/59647
47527         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
47528         new_rtx into UNSIGNED_FLOAT rtxes.
47529 \f
47530 Copyright (C) 2014 Free Software Foundation, Inc.
47531
47532 Copying and distribution of this file, with or without modification,
47533 are permitted in any medium without royalty provided the copyright
47534 notice and this notice are preserved.